I have upgraded my NestJS/Typescript project to couchbase JS SDK 3.0.6, which I know has changed the way types are declared (https://issues.couchbase.com/browse/JSCBC-686).
Since then the ts compilation fails, complaining about unknown types:
node_modules/couchbase/types.d.ts:8:19 - error TS2304: Cannot find name 'integer'.
8 timeout?: integer;
~~~~~~~
node_modules/couchbase/types.d.ts:12:19 - error TS2304: Cannot find name 'integer'.
12 timeout?: integer;
~~~~~~~
node_modules/couchbase/types.d.ts:18:19 - error TS2304: Cannot find name 'integer'.
18 timeout?: integer;
~~~~~~~
I’ve tried quite a few things to tweak in particular my tsconfig.json
, as advised on e.g. https://stackoverflow.com/questions/50088838/react-typescript-application-gets-ts2304-cannot-find-name-text and https://stackoverflow.com/questions/33332394/angular-and-typescript-cant-find-names-error-cannot-find-name/33359873#33359873
Here’s my package.json
:
{
"name": "msgateway",
"version": "2.0.1",
"description": "MSG ",
"author": "Jeremiah Chienda<jeremiah.chienda@oneacrefund.org>",
"license": "MIT",
"scripts": {
"prebuild": "rimraf dist",
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "nest start",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"start:roster-dataset": "node dist/roster-dataset.main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"sync-gateway:config": "node src/sync-gateway/config.js",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:ci": "jest --coverage --ci --reporters=default --reporters=jest-junit --forceExit",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"dependencies": {
"@godaddy/terminus": "~4.4.1",
"@nestjs/bull": "~0.1.2",
"@nestjs/common": "~6.11.11",
"@nestjs/config": "~0.5.0",
"@nestjs/core": "~6.11.11",
"@nestjs/microservices": "~6.11.11",
"@nestjs/platform-express": "~6.11.11",
"@nestjs/schedule": "~0.4.0",
"@nestjs/swagger": "~4.5.12",
"@nestjs/terminus": "~6.5.6",
"@types/couchbase": "^2.4.2",
"axios": "~0.19.2",
"bull": "~3.16.0",
"couchbase": "3.0.6",
"deep-equal": "~2.0.3",
"dotenv": "~8.2.0",
"lodash": "~4.17.19",
"moment": "~2.27.0",
"nano-equal": "~2.0.2",
"nest-schedule": "~0.6.4",
"nestjs-pino": "~1.2.0",
"pino": "~6.4.1",
"pretty-error": "~2.1.1",
"reflect-metadata": "~0.1.13",
"rimraf": "~3.0.2",
"rxjs": "~6.6.0",
"seedrandom": "~3.0.5",
"swagger-ui-express": "~4.1.4",
"tough-cookie": "~4.0.0",
"util": "~0.12.3",
"uuid": "~3.4.0"
},
"devDependencies": {
"@compodoc/compodoc": "~1.1.11",
"@nestjs/cli": "~6.14.2",
"@nestjs/schematics": "~6.9.4",
"@nestjs/testing": "~6.11.11",
"@types/bull": "~3.14.0",
"@types/cron": "~1.7.2",
"@types/express": "~4.17.7",
"@types/jest": "26.0.7",
"@types/lodash": "~4.14.158",
"@types/node": "~14.0.26",
"@types/seedrandom": "~2.4.28",
"@types/supertest": "~2.0.10",
"@types/tough-cookie": "~4.0.0",
"@types/uuid": "~3.4.9",
"@typescript-eslint/eslint-plugin": "~3.7.0",
"@typescript-eslint/parser": "~3.7.0",
"core-js": "^3.6.5",
"eslint": "~7.5.0",
"eslint-config-prettier": "~6.11.0",
"eslint-plugin-import": "~2.22.0",
"jest": "~26.1.0",
"jest-junit": "~11.0.1",
"prettier": "~2.0.5",
"supertest": "~4.0.2",
"ts-jest": "~26.1.3",
"ts-loader": "~8.0.1",
"ts-node": "~8.10.2",
"tsconfig-paths": "~3.9.0",
"typescript": "~3.9.7"
},
"optionalDependencies": {
"fsevents": "*"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"coverageDirectory": "../coverage",
"coverageReporters": [
"text",
"cobertura",
"lcov",
"json"
],
"testEnvironment": "node"
}
}
And my tsconfig.json
:
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2017",
"lib": ["es5", "dom", "es6", "dom.iterable", "scripthost"],
"typeRoots": [
"../node_modules/@types"
],
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true
},
"exclude": ["node_modules", "dist"]
}
Any suggestions?