Files
JsonTool/json-class-interface/dist/toClass.js
2024-09-27 01:15:47 +08:00

39 lines
1.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.toClass = void 0;
const utils_1 = require("./utils");
let TextResult = "";
const toClass = (className = "JsonToClass", rawJson, options = {}, repeat = false) => {
typeof (rawJson) === "string" ? rawJson = JSON.parse(rawJson) : null;
(0, utils_1.isArray)(rawJson) ? rawJson = rawJson[0] : null;
if (!repeat) {
TextResult = "";
}
let classText = (0, utils_1.stripIndent) `
${(0, utils_1.setInterfaceModel)(options)} ${className} {
${Object.keys(rawJson).map(key => {
let ArrayInsideNotObject = false;
if ((0, utils_1.isObjectOrArray)(rawJson[key])) {
if ((0, utils_1.isArray)(rawJson[key]) && (0, utils_1.isObject)(rawJson[key][0])) {
(0, exports.toClass)((0, utils_1.firstLetterCap)(key), rawJson[key], options, true);
}
if ((0, utils_1.isObject)(rawJson[key])) {
ArrayInsideNotObject = false;
(0, exports.toClass)((0, utils_1.firstLetterCap)(key), rawJson[key], options, true);
}
}
return `${(0, utils_1.setDefaultNeedPropertyValue)(options, key) == null ? '' : (0, utils_1.setDefaultNeedPropertyValue)(options, key)}
${(0, utils_1.setKeyNotNull)(options, key)}: ${ArrayInsideNotObject
? `${typeof rawJson[key][0]}[]`
: (0, utils_1.isObjectOrArray)(rawJson[key])
? `${(0, utils_1.firstLetterCap)(key)}${(0, utils_1.isArray)(rawJson[key]) ? '[]' : ''}`
: (0, utils_1.isNull)(rawJson[key]) ? (0, utils_1.setDefaultNull)(options) : typeof rawJson[key]};
`;
})}
}
`;
TextResult += `${classText} \n\n`;
return TextResult;
};
exports.toClass = toClass;