imod
Version:
A bundler for tiny modules, powered by Rollup.
48 lines • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const childProcess = require("child_process");
const rimraf = require("rimraf");
exports.rimraf = rimraf;
const mkdirp = require("mkdirp");
exports.mkdirp = mkdirp;
const fs = require("fs");
const camelcase_1 = require("camelcase");
exports.mRequire = (obj) => obj && obj.__esModule ? obj.default : obj;
exports.sh = (bash, { silent = false } = {}) => {
return new Promise((resolve, reject) => {
const p = childProcess.exec(bash, (error) => {
if (error && !silent) {
reject(error);
return;
}
resolve();
});
!silent && p.stderr && p.stderr.pipe(process.stderr);
!silent && p.stdout && p.stdout.pipe(process.stdout);
});
};
exports.parallelize = async (task) => {
const ret = await Promise.all(task);
return ret;
};
exports.serial = async (task) => {
for (let t of task) {
await t;
}
};
const removeScope = (name) => name.replace(/^@.*\//, '');
exports.safeVariableName = (name) => {
return camelcase_1.default(removeScope(name).toLowerCase().replace(/((^[^a-zA-Z]+)|[^\w.-])|([^a-zA-Z0-9]+$)/g, ''));
};
exports.saveJSON = (path, data) => {
let json;
try {
json = require(path);
}
catch (_a) {
json = {};
}
json = Object.assign(Object.assign({}, json), { data });
fs.writeFileSync(path, JSON.stringify(json, null, 2) + '\n', 'utf8');
};
//# sourceMappingURL=utils.js.map