提交 b09aa0fc authored 作者: 王绍森's avatar 王绍森

修改

上级 8cd4b6bf
......@@ -73,16 +73,17 @@ function convertType(item, importedModels) {
}
function getFields (properties, importedModels) {
function getFields (properties, importedModels, required = []) {
return Object.keys(properties).map(key => {
const { type, description, $ref } = properties[key];
const optionalSymbol = required.includes(key) ? '' : '?';
const desc = (description ? `
/**
* ${description}
*/
` : '') + `${key}: `;
` : '') + `${key + optionalSymbol}: `;
let fieldType = convertType(properties[key], importedModels);
......@@ -95,7 +96,7 @@ function getFields (properties, importedModels) {
}).filter(i => i).join('\n');
}
function getModelInterface(title, name, properties) {
function getModelInterface(title, name, properties, required) {
const imprtedModels = [];
name = formatModelName(name);
const titleComment = title ? `
......@@ -106,7 +107,7 @@ function getModelInterface(title, name, properties) {
` : '';
let modelInterface = titleComment + `
export default interface ${name} {
${properties ? getFields(properties, imprtedModels) : ''}
${properties ? getFields(properties, imprtedModels, required) : ''}
}
`;
imprtedModels.forEach(importModel => {
......@@ -123,9 +124,9 @@ function generateModels(definitions) {
if (["Page«", "Result«", 'Map«'].some(prefix => modelName.startsWith(prefix))) {
continue;
}
const { title, properties, } = definitions[modelName]
const { title, properties, required } = definitions[modelName]
modelName = formatModelName(modelName)
const modelCotent = getModelInterface(title, title, properties);
const modelCotent = getModelInterface(title, title, properties, required);
fs.writeFileSync(path.join(directory, `${modelName}.ts`), modelCotent, {encoding: "utf-8"});
console.log('write model: ', modelName);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论