ts-packager
Version:
TypeScript npm packager
56 lines • 2.45 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.bundle = void 0;
const path = require("path");
const fs_1 = require("fs");
const fs_extra_1 = require("fs-extra");
const log_1 = require("../log");
const environment_1 = require("../environment");
/**
* Bundle the project files
*
* @param files Bundle map
* @param outdir (Optional) Output directory path (relative). Defaults to
* the environment buildDir
*/
function bundle(files, outdir) {
return __awaiter(this, void 0, void 0, function* () {
log_1.log.info('p Bundling...');
if (!outdir) {
outdir = environment_1.env.buildDir;
}
const promises = Object.keys(files).map((filename) => __awaiter(this, void 0, void 0, function* () {
const value = files[filename];
let outputFile = null;
if (typeof value === 'string') {
outputFile = path.join(outdir, value);
}
else if (value === true) {
outputFile = path.join(outdir, filename);
}
else if (value instanceof Function) {
log_1.log.info('Running callback for "' + filename + '"');
value(filename, outdir);
}
if (outputFile) {
if (!(0, fs_1.existsSync)(filename)) {
throw new Error('File "' + filename + '" not found!');
}
log_1.log.info('Copy "' + filename + '" to "' + outputFile + '"');
(0, fs_extra_1.copySync)(filename, outputFile);
}
}));
yield Promise.all(promises);
});
}
exports.bundle = bundle;
//# sourceMappingURL=bundle.js.map