@lcap/cli
Version:
utils for lcap
56 lines • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSecretByOption = exports.tokenCheck = exports.tokenOptions = exports.transformSecretToToken = exports.getSecretByToken = exports.getSecretByFile = void 0;
const promises_1 = require("fs/promises");
const path_1 = require("path");
function getSecretByFile(file) {
return (0, promises_1.readFile)(file, 'utf-8').then((val) => {
try {
return JSON.parse(val);
}
catch (e) {
return val;
}
});
}
exports.getSecretByFile = getSecretByFile;
function getSecretByToken(token) {
const content = Buffer.from(token, 'base64').toString('utf-8');
try {
return JSON.parse(content);
}
catch (err) {
return token;
}
}
exports.getSecretByToken = getSecretByToken;
function transformSecretToToken(data) {
return Buffer.from(JSON.stringify(data)).toString('base64');
}
exports.transformSecretToToken = transformSecretToToken;
exports.tokenOptions = {
token: {
type: 'string',
describe: '发布密钥',
},
tokenFile: {
type: 'string',
describe: '发布密钥所在文件',
},
};
function tokenCheck(argv) {
if (!argv.token && !argv.tokenFile) {
throw new Error('以下参数至少需要填入一个:token, tokenFile');
}
return true;
}
exports.tokenCheck = tokenCheck;
async function getSecretByOption(root, opt) {
return opt.token
? getSecretByToken(opt.token)
: opt.tokenFile
? getSecretByFile((0, path_1.isAbsolute)(opt.tokenFile) ? opt.tokenFile : (0, path_1.join)(root, opt.tokenFile))
: '';
}
exports.getSecretByOption = getSecretByOption;
//# sourceMappingURL=secret.js.map