@ycmd/creds
Version:
LSK.js CLI Creds is the easiest way to manage GitHub / Gitlab secrets and credentials
112 lines (109 loc) • 3.33 kB
JavaScript
;
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 chunkU2DZE3DI_js.__require(configPath);
} catch (err$1) {
console.log("err", err$1);
console.log("code", err.Err.getCode(err$1));
if (err.Err.getCode(err$1).startsWith("Dynamic require of")) {
try {
const res = await import(configPath);
return 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;
}
}
if (err.Err.getCode(err$1) === "MODULE_NOT_FOUND") {
chunkCHOKACPI_js.log.error(`${configPath} not found`);
throw new err.Err(`${configPath} not found`);
}
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 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-EQDCK6L5.js.map