json-schema-typescript-generator
Version:
Generate typescript types from json schemas
28 lines • 1.52 kB
JavaScript
import { filtered } from '../util';
import { allOfGenerator } from './all-of-generator';
import { anyOfGenerator } from './any-of-generator';
import { basicTypeGenerator } from './basic-type-generator';
import { collectionGenerator } from './collection-generator';
import { constantGenerator } from './constant-generator';
import { enumGenerator } from './enum-generator';
import { objectGenerator } from './object-generator';
import { oneOfGenerator } from './one-of-generator';
import { referenceGenerator } from './reference-generator';
export const typeGenerator = (locatedSchema, gatheredInfo, inputInfo) => {
const types = [];
types.push(constantGenerator(locatedSchema, gatheredInfo, inputInfo));
types.push(referenceGenerator(locatedSchema, gatheredInfo, inputInfo));
types.push(enumGenerator(locatedSchema, gatheredInfo, inputInfo));
types.push(basicTypeGenerator(locatedSchema, gatheredInfo, inputInfo));
types.push(objectGenerator(locatedSchema, gatheredInfo, inputInfo));
types.push(collectionGenerator(locatedSchema, gatheredInfo, inputInfo));
types.push(allOfGenerator(locatedSchema, gatheredInfo, inputInfo));
types.push(anyOfGenerator(locatedSchema, gatheredInfo, inputInfo));
types.push(oneOfGenerator(locatedSchema, gatheredInfo, inputInfo));
const filteredLines = filtered(types);
if (filteredLines.length === 0) {
return inputInfo.options.ts.untyped;
}
return filteredLines.join('\n& ');
};
//# sourceMappingURL=type-generator.js.map