Создать схему JSON из машинописи
Я пытаюсь создать doc-генератор машинописного текста, но для этого мне нужно разобрать файл машинописного текста во что-то более удобочитаемое
EX:
"Command": {
"description": "A command object for the command handler",
"constructor": [
{
"name": "name",
"type": "string",
"optional": false,
"default": null,
"description": "Name of the command"
},
{
"name": "callback",
"type": "(event: CommandContext) => void",
"optional": false,
"default": null,
"description": "Callback for the command"
}
],
"properties": [
{
"name": "name",
"description": "Name of the command",
"type": "string"
},
{
"name": "fullname",
"description": "Fullname of the command",
"type": "string"
}
],
"methods": [
{
"name": "canRun",
"description": "Checks all permission checks and verifies if a command can be run",
"parameters": [
{
"name": "context",
"type": "CommandContext",
"optional": false,
"default": null,
"description": "The context for the command",
"returns": "PermissionCheckResult"
}
]
}
],
"events": null
}
будет происходить из чего-то вроде этого
export declare class Command {
/**
* Name of the command
*/
name: string;
/**
* Fullname of the command
*/
fullname: string;
/**
* Create a command
* @param name - Name of the command
* @param callback - Callback for the command
*/
constructor(name: string, callback: (event: CommandContext) => void);
/**
* Checks all permission checks and verifies if a command can be run
* @param context - The context for the command
*/
canRun(context: CommandContext): boolean;
}
как бы это сделать, желательно в браузере, но если это невозможно, я также могу сделать это с помощью node.js
3 ответа
TypeDoc имеет аналогичную функцию, вы можете использовать --json
тег для получения данных о модуле в формате JSON
это не совсем то, что я искал, но может быть использовано для достижения того же
ts-json-schema у меня работает очень хорошо.
Вы можете использовать его как
$ npx ts-json-schema-generator -p types.ts > types.json
.
Также есть typescript-json-schema .
https://www.npmjs.com/package/typescript-json-схема
Использование командной строки:
./node_modules/.bin/typescript-json-schema <path-to-typescript-files-or-tsconfig> <type> --out schema.json
Я использовал вот так,
./node_modules/.bin/ts-json-schema-generator index.ts Book --out schema.json
index.ts
export interface Book {
author: string;
/**
* The size of the shape.
*
* @minimum 0
* @TJS-type integer
* @items.optional true
*/
pages: number;
genre: BookGenre;}