{"version":3,"sources":["parser/model.ts"],"names":[],"mappings":"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","file":"model.d.ts","sourcesContent":["//** PARSER MODEL\n\nimport { DEFAULT_SCALARS } from \"tt-model\";\n/** Kinds */\nexport enum Kind {\n\t/** Input object */\n\tINPUT_OBJECT,\n\n\t/** Output Object */\n\tOUTPUT_OBJECT,\n\n\t/** Helper: Input resolvers */\n\tINPUT_RESOLVERS,\n\n\t/** Helper: Output resolvers */\n\tOUTPUT_RESOLVERS,\n\n\t/** Input field */\n\tINPUT_FIELD,\n\t/** Output field */\n\tOUTPUT_FIELD,\n\n\t/** Param */\n\tPARAM,\n\n\t/** Enumeration */\n\tENUM,\n\n\t/** Enum member */\n\tENUM_MEMBER,\n\n\t/** List of sub entries */\n\tLIST,\n\n\t/** Multiple possible kinds */\n\tUNION,\n\n\t/** Scalar */\n\tSCALAR,\n\t/** Basic scalar */\n\tBASIC_SCALAR,\n\t/** Reference */\n\tREF,\n\n\t/** Formatted Input object */\n\tFORMATTED_OUTPUT_OBJECT,\n\t/** Formatted output object */\n\tFORMATTED_INPUT_OBJECT,\n\n\t/** Converter */\n\tCONVERTER,\n\n\t/** Function expression */\n\tFUNCTION_EXPRESSION\n}\n\n/** Node */\nexport type Node =\n\t| InputObject\n\t| OutputObject\n\t| Enum\n\t| Union\n\t| Scalar\n\t| BasicScalar;\n/** Input nodes */\nexport type InputNode =\n\t| InputObject\n\t| Enum\n\t| Union\n\t| Scalar\n\t| BasicScalar;\n/** Output nodes */\nexport type OutputNode =\n\t| OutputObject\n\t| Enum\n\t| Union\n\t| Scalar\n\t| BasicScalar;\n// | ObjectLiteral;\nexport type AllNodes = Node | InputField | OutputField | List | Reference | Param | ConvertObj | FunctionExpr;\n\n/** @abstract basic node */\nexport interface _Node {\n\tkind: Kind;\n\t/** Node's name: may contains special chars like | and <> */\n\tname: string;\n\t/** JS DOCS */\n\tjsDoc: string[];\n\t/** Deprecation message when exists */\n\tdeprecated: string | undefined;\n\t/** Files where this entity found */\n\tfileNames: String[]\n}\n\n/** Output Object */\nexport interface OutputObject extends _Node {\n\tkind: Kind.OUTPUT_OBJECT;\n\t/** Name without generic parameters */\n\tescapedName: string | undefined;\n\t/** inherited classes and interfaces */\n\tinherit: string[] | undefined;\n\t/** Do order fields by name */\n\torderByName: boolean | undefined;\n\t/** Fields */\n\tfields: Map<string, OutputField>;\n\t/** Wrap object validation */\n\twrappers: MethodDescM[] | undefined\n\tbefore: MethodDescM[] | undefined\n\tafter: MethodDescM[] | undefined\n\t/** Owned fields count */\n\townedFieldsCount: number\n\t/** Converter */\n\tconvert: ConvertObj | undefined\n}\n\n/** Input Object  */\nexport interface InputObject extends Omit<OutputObject, 'kind' | 'fields'> {\n\tkind: Kind.INPUT_OBJECT;\n\t/** Fields */\n\tfields: Map<string, InputField>;\n}\n/** Convert object format */\nexport interface ConvertObj extends MethodDescM {\n\tkind: Kind.CONVERTER;\n\ttype: Reference | undefined;\n}\n\n\n/** Commons between input and output fields */\ninterface _Field extends _Node {\n\t/** Field index inside it's parent object */\n\tidx: number;\n\t/** Name of the class */\n\tclassName: string | undefined;\n\t/** Field alias */\n\talias: string | undefined;\n\n\t/** If field is required */\n\trequired: boolean;\n\t/** Content type: List or type name */\n\ttype: FieldType;\n\t/** Default value */\n\tdefaultValue: any;\n}\n\n/** Input field */\nexport interface InputField extends _Field {\n\tkind: Kind.INPUT_FIELD;\n\t/** Input Assert */\n\tasserts: AssertOptions | undefined;\n\t/** Input validator */\n\tpipe: MethodDescriptor[];\n\t/** custom function as validator */\n\tvalidators: string[]\n}\n\n/** Object field */\nexport interface OutputField extends _Field {\n\tkind: Kind.OUTPUT_FIELD;\n\t/** Resolver method */\n\tmethod: MethodDescriptor | undefined;\n\t/** Method main parameter */\n\tparam: Param | undefined; // Param is a reference, could not be array or any else.\n\t/** Custom function as output resolver */\n\tresolvers: string[]\n}\n\n\n/** Method descriptor minimal */\nexport interface MethodDescM {\n\t/** File name */\n\tfileName: string;\n\t/** class name */\n\tclassName: string;\n\t/** Method name */\n\tname: string | undefined;\n\t/** If this method is async (has promise) */\n\tisAsync: boolean\n}\n/** Method descriptor */\nexport interface MethodDescriptor extends MethodDescM {\n\t/** is prototype or static method */\n\tisStatic: boolean;\n\t/** Is target a class */\n\tisClass: boolean;\n}\n\n/** List */\nexport interface List extends Omit<_Node, 'name'> {\n\tkind: Kind.LIST;\n\trequired: boolean;\n\ttype: FieldType;\n}\n\n\n/** ENUM */\nexport interface Enum extends _Node {\n\tkind: Kind.ENUM;\n\tmembers: EnumMember[];\n\t/** Escaped name to use with graphql */\n\tescapedName: string;\n}\n\n/** ENUM member */\nexport interface EnumMember extends _Node {\n\tkind: Kind.ENUM_MEMBER;\n\tvalue: string | number;\n}\n\n/** UNION */\nexport interface Union extends _Node {\n\tkind: Kind.UNION;\n\t/** TODO convert this to references to plain objects */\n\ttypes: Reference[];\n\tparser: MethodDescriptor | undefined;\n\t/** Escaped name to use with graphql */\n\tescapedName: string;\n}\n\n/** Assert options */\nexport interface AssertOptions {\n\t/** Min value, arr.length or string.length */\n\tmin?: string;\n\t/** Max value, arr.length or string.length */\n\tmax?: string;\n\t/** less than value, arr.length or string.length */\n\tlt?: string;\n\t/** greater than value, arr.length or string.length */\n\tgt?: string;\n\t/** less than or equals value, arr.length or string.length */\n\tlte?: string;\n\t/** greater than or equals value, arr.length or string.length */\n\tgte?: string;\n\t/** Value equals */\n\teq?: string;\n\t/** Value not equals */\n\tne?: string;\n\t/** arr.length or string.length */\n\tlength?: string;\n\t/** Regular expression */\n\tregex?: RegExp;\n}\n\n/** Scalar definition */\nexport interface Scalar extends _Node {\n\tkind: Kind.SCALAR;\n\tparser: MethodDescriptor;\n\t/** Escaped name to use with graphql */\n\tescapedName: string;\n}\n\n/** Basic scalar */\nexport interface BasicScalar extends _Node {\n\tkind: Kind.BASIC_SCALAR;\n\tname: typeof DEFAULT_SCALARS[number];\n\t/** Escaped name to use with graphql */\n\tescapedName: string;\n}\n\n/** Generic reference or operation: Example: Page<User>, Partial<Booking> */\nexport interface Reference {\n\tkind: Kind.REF;\n\t/** Reference name */\n\tname: string;\n\t/** source file name. Used for debugger */\n\tfileName: string;\n\t// /** Params in case of generic type */\n\t// params: FieldType[] | undefined;\n\t// /** Node: enables us to resolve fields for dynamic fields (like Omit and Partial) */\n\t// visibleFields:\n\t// | Map<\n\t// \tstring,\n\t// \t{\n\t// \t\tflags: ts.SymbolFlags;\n\t// \t\tclassName: string;\n\t// \t}\n\t// >\n\t// | undefined;\n}\n\n/** Field possible types (string means reference) */\nexport type FieldType = List | Reference;\n\n/** Param */\nexport interface Param extends _Node {\n\tkind: Kind.PARAM;\n\ttype: Reference | undefined;\n}\n\n\n/** Root config interface */\nexport interface RootConfig {\n\tbefore: MethodDescM[];\n\tafter: MethodDescM[];\n\twrappers: MethodDescM[];\n}\n\n/** Function expression or declaration */\nexport interface FunctionExpr extends _Node {\n\tkind: Kind.FUNCTION_EXPRESSION,\n\t/** File name */\n\tfileName: string;\n\t/** Method name */\n\tname: string;\n\t/** If this method is async (has promise) */\n\tisAsync: boolean;\n\t/** Method main parameter */\n\tparam: Param | undefined; // Param is a reference, could not be array or any else.\n\t/** If field is required */\n\trequired: boolean;\n\t/** Content type: List or type name */\n\ttype: FieldType;\n}"]}