UNPKG

@launchql/core

Version:
57 lines (56 loc) 2.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getExtensionsAndModulesChanges = exports.getExtensionsAndModules = exports.latestChangeAndVersion = exports.latestChange = void 0; const files_1 = require("../files"); const types_1 = require("@launchql/types"); /** * Get the latest change from the pgpm.plan file for a specific module. */ const latestChange = (sqlmodule, modules, basePath) => { const module = modules[sqlmodule]; if (!module) { throw types_1.errors.MODULE_NOT_FOUND({ name: sqlmodule }); } const planPath = `${basePath}/${module.path}/pgpm.plan`; return (0, files_1.getLatestChange)(planPath); }; exports.latestChange = latestChange; /** * Get the latest change and version for a specific module. */ const latestChangeAndVersion = (sqlmodule, modules, basePath) => { const module = modules[sqlmodule]; if (!module) { throw types_1.errors.MODULE_NOT_FOUND({ name: sqlmodule }); } const planPath = `${basePath}/${module.path}/pgpm.plan`; const change = (0, files_1.getLatestChange)(planPath); const pkg = require(`${basePath}/${module.path}/package.json`); return { change, version: pkg.version }; }; exports.latestChangeAndVersion = latestChangeAndVersion; /** * Get extensions and modules required by a specific module. */ const getExtensionsAndModules = (sqlmodule, modules) => { const module = modules[sqlmodule]; if (!module) { throw types_1.errors.MODULE_NOT_FOUND({ name: sqlmodule }); } const native = module.requires.filter((req) => !Object.keys(modules).includes(req)); const sqitch = module.requires.filter((req) => Object.keys(modules).includes(req)); return { native, sqitch }; }; exports.getExtensionsAndModules = getExtensionsAndModules; /** * Get extensions and modules with their latest changes and versions. */ const getExtensionsAndModulesChanges = (sqlmodule, modules, basePath) => { const { native, sqitch } = (0, exports.getExtensionsAndModules)(sqlmodule, modules); const sqitchWithDetails = sqitch.map((mod) => { const { change, version } = (0, exports.latestChangeAndVersion)(mod, modules, basePath); return { name: mod, latest: change, version }; }); return { native, sqitch: sqitchWithDetails }; }; exports.getExtensionsAndModulesChanges = getExtensionsAndModulesChanges;