typescript-rest-swagger icon indicating copy to clipboard operation
typescript-rest-swagger copied to clipboard

swaggerGen not support baseUrl and paths at tsconfig.json

Open vellengs opened this issue 7 years ago • 2 comments

{
    "compileOnSave": true,
    "compilerOptions": {
        "declaration": true,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "module": "commonjs",
        "newLine": "LF",
        "noFallthroughCasesInSwitch": true,
        "noImplicitAny": true,
        "noImplicitReturns": true,
        "noImplicitThis": false,
        "noUnusedParameters": false,
        "noUnusedLocals": true,
        "outDir": "dist",
        "skipLibCheck": true,
        "sourceMap": true,
        "strictNullChecks": false,
        "target": "es2016",
        "baseUrl": "src/",
        "paths": {
            "@config": ["config/"],
            "@config/*": ["config/*"],
            "@database": ["database/"],
            "@database/*": ["database/*"],
            "@core": ["core/"],
            "@core/*": ["core/*"],
            "@models": ["models/"],
            "@models/*": ["models/*"],
            "@schemas": ["schemas/"],
            "@schemas/*": ["schemas/*"]
        }
    },
    "include": [
        "src/**/*.ts"
    ],
    "exclude": [
        "node_modules",
        "dist"
    ]
}

There was a problem resolving type of 'UISchema'. /Users/xieyunqi/projects/node-server/node_modules/typescript-rest-swagger/dist/metadata/resolveType.js:218 throw err; ^

Error: No matching model found for referenced type UISchema
    at getModelTypeDeclaration (/xxxxx/projects/node-server/node_modules/typescript-rest-swagger/dist/metadata/resolveType.js:335:15)
    at getReferenceType (/xxxxx/projects/node-server/node_modules/typescript-rest-swagger/dist/metadata/resolveType.js:200:36)
    at resolveType (/xxxxx/projects/node-server/node_modules/typescript-rest-swagger/dist/metadata/resolveType.js:82:25)
    at Object.resolveType (/xxxxx/projects/node-server/node_modules/typescript-rest-swagger/dist/metadata/resolveType.js:51:16)
    at MethodGenerator.generate (/xxxxx/projects/node-server/node_modules/typescript-rest-swagger/dist/metadata/methodGenerator.js:28:34)
    at /xxxxx/projects/node-server/node_modules/typescript-rest-swagger/dist/metadata/controllerGenerator.js:61:58
    at Array.map (<anonymous>)
    at ControllerGenerator.buildMethodsForClass (/xxxxx/projects/node-server/node_modules/typescript-rest-swagger/dist/metadata/controllerGenerator.js:61:14)
    at ControllerGenerator.buildMethods (/xxxxx/projects/node-server/node_modules/typescript-rest-swagger/dist/metadata/controllerGenerator.js:44:43)
    at ControllerGenerator.generate (/xxxxx/projects/node-server/node_modules/typescript-rest-swagger/dist/metadata/controllerGenerator.js:29:27)

Maybe better read current project tsconfig.json here

    constructor(entryFile: string) {
        this.program = ts.createProgram([entryFile], {});   // replace {} with tsconfig
        this.typeChecker = this.program.getTypeChecker();
        MetadataGenerator.current = this;
    }

vellengs avatar Nov 10 '17 03:11 vellengs

Same issue here. Workaround is to include missing model in controller file without using '@' in path - just with normal "dot hell" path.

alekbarszczewski avatar Feb 22 '19 14:02 alekbarszczewski

to swagger work with alias path, you should use -p ./tsconfig.json

guijacobsen avatar Mar 04 '24 18:03 guijacobsen