@vulcan-sql/build
Version:
VulcanSQL package for building projects
44 lines • 2.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DockerPackager = 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 DockerPackager = class DockerPackager extends extensions_1.Packager {
constructor() {
super(...arguments);
this.logger = this.getLogger();
this.target = extensions_1.PackagerTarget.VulcanServer;
}
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.getPackageJson(), 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.getEntryJS(), 'utf-8');
// result.json
if (option.artifact.provider === core_1.ArtifactBuilderProviderType.LocalFile &&
option.artifact.filePath) {
yield fs_1.promises.copyFile(path.resolve(process.cwd(), option.artifact.filePath), path.resolve(distFolder, option.artifact.filePath));
}
// Dockerfile
yield fs_1.promises.copyFile(path.resolve(__dirname, 'assets', 'Dockerfile'), path.resolve(distFolder, 'Dockerfile'));
this.logger.info(`Package successfully, you can go to "${folderPath}" folder and run "docker build ." to build the image.`);
});
}
};
DockerPackager = tslib_1.__decorate([
(0, core_1.VulcanExtensionId)(extensions_1.PackagerName.Docker),
(0, core_1.VulcanInternalExtension)('docker-packager')
], DockerPackager);
exports.DockerPackager = DockerPackager;
//# sourceMappingURL=dockerPackager.js.map