UNPKG

@ycmd/creds

Version:

LSK.js CLI Creds is the easiest way to manage GitHub / Gitlab secrets and credentials

117 lines (114 loc) 3.43 kB
'use strict'; var chunkCHOKACPI_js = require('./chunk-CHOKACPI.js'); var chunkDJTLL3YR_js = require('./chunk-DJTLL3YR.js'); var chunkVTCDYEPL_js = require('./chunk-VTCDYEPL.js'); var chunkU2DZE3DI_js = require('./chunk-U2DZE3DI.js'); var err = require('@lsk4/err'); var stringify = require('@lskjs/stringify'); var fishbird = require('fishbird'); var promises = require('fs/promises'); async function loadConfig(dirname) { const configPath = `${dirname}/config.js`; try { return { path: configPath, // eslint-disable-next-line import/no-dynamic-require config: chunkU2DZE3DI_js.__require(configPath) }; } catch (err$1) { if (err.Err.getCode(err$1) === "MODULE_NOT_FOUND") { chunkCHOKACPI_js.log.error(`${configPath} not found`); throw new err.Err(`${configPath} not found`); } if (err.Err.getCode(err$1).startsWith("Dynamic require of")) { try { const res = await import(configPath); return { path: configPath, config: res.default || res }; } catch (err2) { if (err.Err.getCode(err2) === "ERR_MODULE_NOT_FOUND") { chunkCHOKACPI_js.log.error(`${configPath} not found`); throw new err.Err(`${configPath} not found`); } throw err2; } } throw err$1; } } chunkU2DZE3DI_js.__name(loadConfig, "loadConfig"); async function build(serviceDirname, options = {}) { const log2 = options.log || chunkCHOKACPI_js.log; const buildDir = options.buildDir || `${serviceDirname}/build`; const { path, config } = await loadConfig(serviceDirname); await promises.unlink(`${buildDir}`).catch(() => { }); await promises.mkdir(buildDir, { recursive: true }); const serviceName = config.service?.serviceName; if (!serviceName) throw new err.Err("!serviceName"); let service; if (serviceName === "github") { service = new chunkVTCDYEPL_js.GithubService({ ...config.service, ...options }); } else if (serviceName === "gitlab") { service = new chunkDJTLL3YR_js.GitlabService({ ...config.service, ...options }); } else { throw new err.Err("incorrect serviceName", { serviceName }); } const { files = [] } = config; await fishbird.mapSeries(files, async (fileOptions) => { const { type, filename, handler } = fileOptions; const res = await handler(fileOptions, config); const comment = stringify.getComment({ filename, values: [ [ "Server", service.getServiceLink() ], [ "Project", service.getProjectPath() ], [ "Project ID", service.getProjectId() ], [ "Project Url", service.getProjectUrl() ], [ "CI/CD Setting", service.getProjectCICDSettingURL() ] ], footer: service.getProjectCredsUrl() && ` Auto generated by ${service.getProjectCredsUrl()} If you want to change something, please contact admin repo. `.trim() }); await stringify.jsonToFile(`${buildDir}/${filename}`, res, { type, compare: !options.force, comment }); log2.info(`[build] ${service.getProjectPath()} (${filename})`); }); } chunkU2DZE3DI_js.__name(build, "build"); exports.build = build; //# sourceMappingURL=out.js.map //# sourceMappingURL=chunk-Q7NMWA5P.js.map