{"version":3,"sources":["jsdelivr-header.js","/npm/build@0.1.4/builder.js"],"names":[],"mappings":"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","file":"/npm/build@0.1.4/builder.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/build@0.1.4/builder.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * The main builder script\n */\n\n//require mootools\nrequire('moo-server').apply(GLOBAL);\n\n\n\nvar winston = require('winston'),\n    fs = require('fs'),\n    path = require(\"path\"),\n    util = require(\"util\"),\n    sys = require(\"sys\"),\n    when = require(\"promised-io\").when,\n    Promise = require(\"promised-io\").Promise;\n\n\n\nvar Builder = new Class({\n    \n    Implements: [Options],\n    options: {},\n    config: null,\n    targets: {},\n    logger: null,\n    queue: [],\n    stack: null,\n    tasks: {},\n    \n    initialize: function(options, logfile) {\n        this.setOptions(options);\n        this.logger = new (winston.Logger)({\n            transports: [\n                new (winston.transports.Console)({level: \"silly\"}),\n                new (winston.transports.File)({ filename: logfile, level: \"silly\" })\n            ]\n        });\n        this.logger.emitErrs = false;\n        \n        if (nil(options)) {\n            this.logger.debug(\"config is nil\");\n        } else {\n            this.logger.debug(\"config is not nil\");\n            //this.logger.info(\"config: \" + util.inspect(this.options, false, null));\n        }\n        \n        this.loadInternalTasks();\n        this.loadTasks(this.options.tasks);\n        \n    },\n    \n    loadTasks: function(filename) {\n        Array.from(filename).each(function(file){\n            var tasks = require(file).tasks;\n            for (var name in tasks) {\n                this.logger.info(\"loading task: \" + name);\n                this.tasks[name] = tasks[name];\n            }\n        },this);\n    },\n   \n    build: function(target, config) {\n        var p = new Promise();\n        config = nil(config) ? this.options : config;\n        \n        this.logger.info(\"Processing target: \" + target);\n        \n        //load the target file\n        fn = require(this.options.targets + \"/\" + target + \".target\");\n        this.targets[target] = fn(config, this.logger);\n        this.logger.info(\"Starting target\" + util.inspect(this.targets[target], false, null));\n        //start loading in the target's required dependencies \n        if (!nil(this.targets[target].depends)) {\n            this.importTargets(this.targets[target].depends);\n        }\n        \n        this.queue.push(target);\n        \n        this.logger.info(\"queue order: \" + util.inspect(this.queue, false, null));\n        //begin processing targets\n        this.runTargets().then(function(){ p.resolve(true);});\n        return p;\n    },\n    \n    loadInternalTasks: function(){\n        var taskPath = path.normalize(__dirname + \"/tasks\");\n            files = fs.readdirSync(taskPath);\n        Array.from(files).each(function(file){\n            this.loadTasks(taskPath + \"/\" + file); \n        }, this);\n    },\n\n    importTargets: function(depends){\n        this.logger.debug(\"in ImportTargets for \" + util.inspect(depends,false,null));\n        if (!nil(depends)) {\n            Array.from(depends).each(function(d){\n                if (!Object.keys(this.targets).contains(d)) {\n                    this.targets[d] = (require(this.options.targets + \"/\" + d + \".target\"))(this.options,this.logger);\n                    this.logger.info(\"Target config for \" + d + \":\\n\" + util.inspect(this.targets[d],false,null));\n                    if (!nil(this.targets[d].depends)) {\n                        this.importTargets(this.targets[d].depends);\n                    }\n                    this.queue.push(d);\n                    \n                }\n            }, this);\n        }\n    },\n    \n    runTargets: function(){\n        var target = this.queue.shift(),\n            p = new Promise();\n        \n        this.stack = Array.clone(this.targets[target].tasks);\n        \n        this.logger.info(\"\\n\\n!!!!!!!!!!!!!\\nExecuting target: \" + target);\n        this.logger.info(\"Target description: \" + this.targets[target].description);\n        this.logger.info(\"Number of tasks: \" + this.stack.length);\n        \n        this.executeTarget(target).then(function(){\n            if (this.queue.length > 0) { \n                this.runTargets();\n            } else {\n                p.resolve(true);\n            }\n        }.bind(this));\n        \n        return p;\n    },\n    \n    executeTarget: function(){\n        var p = new Promise();\n        \n        var task = this.stack.shift(),\n            taskName = Object.keys(task)[0],\n            options = task[taskName];\n            \n        this.logger.info(\"running task: \" + taskName);\n        this.tasks[taskName](options, this.options, this.logger).then(function(){\n            this.logger.info(\"Promise resolved from task: \" + taskName);\n            if (this.stack.length === 0) {\n                this.logger.info(\"No more tasks...\");\n                p.resolve(true);\n            } else {\n                this.logger.info(\"On to next task!!!\");\n                this.executeTarget().then(function(){p.resolve(true);});\n            }\n        }.bind(this), function(err){\n            p.reject(err);\n        }.bind(this));\n           \n        return p;\n    }\n\n    \n});\n\nmodule.exports = Builder;\n\n\n\n            \n"]}