control-freak-ide/Code/client/tasks/updateBowers.js
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

61 lines
1.7 KiB
JavaScript

module.exports = function (grunt) {
"use strict";
var includedDeps = {
"decor": ["dcl", "requirejs-dplugins"]
};
//Add deps from decor to simplify code
includedDeps.delite = includedDeps.decor.concat(["dojo", "requirejs-domready", "requirejs-text"]);
includedDeps.deliteful = includedDeps.delite.concat([]);
grunt.registerTask("updateBowers", function (buildCfg, outdir) {
var buildConfig = grunt.config(buildCfg);
var layers = buildConfig.layers;
// Get processed packages
var builtLibs = layers.map(function (layer) {
return layer.name.match(/^(.*)\/[^\/]*$/)[1];
});
// Update bower.json
builtLibs.forEach(function (lib, index) {
// Read bower.json
var bower;
try {
bower = grunt.file.readJSON(lib + "/bower.json");
} catch (e) {
return;
}
// Update package name
bower.name += "-build";
for (var dep in bower.dependencies) {
if (includedDeps[lib] && includedDeps[lib].indexOf(dep) !== -1) {
// This dependency is already in the layer.
delete bower.dependencies[dep];
} else if (builtLibs.indexOf(dep) >= 0) {
// Remove all the packages included in that layer.
if (includedDeps[dep]) {
includedDeps[dep].forEach(function (includedDep) {
delete bower.dependencies[includedDep];
});
}
// Convert the dependency to build form.
bower.dependencies[dep + "-build"] = bower.dependencies[dep];
delete bower.dependencies[dep];
}
}
bower.devDependencies = {};
bower.devDependencies[lib] = bower.version;
layers[index].bower = bower;
grunt.config(buildCfg, buildConfig);
grunt.file.write(outdir + lib + "/bower.json", JSON.stringify(bower, null, 2));
});
});
};