@vulcan-sql/build
Version:
VulcanSQL package for building projects
86 lines • 4.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Packager = exports.PackagerName = exports.PackagerTarget = exports.PackagerType = void 0;
const tslib_1 = require("tslib");
const core_1 = require("@vulcan-sql/core");
const types_1 = require("../../../containers/types");
const fs_1 = require("fs");
const path = require("path");
var PackagerType;
(function (PackagerType) {
PackagerType["Node"] = "node";
PackagerType["Docker"] = "docker";
})(PackagerType = exports.PackagerType || (exports.PackagerType = {}));
var PackagerTarget;
(function (PackagerTarget) {
PackagerTarget["VulcanServer"] = "vulcan-server";
PackagerTarget["CatalogServer"] = "catalog-server";
})(PackagerTarget = exports.PackagerTarget || (exports.PackagerTarget = {}));
exports.PackagerName = {
Node: `${PackagerType.Node}_${PackagerTarget.VulcanServer}`,
NodeCatalog: `${PackagerType.Node}_${PackagerTarget.CatalogServer}`,
Docker: `${PackagerType.Docker}_${PackagerTarget.VulcanServer}`,
DockerCatalog: `${PackagerType.Docker}_${PackagerTarget.CatalogServer}`,
};
let Packager = class Packager extends core_1.ExtensionBase {
getPackageJson() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const packageJson = {};
const isPkg = Boolean(process.pkg);
// if we are running in pkg binary, then we need to use package.json inside binary root: /snapshot/binary
const projectPackageJson = JSON.parse(yield fs_1.promises.readFile(isPkg
? path.resolve('/snapshot/binary', 'package.json')
: path.resolve(process.cwd(), 'package.json'), 'utf-8'));
packageJson['dependencies'] = projectPackageJson['dependencies'];
packageJson['main'] = 'index.js';
// remove catalog-server
delete packageJson['dependencies']['@vulcan-sql/catalog-server'];
return packageJson;
});
}
getCatalogPackageJson() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const packageJson = {};
let projectPackageJson = {};
const isPkg = Boolean(process.pkg);
// if we are running in pkg binary, then we need to use package.json inside binary root: /snapshot/binary
if (isPkg) {
projectPackageJson = JSON.parse(yield fs_1.promises.readFile(path.resolve('/snapshot/binary', 'package.json'), 'utf-8'));
// add catalog-server module manually because its not in binary package.json
packageJson['dependencies'] = {
'@vulcan-sql/catalog-server': projectPackageJson['version'],
};
}
else {
projectPackageJson = JSON.parse(yield fs_1.promises.readFile(path.resolve(process.cwd(), 'package.json'), 'utf-8'));
packageJson['dependencies'] = projectPackageJson['dependencies'];
}
packageJson['main'] = 'index.js';
if (!packageJson['dependencies']['@vulcan-sql/catalog-server']) {
throw new Error('Have you installed @vulcan-sql/catalog-server module?');
}
// remove all dependencies except catalog-server
for (const key in packageJson['dependencies']) {
if (key !== '@vulcan-sql/catalog-server') {
delete packageJson['dependencies'][key];
}
}
return packageJson;
});
}
getEntryJS() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return fs_1.promises.readFile(path.resolve(__dirname, 'assets', 'entryJs.template'), 'utf-8');
});
}
getCatalogEntryJS() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return fs_1.promises.readFile(path.resolve(__dirname, 'assets', 'catalogEntryJs.template'), 'utf-8');
});
}
};
Packager = tslib_1.__decorate([
(0, core_1.VulcanExtension)(types_1.TYPES.Extension_Packager, { enforcedId: true })
], Packager);
exports.Packager = Packager;
//# sourceMappingURL=packager.js.map