@vulcan-sql/build
Version:
VulcanSQL package for building projects
37 lines • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeCatalogPackager = void 0;
const tslib_1 = require("tslib");
const core_1 = require("@vulcan-sql/core");
const extensions_1 = require("../../../models/extensions");
const path = require("path");
const fs_1 = require("fs");
let NodeCatalogPackager = class NodeCatalogPackager extends extensions_1.Packager {
constructor() {
super(...arguments);
this.logger = this.getLogger();
this.target = extensions_1.PackagerTarget.CatalogServer;
}
package(option) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const config = this.getConfig() || {};
const { folderPath = 'dist' } = config[this.target] || {};
const distFolder = path.resolve(process.cwd(), folderPath);
yield fs_1.promises.rm(distFolder, { recursive: true, force: true });
yield fs_1.promises.mkdir(distFolder, { recursive: true });
// package.json
yield fs_1.promises.writeFile(path.resolve(distFolder, 'package.json'), JSON.stringify(yield this.getCatalogPackageJson(), null, 4), 'utf-8');
// config.json (vulcan config)
yield fs_1.promises.writeFile(path.resolve(distFolder, 'config.json'), JSON.stringify(option), 'utf-8');
// entrypoint
yield fs_1.promises.writeFile(path.resolve(distFolder, 'index.js'), yield this.getCatalogEntryJS(), 'utf-8');
this.logger.info(`Package successfully, you can go to "${folderPath}" folder and run "npm install && node index.js" to start the server`);
});
}
};
NodeCatalogPackager = tslib_1.__decorate([
(0, core_1.VulcanExtensionId)(extensions_1.PackagerName.NodeCatalog),
(0, core_1.VulcanInternalExtension)('node-packager')
], NodeCatalogPackager);
exports.NodeCatalogPackager = NodeCatalogPackager;
//# sourceMappingURL=nodeCatalogPackager.js.map