mirror of
https://github.com/akveo/ngx-admin.git
synced 2025-12-16 23:40:14 +01:00
69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
/**
|
|
* @author: @AngularClass
|
|
*/
|
|
|
|
var path = require('path');
|
|
|
|
// Helper functions
|
|
var _root = path.resolve(__dirname, '..');
|
|
|
|
console.log('root directory:', root());
|
|
|
|
function hasProcessFlag(flag) {
|
|
return process.argv.join('').indexOf(flag) > -1;
|
|
}
|
|
|
|
function root(args) {
|
|
args = Array.prototype.slice.call(arguments, 0);
|
|
return path.join.apply(path, [_root].concat(args));
|
|
}
|
|
|
|
function rootNode(args) {
|
|
args = Array.prototype.slice.call(arguments, 0);
|
|
return root.apply(path, ['node_modules'].concat(args));
|
|
}
|
|
|
|
function prependExt(extensions, args) {
|
|
args = args || [];
|
|
if (!Array.isArray(args)) { args = [args] }
|
|
return extensions.reduce(function(memo, val) {
|
|
return memo.concat(val, args.map(function(prefix) {
|
|
return prefix + val;
|
|
}));
|
|
}, ['']);
|
|
}
|
|
|
|
function packageSort(packages) {
|
|
// packages = ['polyfills', 'vendor', 'main']
|
|
var len = packages.length - 1;
|
|
var first = packages[0];
|
|
var last = packages[len];
|
|
return function sort(a, b) {
|
|
// polyfills always first
|
|
if (a.names[0] === first) {
|
|
return -1;
|
|
}
|
|
// main always last
|
|
if (a.names[0] === last) {
|
|
return 1;
|
|
}
|
|
// vendor before app
|
|
if (a.names[0] !== first && b.names[0] === last) {
|
|
return -1;
|
|
} else {
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
function reverse(arr) {
|
|
return arr.reverse();
|
|
}
|
|
|
|
exports.reverse = reverse;
|
|
exports.hasProcessFlag = hasProcessFlag;
|
|
exports.root = root;
|
|
exports.rootNode = rootNode;
|
|
exports.prependExt = prependExt;
|
|
exports.prepend = prependExt;
|
|
exports.packageSort = packageSort;
|