swagger-typescript-api
    Preparing search index...

    Interface Hooks

    interface Hooks {
        onBuildRoutePath: (data: BuildRoutePath) => undefined | BuildRoutePath;
        onCreateComponent: (
            component: SchemaComponent,
        ) => undefined | SchemaComponent;
        onCreateRequestParams?: (
            rawType:
                | undefined
                | {
                    $parsed: ParsedSchema<
                        | SchemaTypeObjectContent
                        | SchemaTypeEnumContent
                        | SchemaTypePrimitiveContent,
                    >;
                    discriminator?: { propertyName?: string };
                    properties?: Record<
                        string,
                        {
                            $parsed?: SchemaTypePrimitiveContent;
                            name?: string;
                            required: boolean;
                            type: string;
                        },
                    >;
                    required?: string[];
                    type: string;
                },
        ) => | undefined
        | {
            $parsed: ParsedSchema<
                | SchemaTypeObjectContent
                | SchemaTypeEnumContent
                | SchemaTypePrimitiveContent,
            >;
            discriminator?: { propertyName?: string };
            properties?: Record<
                string,
                {
                    $parsed?: SchemaTypePrimitiveContent;
                    name?: string;
                    required: boolean;
                    type: string;
                },
            >;
            required?: string[];
            type: string;
        };
        onCreateRoute: (routeData: ParsedRoute) => undefined | false | ParsedRoute;
        onCreateRouteName?: (
            routeNameInfo: RouteNameInfo,
            rawRouteInfo: RawRouteInfo,
        ) => undefined | RouteNameInfo;
        onFormatRouteName?: (
            routeInfo: RawRouteInfo,
            templateRouteName: string,
        ) => undefined | string;
        onFormatTypeName?: (
            typeName: string,
            rawTypeName?: string,
            schemaType?: "enum-key" | "type-name",
        ) => undefined | string;
        onInit?: <
            C extends
                {
                    addReadonly: boolean;
                    anotherArrayType: boolean;
                    apiClassName: string;
                    authorizationToken?: string;
                    cleanOutput: boolean;
                    codeGenConstructs?: (
                        struct: CodeGenConstruct,
                    ) => Partial<CodeGenConstruct>;
                    compilerTsConfig: Record<string, unknown>;
                    componentsMap: Record<string, SchemaComponent>;
                    componentTypeNameResolver: ComponentTypeNameResolver;
                    constants: constants;
                    convertedFromSwagger2: boolean;
                    customTranslator?: new () => Translator;
                    debug: boolean;
                    defaultResponseAsSuccess: boolean;
                    defaultResponseType: string;
                    disableThrowOnError: boolean;
                    enumKeyPrefix: string;
                    enumKeyResolverName: string;
                    enumKeySuffix: string;
                    enumNamesAsValues: boolean;
                    extractEnums: boolean;
                    extractingOptions: Partial<ExtractingOptions>;
                    extractRequestBody: boolean;
                    extractRequestParams: boolean;
                    extractResponseBody: boolean;
                    extractResponseError: boolean;
                    extractResponses: boolean;
                    extraTemplates: { name: string; path: string }[];
                    fileName: string;
                    fileNames: {
                        dataContracts: string;
                        httpClient: string;
                        outOfModuleApi: string;
                        routeTypes: string;
                    };
                    fixInvalidEnumKeyPrefix: string;
                    fixInvalidTypeNamePrefix: string;
                    generateClient: boolean;
                    generateResponses: boolean;
                    generateRouteTypes: boolean;
                    generateUnionEnums: boolean;
                    hooks: Partial<Hooks>;
                    httpClientType: "fetch" | "axios";
                    input: string;
                    internalTemplateOptions: { addUtilRequiredKeysType: boolean };
                    modular: boolean;
                    moduleNameFirstTag: boolean;
                    moduleNameIndex: number;
                    originalSchema: object;
                    output: string | false;
                    patch: boolean;
                    primitiveTypeConstructs?: (
                        struct: PrimitiveTypeStruct,
                    ) => Partial<PrimitiveTypeStruct>;
                    primitiveTypes: PrimitiveTypeStruct;
                    requestOptions?: Partial<RequestInit>;
                    routeNameDuplicatesMap: Map<string, string>;
                    schemaParsers?: {
                        array?: MonoSchemaParser;
                        complex?: MonoSchemaParser;
                        complexAllOf?: MonoSchemaParser;
                        complexAnyOf?: MonoSchemaParser;
                        complexNot?: MonoSchemaParser;
                        complexOneOf?: MonoSchemaParser;
                        discriminator?: MonoSchemaParser;
                        enum?: MonoSchemaParser;
                        object?: MonoSchemaParser;
                        primitive?: MonoSchemaParser;
                    };
                    silent: boolean;
                    singleHttpClient: boolean;
                    sortRoutes: boolean;
                    sortTypes: boolean;
                    spec: unknown;
                    specificArgNameResolverName: string;
                    successResponseStatusRange: [number, number];
                    swaggerSchema: object;
                    templateExtensions: string[];
                    templateInfos: { fileName: string; name: string }[];
                    templatePaths: {
                        base: string;
                        custom: null | string;
                        default: string;
                        modular: string;
                        original: string;
                    };
                    templates: string;
                    templatesToRender: {
                        api: string;
                        dataContractJsDoc: string;
                        dataContracts: string;
                        enumDataContract: string;
                        httpClient: string;
                        interfaceDataContract: string;
                        objectFieldJsDoc: string;
                        routeName: string;
                        routeTypes: string;
                        typeDataContract: string;
                    };
                    toJS: boolean;
                    Ts: CodeGenConstruct;
                    typeNameResolverName: string;
                    typePrefix: string;
                    typeSuffix: string;
                    unwrapResponseData: boolean;
                    update: (update: Partial<GenerateApiConfiguration["config"]>) => void;
                    url: string;
                    version: string;
                },
        >(
            configuration: C,
            codeGenProcess: CodeGenProcess,
        ) => undefined | C;
        onInsertPathParam: (
            paramName: string,
            index: number,
            arr: BuildRouteParam[],
            resultRoute: string,
        ) => undefined | string;
        onParseSchema: (originalSchema: unknown, parsedSchema: unknown) => unknown;
        onPreBuildRoutePath: (routePath: string) => undefined | string;
        onPrepareConfig?: <C extends GenerateApiConfiguration>(
            currentConfiguration: C,
        ) => undefined | C;
        onPreParseSchema: (
            originalSchema: unknown,
            typeName: string,
            schemaType: string,
        ) => undefined;
    }
    Index

    Properties

    onBuildRoutePath: (data: BuildRoutePath) => undefined | BuildRoutePath

    calls after parse\process route path

    onCreateComponent: (component: SchemaComponent) => undefined | SchemaComponent

    calls after parse schema component

    onCreateRequestParams?: (
        rawType:
            | undefined
            | {
                $parsed: ParsedSchema<
                    | SchemaTypeObjectContent
                    | SchemaTypeEnumContent
                    | SchemaTypePrimitiveContent,
                >;
                discriminator?: { propertyName?: string };
                properties?: Record<
                    string,
                    {
                        $parsed?: SchemaTypePrimitiveContent;
                        name?: string;
                        required: boolean;
                        type: string;
                    },
                >;
                required?: string[];
                type: string;
            },
    ) => | undefined
    | {
        $parsed: ParsedSchema<
            | SchemaTypeObjectContent
            | SchemaTypeEnumContent
            | SchemaTypePrimitiveContent,
        >;
        discriminator?: { propertyName?: string };
        properties?: Record<
            string,
            {
                $parsed?: SchemaTypePrimitiveContent;
                name?: string;
                required: boolean;
                type: string;
            },
        >;
        required?: string[];
        type: string;
    }

    customize request params (path params, query params)

    onCreateRoute: (routeData: ParsedRoute) => undefined | false | ParsedRoute

    calls after parse route (return type: customized route (ParsedRoute), nothing change (void), false (ignore this route))

    onCreateRouteName?: (
        routeNameInfo: RouteNameInfo,
        rawRouteInfo: RawRouteInfo,
    ) => undefined | RouteNameInfo

    customize route name as you need

    onFormatRouteName?: (
        routeInfo: RawRouteInfo,
        templateRouteName: string,
    ) => undefined | string

    customize name of route (operationId), you can do it with using onCreateRouteName too

    onFormatTypeName?: (
        typeName: string,
        rawTypeName?: string,
        schemaType?: "enum-key" | "type-name",
    ) => undefined | string

    customize name of model type

    onInit?: <
        C extends
            {
                addReadonly: boolean;
                anotherArrayType: boolean;
                apiClassName: string;
                authorizationToken?: string;
                cleanOutput: boolean;
                codeGenConstructs?: (
                    struct: CodeGenConstruct,
                ) => Partial<CodeGenConstruct>;
                compilerTsConfig: Record<string, unknown>;
                componentsMap: Record<string, SchemaComponent>;
                componentTypeNameResolver: ComponentTypeNameResolver;
                constants: constants;
                convertedFromSwagger2: boolean;
                customTranslator?: new () => Translator;
                debug: boolean;
                defaultResponseAsSuccess: boolean;
                defaultResponseType: string;
                disableThrowOnError: boolean;
                enumKeyPrefix: string;
                enumKeyResolverName: string;
                enumKeySuffix: string;
                enumNamesAsValues: boolean;
                extractEnums: boolean;
                extractingOptions: Partial<ExtractingOptions>;
                extractRequestBody: boolean;
                extractRequestParams: boolean;
                extractResponseBody: boolean;
                extractResponseError: boolean;
                extractResponses: boolean;
                extraTemplates: { name: string; path: string }[];
                fileName: string;
                fileNames: {
                    dataContracts: string;
                    httpClient: string;
                    outOfModuleApi: string;
                    routeTypes: string;
                };
                fixInvalidEnumKeyPrefix: string;
                fixInvalidTypeNamePrefix: string;
                generateClient: boolean;
                generateResponses: boolean;
                generateRouteTypes: boolean;
                generateUnionEnums: boolean;
                hooks: Partial<Hooks>;
                httpClientType: "fetch" | "axios";
                input: string;
                internalTemplateOptions: { addUtilRequiredKeysType: boolean };
                modular: boolean;
                moduleNameFirstTag: boolean;
                moduleNameIndex: number;
                originalSchema: object;
                output: string | false;
                patch: boolean;
                primitiveTypeConstructs?: (
                    struct: PrimitiveTypeStruct,
                ) => Partial<PrimitiveTypeStruct>;
                primitiveTypes: PrimitiveTypeStruct;
                requestOptions?: Partial<RequestInit>;
                routeNameDuplicatesMap: Map<string, string>;
                schemaParsers?: {
                    array?: MonoSchemaParser;
                    complex?: MonoSchemaParser;
                    complexAllOf?: MonoSchemaParser;
                    complexAnyOf?: MonoSchemaParser;
                    complexNot?: MonoSchemaParser;
                    complexOneOf?: MonoSchemaParser;
                    discriminator?: MonoSchemaParser;
                    enum?: MonoSchemaParser;
                    object?: MonoSchemaParser;
                    primitive?: MonoSchemaParser;
                };
                silent: boolean;
                singleHttpClient: boolean;
                sortRoutes: boolean;
                sortTypes: boolean;
                spec: unknown;
                specificArgNameResolverName: string;
                successResponseStatusRange: [number, number];
                swaggerSchema: object;
                templateExtensions: string[];
                templateInfos: { fileName: string; name: string }[];
                templatePaths: {
                    base: string;
                    custom: null | string;
                    default: string;
                    modular: string;
                    original: string;
                };
                templates: string;
                templatesToRender: {
                    api: string;
                    dataContractJsDoc: string;
                    dataContracts: string;
                    enumDataContract: string;
                    httpClient: string;
                    interfaceDataContract: string;
                    objectFieldJsDoc: string;
                    routeName: string;
                    routeTypes: string;
                    typeDataContract: string;
                };
                toJS: boolean;
                Ts: CodeGenConstruct;
                typeNameResolverName: string;
                typePrefix: string;
                typeSuffix: string;
                unwrapResponseData: boolean;
                update: (update: Partial<GenerateApiConfiguration["config"]>) => void;
                url: string;
                version: string;
            },
    >(
        configuration: C,
        codeGenProcess: CodeGenProcess,
    ) => undefined | C

    Start point of work this tool (after fetching schema)

    onInsertPathParam: (
        paramName: string,
        index: number,
        arr: BuildRouteParam[],
        resultRoute: string,
    ) => undefined | string

    calls before insert path param name into string path interpolation

    onParseSchema: (originalSchema: unknown, parsedSchema: unknown) => unknown

    calls after parse any kind of schema

    onPreBuildRoutePath: (routePath: string) => undefined | string

    calls before parse\process route path

    onPrepareConfig?: <C extends GenerateApiConfiguration>(
        currentConfiguration: C,
    ) => undefined | C

    customize configuration object before sending it to ETA templates

    onPreParseSchema: (
        originalSchema: unknown,
        typeName: string,
        schemaType: string,
    ) => undefined

    calls before parse any kind of schema