k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
60 lines • 2.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Runner = void 0;
const instruments_1 = require("@k8ts/instruments");
const metadata_1 = require("@k8ts/metadata");
const chalk_1 = __importDefault(require("chalk"));
const emittery_1 = __importDefault(require("emittery"));
const stacktracey_1 = __importDefault(require("stacktracey"));
const paths_1 = require("../paths");
const exporter_1 = require("./exporter");
const meta_1 = require("./exporter/meta");
const proverbs_1 = require("./silly/proverbs");
const summarizer_1 = require("./summarizer");
class Runner extends emittery_1.default {
_options;
constructor(_options) {
super();
this._options = _options;
}
async run(input) {
const gitInfo = await instruments_1.GitTrace.make({
cwd: this._options.cwd
});
const runTrace = new instruments_1.Trace(new stacktracey_1.default().slice(1));
const options = {
cwd: ".",
...this._options,
meta: metadata_1.Meta.make(this._options.meta).add(meta_1.k8ts_namespace, {
"^emitted-at": runTrace.format({
cwd: this._options.cwd
}),
"^source-git": gitInfo?.text
})
};
const progressShower = new exporter_1.ProgressShower(options.progress);
const assembler = new exporter_1.Assembler(options);
assembler.onAny(async (name, data) => {
await this.emit(name, data);
});
const summarizer = new summarizer_1.Summarizer({
printOptions: this._options.printOptions
});
const visualizer = progressShower.visualize(assembler);
const result = await assembler.assemble(input);
const viz = summarizer.result(result);
await visualizer;
console.log();
console.log(viz);
try {
const proverbs = await proverbs_1.Proverbs.make(paths_1.proverbsPath);
console.log(chalk_1.default.italic.magentaBright(proverbs.random));
}
catch { }
}
}
exports.Runner = Runner;
//# sourceMappingURL=runner.js.map