@pubgcorp/pk-template
Version:
p template engine for kubernetes
132 lines • 10.3 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.repositoryPath = exports.repository = exports.sha256 = exports.readStdin = exports.setValue = exports.parseList = exports.parseKvps = exports.pktError = exports.deepCloneWithFunction = exports.deepClone = void 0;
const pk_yaml_1 = require("../pk-yaml");
const crypto_1 = require("crypto");
const child_process_1 = require("child_process");
const path_1 = require("path");
const deepClone = (obj) => JSON.parse(JSON.stringify(obj));
exports.deepClone = deepClone;
// export const deepCloneWithFunction = deepClone;
const deepCloneWithFunction = (obj) => {
if (typeof obj === 'object') {
if (Array.isArray(obj)) {
return obj.map(item => (0, exports.deepCloneWithFunction)(item));
}
else if (obj === null) {
return null;
}
else {
const cloned = {};
for (const key of Object.keys(obj)) {
cloned[key] = (0, exports.deepCloneWithFunction)(obj[key]);
}
return cloned;
}
}
return obj;
};
exports.deepCloneWithFunction = deepCloneWithFunction;
const pktError = (scope, error, message) => {
const pe = error;
pe.summary = message;
pe.uri = scope ? scope.uri : '.';
pe.pos = (scope && scope.trace) ? scope.trace.pos() : null;
return pe;
};
exports.pktError = pktError;
const parseKvps = (value) => {
if (!value)
return {};
const kvps = {};
value.split(';')
.forEach(kvp => {
const [key, value] = kvp.split('=');
kvps[key.trim()] = value ? value.trim() : '';
});
return kvps;
};
exports.parseKvps = parseKvps;
const parseList = (value) => {
if (!value)
return [];
return value.split(';').map(p => p.trim());
};
exports.parseList = parseList;
const _setValue = (node, pathes, value) => {
if (true) {
const key = pathes[0];
if (pathes.length == 1) {
node[key] = value;
}
else {
const child = key in node ? node[key] : (node[key] = {});
pathes.shift();
_setValue(child, pathes, value);
}
}
};
const setValue = (node, path, value) => {
_setValue(node, path.split('.'), value);
};
exports.setValue = setValue;
function readStdin() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
const chunks = [];
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (chunk) {
chunks.push(chunk);
});
process.stdin.on('end', function () {
var all = chunks.join('');
resolve(all);
});
process.stdin.on('error', function (error) {
reject(error);
});
});
});
}
exports.readStdin = readStdin;
const sha256 = (obj, len) => {
const yaml = typeof obj === 'object'
? (0, pk_yaml_1.dumpYamlSortedKey)(obj)
: obj.toString();
const hash = (0, crypto_1.createHash)('sha256');
hash.update(yaml);
return len ? hash.digest('hex').substr(0, len) : hash.digest('hex');
};
exports.sha256 = sha256;
const repository = (ref) => {
try {
const r = (0, child_process_1.execSync)(`git config --get ${ref || 'remote.origin.url'}`);
return r.toString('utf8').trim();
}
catch (e) {
return 'unknown';
}
};
exports.repository = repository;
const repositoryPath = (path) => {
try {
const filePath = (0, path_1.resolve)(path);
const gitRoot = (0, child_process_1.execSync)(`git rev-parse --show-toplevel`).toString('utf8').trim();
return (0, path_1.relative)(gitRoot, filePath);
}
catch (e) {
return 'unknown';
}
};
exports.repositoryPath = repositoryPath;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGstdGVtcGxhdGUvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0Esd0NBQStDO0FBQy9DLG1DQUFvQztBQUNwQyxpREFBeUM7QUFDekMsK0JBQXlDO0FBWWxDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBUSxFQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUEvRCxRQUFBLFNBQVMsYUFBc0Q7QUFDNUUsa0RBQWtEO0FBQzNDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxHQUFRLEVBQU8sRUFBRTtJQUNyRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBQSw2QkFBcUIsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO2FBQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBTTtZQUNMLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztZQUN2QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFBLDZCQUFxQixFQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQy9DO1lBQ0QsT0FBTyxNQUFNLENBQUM7U0FDZjtLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUE7QUFmWSxRQUFBLHFCQUFxQix5QkFlakM7QUFFTSxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQW9CLEVBQUUs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