UNPKG

2.3 kBSource Map (JSON)View Raw
1{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/lib/converter/components.ts"],"names":[],"mappings":";;AAEA,kDAAkE;AAMzD,oBANA,qBAAS,CAMA;AAElB,MAAsB,kBAAmB,SAAQ,6BAA4B;CAAI;AAAjF,gDAAiF;AAEjF,MAAsB,sBAA0C,SAAQ,kBAAkB;CAOzF;AAPD,wDAOC;AAED,MAAsB,sBAAuB,SAAQ,kBAAkB;IAAvE;;QAKI,aAAQ,GAAG,CAAC,CAAC;IACjB,CAAC;CAAA;AAND,wDAMC","sourcesContent":["import * as ts from 'typescript';\n\nimport { Component, AbstractComponent } from '../utils/component';\nimport { Reflection } from '../models/reflections/abstract';\nimport { Type } from '../models/types/abstract';\nimport { Context } from './context';\nimport { Converter } from './converter';\n\nexport { Component };\n\nexport abstract class ConverterComponent extends AbstractComponent<Converter> { }\n\nexport abstract class ConverterNodeComponent<T extends ts.Node> extends ConverterComponent {\n /**\n * List of supported TypeScript syntax kinds.\n */\n abstract supports: ts.SyntaxKind[];\n\n abstract convert(context: Context, node: T): Reflection | undefined;\n}\n\nexport abstract class ConverterTypeComponent extends ConverterComponent {\n /**\n * The priority this converter should be executed with.\n * A higher priority means the converter will be applied earlier.\n */\n priority = 0;\n}\n\nexport interface TypeConverter<T extends ts.Type, N extends ts.Node>\n extends ConverterTypeComponent, TypeTypeConverter<T>, TypeNodeConverter<T, N> {}\n\nexport interface TypeTypeConverter<T extends ts.Type> extends ConverterTypeComponent {\n /**\n * Test whether this converter can handle the given TypeScript type.\n */\n supportsType(context: Context, type: T): boolean;\n\n /**\n * Convert the given type to its type reflection.\n */\n convertType(context: Context, type: T): Type | undefined;\n}\n\nexport interface TypeNodeConverter<T extends ts.Type, N extends ts.Node> extends ConverterTypeComponent {\n /**\n * Test whether this converter can handle the given TypeScript node.\n */\n supportsNode(context: Context, node: N, type: T | undefined): boolean;\n\n /**\n * Convert the given type node to its type reflection.\n */\n convertNode(context: Context, node: N, type: T | undefined): Type | undefined;\n}\n"]}
\No newline at end of file