beyond
Version:
The Full Stack Universal Typescript Framework
61 lines (48 loc) • 1.75 kB
JavaScript
let model;
module.exports = m => (model = m) && Packager;
class Packager extends (require('./base')) {
#packager
get item() {
return this.#packager;
}
get processors() {
return this.#packager?.processors;
}
#bundle
get bundle() {
return this.#bundle;
}
#distribution
get distribution() {
return this.#distribution;
}
async _initialise() {
const [bundleId, distributionId] = this.id.split('///');
if (bundleId < 4) return this._done(`Packager bundle id "${this.id}" is invalid`);
if (distributionId < 2) return this._done(`Packager distribution id "${this.id}" is invalid`);
const bundle = new model.Bundle(bundleId);
await bundle.ready;
if (bundle.error) return this._done(`Packager bundle not valid, ${bundle.error}`);
const distribution = new model.Distribution(distributionId);
await distribution.ready;
const packager = bundle.packagers.get(distribution.toJSON());
await packager.ready;
await packager.processors.ready;
this.#packager = packager;
this.#bundle = bundle;
this.#distribution = distribution;
this._done();
};
toJSON() {
const ids = [...this.#packager.processors.keys()].map(processor => {
const [bundleId, distributionId] = this.id.split('///');
return `${bundleId}//${processor}///${distributionId}`;
});
return {
id: this.id,
distribution: this.#distribution.id,
processors: [...this.#packager.processors.keys()],
pkg_processor_ids: ids
};
}
}