@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
45 lines (44 loc) • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createWorkspaceContext = void 0;
const __1 = require("..");
const packageManager_1 = require("../pipeline/packageManager");
const utils_1 = require("../utils");
const lodash_es_1 = require("lodash-es");
async function createWorkspaceContext({
env,
components,
workspaceName,
config,
pipelineType,
trigger
}) {
var _a, _b;
const workspaceConfigRaw = (_a = config.builds) === null || _a === void 0 ? void 0 : _a[workspaceName];
if (!workspaceConfigRaw) {
throw new Error(`Workspace ${workspaceName} not found in config`);
}
const defaults = __1.WORKSPACE_BUILD_TYPES[workspaceConfigRaw.type].defaults();
const workspaceConfig = (0, utils_1.mergeWithMergingArrays)(defaults, workspaceConfigRaw);
return {
name: workspaceName,
pipelineType,
trigger,
type: "workspace",
workspaceConfig,
env,
components,
fullConfig: config,
packageManagerInfo: (0, packageManager_1.getPackageManagerInfoBase)(),
build: {
type: "workspace",
dir: (_b = workspaceConfig.dir) !== null && _b !== void 0 ? _b : ".",
getComponentDirs: async mode => (0, lodash_es_1.uniq)((await Promise.all(components.map(c => c.build.getComponentDirs(mode)))).flat()),
buildType: workspaceConfig.type,
config: workspaceConfig
}
};
}
exports.createWorkspaceContext = createWorkspaceContext;