@plugjs/plug
Version:
PlugJS Build System ===================
45 lines (44 loc) • 1.33 kB
JavaScript
// plugs/build.ts
import { invokeTasks, isBuild } from "../build.mjs";
import { ForkingPlug } from "../fork.mjs";
import { $p } from "../logging/colors.mjs";
import { requireFilename } from "../paths.mjs";
var RunBuildInternal = class {
constructor(_tasks, _props, _options) {
this._tasks = _tasks;
this._props = _props;
this._options = _options;
}
async pipe(files, context) {
const tasks = this._tasks.length === 0 ? ["default"] : this._tasks;
const cwd = this._options.cwd || process.cwd();
for (const file of files.absolutePaths()) {
let maybeBuild = await import(file);
while (maybeBuild) {
if (isBuild(maybeBuild)) break;
maybeBuild = maybeBuild.default;
}
if (!isBuild(maybeBuild)) {
context.log.fail(`File ${$p(file)} did not export a proper build`);
} else {
const dir = process.cwd();
try {
process.chdir(cwd);
await invokeTasks(maybeBuild, tasks, this._props);
} finally {
process.chdir(dir);
}
}
}
}
};
var RunBuild = class extends ForkingPlug {
constructor(tasks, props, options) {
super(requireFilename(import.meta.url), [tasks, props, options], RunBuildInternal.name);
}
};
export {
RunBuild,
RunBuildInternal
};
//# sourceMappingURL=build.mjs.map