UNPKG

typescript-member-signatures

Version:

Command line tool to extract given interface member signatures as JSON strings, recursively in the extends chain with the purpose of documentation

41 lines (39 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ts_morph_1 = require("ts-morph"); function firstLetterToUpperCase(s) { return s.substring(0, 1).toUpperCase() + s.substring(1); } function firstLetterToLowerCase(s) { return s.substring(0, 1).toLowerCase() + s.substring(1); } function resultToTypeScript(o) { const name = o.exportName || o.result.name; // TODO: Member is copy&paste // TODO: support methods and other data ? // TODO: don't use JSON.stringify produce ugly output const r = ` export interface ${firstLetterToUpperCase(name)}Member { signature: string name?: string typeText?: string optional?: boolean jsDocsText?: string markdown?: string } export interface ${firstLetterToUpperCase(name)} { name: string, properties: ${firstLetterToUpperCase(name)}Member[] } export const ${firstLetterToLowerCase(name)}: ${firstLetterToUpperCase(name)} = { name: '${name}', properties: ${JSON.stringify(o.result.properties || [], null, 2)} } `; const p = new ts_morph_1.Project(); const f = p.createSourceFile('test.ts', r); f.formatText(); return f.getText(); } exports.resultToTypeScript = resultToTypeScript; //# sourceMappingURL=typescriptOutput.js.map