ngrx-uml
Version:
NGRX to Plant UML diagram
114 lines (113 loc) • 4.16 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.serializeConvertedItemsMapToJson = exports.removeiIlegalCharacters = exports.getCommandFilesExtensionsForEnvironment = exports.printProgress = exports.getFileName = exports.prepareTraceLogger = exports.writeToFile = exports.writeJsonToFile = exports.getKeysReplacer = exports.getKeyReplacer = exports.objectFlter = void 0;
const chalk_1 = __importDefault(require("chalk"));
const fs_1 = require("fs");
const loglevel_1 = __importDefault(require("loglevel"));
const path_1 = __importDefault(require("path"));
const models_1 = require("../core/converters/models");
function objectFlter(key, value) {
if (!key) {
return value;
}
if (typeof value === 'object')
return undefined;
return value;
}
exports.objectFlter = objectFlter;
function getKeyReplacer(keyToReplace) {
return function actionReplacer(key, value) {
if (key === keyToReplace) {
return undefined;
}
return value;
};
}
exports.getKeyReplacer = getKeyReplacer;
function getKeysReplacer(keysToReplace) {
return function actionReplacer(key, value) {
if (keysToReplace.includes(key)) {
return undefined;
}
return value;
};
}
exports.getKeysReplacer = getKeysReplacer;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function writeJsonToFile(data, outDir, fileName, replacer) {
if (!fs_1.existsSync(outDir)) {
fs_1.mkdirSync(outDir, { recursive: true });
}
const filePath = `${outDir}/${fileName}`;
loglevel_1.default.trace('write file:', filePath);
const fileData = JSON.stringify(data, replacer, 2);
fs_1.writeFileSync(filePath, fileData);
}
exports.writeJsonToFile = writeJsonToFile;
function writeToFile(content, outDir, fileName) {
if (!fs_1.existsSync(outDir)) {
fs_1.mkdirSync(outDir, { recursive: true });
}
const filePath = `${outDir}/${fileName}`;
loglevel_1.default.trace('write file:', chalk_1.default.gray(filePath));
fs_1.writeFileSync(filePath, content);
return filePath;
}
exports.writeToFile = writeToFile;
function prepareTraceLogger() {
if (loglevel_1.default.getLevel() === loglevel_1.default.levels.TRACE) {
loglevel_1.default.trace = loglevel_1.default.debug;
}
}
exports.prepareTraceLogger = prepareTraceLogger;
function getFileName(filePath) {
return filePath && path_1.default.parse(filePath).name;
}
exports.getFileName = getFileName;
function printProgress(progress) {
process.stdout.clearLine(0);
process.stdout.cursorTo(0);
process.stdout.write(progress);
}
exports.printProgress = printProgress;
function getCommandFilesExtensionsForEnvironment() {
return __filename.endsWith('ts') ? ['js', 'ts'] : ['js'];
}
exports.getCommandFilesExtensionsForEnvironment = getCommandFilesExtensionsForEnvironment;
function removeiIlegalCharacters(name, makeClickableInTerminal = false) {
if (makeClickableInTerminal) {
name = name.replace(/[\s]/g, '-').replace(/[[\]]/g, '_').replace(/_-/g, '_');
}
return name.replace(/[<>:"/\\|?*]/g, '-');
}
exports.removeiIlegalCharacters = removeiIlegalCharacters;
function serializeConvertedItemsMapToJson(map, parent, replacer) {
if (map) {
const result = [];
for (const [kind, items] of map) {
if (items && items.length) {
result.push({ kind: models_1.TypeKind[kind], json: JSON.stringify(Object.assign(Object.assign({}, parent), { data: items }), replacer, 2) });
}
}
return result;
}
return;
}
exports.serializeConvertedItemsMapToJson = serializeConvertedItemsMapToJson;
const utils = {
objectFlter,
getKeyReplacer,
getKeysReplacer,
writeJsonToFile,
writeToFile,
prepareTraceLogger,
getFileName,
printProgress,
getCommandFilesExtensionsForEnvironment,
removeiIlegalCharacters,
serializeConvertedItemsMapToJson
};
exports.default = utils;
;