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

修改

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