{"version":3,"sources":["jsdelivr-header.js","/npm/nx-sails-assets-sync@0.3.3/index.ts"],"names":[],"mappings":"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","file":"/npm/nx-sails-assets-sync@0.3.3/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/nx-sails-assets-sync@0.3.3/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/// <reference path=\"typings/index.d.ts\" />\n/// <reference path=\"../typings/index.d.ts\" />\n\nimport ISailsServer = sails.ISailsServer;\nimport ISailsHookDefaults = sails.ISailsHookDefaults;\nimport ISailsHookConfigure = sails.ISailsHookConfigure;\n\nvar fs: any = require('fs-extra');\nvar async: Async = require('async');\nvar _: _.LoDashStatic = require('lodash');\nvar gulp: any = require('gulp');\nvar path: any = require('path');\n\n\nconst NAME: string = 'nx-sails-assets-sync';\n\n\nmodule.exports = function NXConvexConfig(sails: ISailsServer): sails.ISailsHook {\n\n    var $this: ISailsHook = {\n\n        defaults: function (sails: ISailsServer): ISailsHookDefaults {\n\n            if (!_.isFunction(this.defaults)) {\n                return this.defaults;\n            }\n\n            console.log(NAME + ' defaults...');\n\n            this.sails = sails;\n\n            var configPath: string = path.join(__dirname, 'config');\n            var appConfig: ISailsHookDefaults = <ISailsHookDefaults>_.get(sails, NAME);\n            var defaults: ISailsHookDefaults = require(configPath);\n            var config: ISailsHookDefaults = _.assign({}, defaults, appConfig);\n\n            this.defaults = <ISailsHookDefaults>config;\n\n            return config;\n        }\n        ,\n\n        configure: function (): void {\n\n            if (!_.isFunction(this.configure)) {\n                return;\n            }\n\n            console.log(NAME + ' configure...');\n\n            var appConfig: ISailsHookConfigure = <ISailsHookConfigure>_.get(this.sails.config, NAME);\n            var config: ISailsHookConfig = _.defaults(\n                {},\n                this.defaults,\n                appConfig\n            );\n            _.assign(config, {\n                appRootAbsolute: path.resolve(config.appRoot || require('nx-app-root-path').path)\n            });\n\n            this.timeout = config.timeout;\n\n            this.config = config;\n        }\n        ,\n\n        initialize: function (done: Function): void {\n            var $this: ISailsHook = this;\n\n            var clientSourceRoot: string = path.join(this.config.appRootAbsolute, 'node_modules');\n\n            if (!_.isUndefined($this.config.enabled) && $this.config.enabled == false) {\n                console.log(NAME + ' is disabled... not initializing...');\n                return done();\n            }\n\n            console.log(NAME + ' initialize...');\n\n            async.waterfall(\n                [\n\n                    function (nextAction: Function): void {\n\n                        var clientDependenciesSourceDir: string = path.resolve(path.join($this.config.appRoot, $this.config.sourceDir));\n                        var ClientDependencies: Function = require(path.join(__dirname, 'libs/client-dependencies'));\n                        ClientDependencies(clientDependenciesSourceDir)\n                            .then(function (clientDependencies: Array<string>) {\n                                nextAction(null, clientDependencies);\n                            })\n                            .catch(function (err: Error) {\n                                if (err) {\n                                    console.error(err);\n                                }\n                                nextAction(err);\n                            });\n                    }\n\n                    ,\n\n                    function (clientDependencies: Array<any>, nextAction: Function): void {\n\n                        async.eachSeries(\n                            clientDependencies,\n                            function (clientDependency: any, nextClientDependency: Function): void {\n\n                                async.series(\n                                    [\n                                        function (nextClientDependencyAction: Function): void {\n\n                                            var applyDependenciesToPipeline = require(path.join(__dirname, 'libs/apply-dependencies-order'));\n                                            applyDependenciesToPipeline(clientDependency, $this.config, function (): void {\n                                                nextClientDependencyAction();\n                                            });\n                                        }\n                                        ,\n                                        function (nextClientDependencyAction: Function): void {\n\n                                            var deployDependencies = require(path.join(__dirname, 'libs/deploy-dependencies'));\n                                            deployDependencies(clientDependency, $this.config, function (): void {\n                                                nextClientDependencyAction();\n                                            });\n                                        }\n                                        ,\n                                        function (nextClientDependencyAction: Function): void {\n\n                                            var deployBinaries = require(path.join(__dirname, 'libs/deploy-binaries'));\n                                            deployBinaries(clientDependency, $this.config, function (): void {\n                                                nextClientDependencyAction();\n                                            });\n                                        }\n                                    ],\n                                    function (err: Error): void {\n                                        if (err) {\n                                            console.error(err);\n                                        }\n                                        nextClientDependency(err, clientDependencies);\n                                    }\n                                );\n                            },\n                            function (err: Error): void {\n                                nextAction(err, clientDependencies);\n                            }\n                        );\n                    },\n\n                    function (clientDependencies: Array<any>, nextAction: Function): void {\n\n                        // start listener\n\n                        function watchFunc(done: Function): void {\n\n                            var clientDependencyFiles: Array<string> = <Array<string>>_.flatten(_.map(_.uniqBy(_.flattenDeep(_.map(clientDependencies, function (clientDependenciesItem: any): any {\n                                var result: any = _.map(_.keys(clientDependenciesItem.clientDependencies), function (clientDependencyName: string): any {\n\n                                    var clientDependencyItem: any = _.get(clientDependenciesItem.clientDependencies, clientDependencyName);\n\n                                    var files: Array<string>;\n\n                                    if (clientDependencyItem.files) {\n                                        files = _.map(clientDependencyItem.files, function (file: string): string {\n                                            return path.join($this.config.appRootAbsolute, 'node_modules', clientDependencyName, file);\n                                        });\n                                    }\n                                    else {\n                                        files = [path.join($this.config.appRootAbsolute, 'node_modules', clientDependencyName, clientDependencyName + '.js')];\n                                    }\n\n                                    var result: any = _.assign({}, clientDependencyItem, {\n                                        name: clientDependencyName,\n                                        files: files\n                                    });\n\n                                    return result\n                                });\n                                return result;\n                            })), 'name'), 'files'));\n\n                            gulp\n                                .watch(clientDependencyFiles, function (event: any) {\n\n                                    var fileSourceAppPath: string = path.join($this.config.appRootAbsolute, 'node_modules');\n                                    var fileSourcePath: string = event.path;\n                                    var fileDestinationSegment: string = event.path.replace(fileSourceAppPath, '');\n                                    var fileDestinationAppPath: string = path.join($this.config.appRootAbsolute, 'assets');\n                                    var fileDestinationAssetSection: string = require(path.join(__dirname, 'libs/determine-asset-section.js'))(fileDestinationSegment);\n                                    var fileDestinationPath: string = path.join(fileDestinationAppPath, fileDestinationAssetSection, 'dependencies', fileDestinationSegment);\n\n                                    fs.copy(fileSourcePath, fileDestinationPath, function (err: Error): void {\n                                        if (err) {\n                                            console.error(err);\n                                        }\n                                        else {\n                                            console.log(NAME + '... file synced... ' + fileSourcePath + ' to ' + fileDestinationPath);\n                                        }\n                                    });\n\n                                    console.dir(event);\n                                });\n\n                            console.log(NAME + '.... now watching ' + clientDependencyFiles.length + ' client dependency files for changes...');\n\n                            done();\n                        }\n\n                        watchFunc(function () {\n                            nextAction(null, clientDependencies);\n                        });\n                    }\n                ],\n                function (err: Error, result: any): void {\n                    done();\n                }\n            );\n        }\n        ,\n\n        routes: {\n            before: {},\n            after: {}\n        }\n\n    };\n    return $this;\n};\n"]}