pzavolinsky / ts-unused-exports

ts-unused-exports finds unused exported symbols in your Typescript project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unknown compiler option ignoreDeprecations - Cannot parse tsconfig.json

fev4 opened this issue · comments

Hey there!

Just recently found this library and wanted to give it a go.

I'm receiving a very long error after running:

ts-unused-exports tsconfig.json

Here's the error:

Click me
[{"file":{"pos":0,"end":799,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":308,"statements":[{"pos":0,"end":799,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":241,"expression":{"pos":0,"end":799,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":207,"properties":[{"pos":1,"end":419,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":1,"end":20,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"compilerOptions","hasExtendedUnicodeEscape":false},"initializer":{"pos":21,"end":419,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":207,"properties":[{"pos":23,"end":115,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":23,"end":33,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"paths","hasExtendedUnicodeEscape":false},"initializer":{"pos":34,"end":115,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":207,"properties":[{"pos":36,"end":71,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":36,"end":46,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"$lib","hasExtendedUnicodeEscape":false},"initializer":{"pos":47,"end":71,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":206,"elements":[{"pos":49,"end":66,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../src/lib","hasExtendedUnicodeEscape":false}],"multiLine":true}},{"pos":72,"end":111,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":72,"end":84,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"$lib/*","hasExtendedUnicodeEscape":false},"initializer":{"pos":85,"end":111,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":206,"elements":[{"pos":87,"end":106,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../src/lib/*","hasExtendedUnicodeEscape":false}],"multiLine":true}}],"multiLine":true}},{"pos":116,"end":158,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":116,"end":129,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"rootDirs","hasExtendedUnicodeEscape":false},"initializer":{"pos":130,"end":158,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":206,"elements":[{"pos":132,"end":140,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"..","hasExtendedUnicodeEscape":false},{"pos":141,"end":154,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"./types","hasExtendedUnicodeEscape":false}],"multiLine":true}},{"pos":159,"end":195,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":159,"end":186,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"importsNotUsedAsValues","hasExtendedUnicodeEscape":false},"initializer":{"pos":187,"end":195,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"error","hasExtendedUnicodeEscape":false}},{"pos":196,"end":222,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":196,"end":216,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"isolatedModules","hasExtendedUnicodeEscape":false},"initializer":{"pos":217,"end":222,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":110}},{"pos":223,"end":254,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":223,"end":248,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"preserveValueImports","hasExtendedUnicodeEscape":false},"initializer":{"pos":249,"end":254,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":110}},{"pos":255,"end":311,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":255,"end":263,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"lib","hasExtendedUnicodeEscape":false},"initializer":{"pos":264,"end":311,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":206,"elements":[{"pos":266,"end":278,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"esnext","hasExtendedUnicodeEscape":false},{"pos":279,"end":288,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"DOM","hasExtendedUnicodeEscape":false},{"pos":289,"end":307,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"DOM.Iterable","hasExtendedUnicodeEscape":false}],"multiLine":true}},{"pos":312,"end":341,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":312,"end":333,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"moduleResolution","hasExtendedUnicodeEscape":false},"initializer":{"pos":334,"end":341,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"node","hasExtendedUnicodeEscape":false}},{"pos":342,"end":363,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":342,"end":353,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"module","hasExtendedUnicodeEscape":false},"initializer":{"pos":354,"end":363,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"esnext","hasExtendedUnicodeEscape":false}},{"pos":364,"end":385,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":364,"end":375,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"target","hasExtendedUnicodeEscape":false},"initializer":{"pos":376,"end":385,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"esnext","hasExtendedUnicodeEscape":false}},{"pos":386,"end":416,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":386,"end":409,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"ignoreDeprecations","hasExtendedUnicodeEscape":false},"initializer":{"pos":410,"end":416,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"5.0","hasExtendedUnicodeEscape":false}}],"multiLine":true}},{"pos":420,"end":639,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":420,"end":431,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"include","hasExtendedUnicodeEscape":false},"initializer":{"pos":432,"end":639,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":206,"elements":[{"pos":434,"end":451,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"ambient.d.ts","hasExtendedUnicodeEscape":false},{"pos":452,"end":479,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"./types/**/$types.d.ts","hasExtendedUnicodeEscape":false},{"pos":480,"end":502,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../vite.config.ts","hasExtendedUnicodeEscape":false},{"pos":503,"end":522,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../src/**/*.js","hasExtendedUnicodeEscape":false},{"pos":523,"end":542,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../src/**/*.ts","hasExtendedUnicodeEscape":false},{"pos":543,"end":566,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../src/**/*.svelte","hasExtendedUnicodeEscape":false},{"pos":567,"end":588,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../tests/**/*.js","hasExtendedUnicodeEscape":false},{"pos":589,"end":610,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../tests/**/*.ts","hasExtendedUnicodeEscape":false},{"pos":611,"end":636,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../tests/**/*.svelte","hasExtendedUnicodeEscape":false}],"multiLine":true}},{"pos":640,"end":797,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":299,"name":{"pos":640,"end":651,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"exclude","hasExtendedUnicodeEscape":false},"initializer":{"pos":652,"end":797,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":206,"elements":[{"pos":654,"end":677,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../node_modules/**","hasExtendedUnicodeEscape":false},{"pos":678,"end":702,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"./[!ambient.d.ts]**","hasExtendedUnicodeEscape":false},{"pos":703,"end":732,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../src/service-worker.js","hasExtendedUnicodeEscape":false},{"pos":733,"end":762,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../src/service-worker.ts","hasExtendedUnicodeEscape":false},{"pos":763,"end":794,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":10,"text":"../src/service-worker.d.ts","hasExtendedUnicodeEscape":false}],"multiLine":true}}],"multiLine":true}}],"endOfFileToken":{"pos":799,"end":799,"flags":67371008,"modifierFlagsCache":0,"transformFlags":0,"kind":1},"fileName":"/home/feva/projects/zentu/dev/.svelte-kit/tsconfig.json","text":"{\n\t\"compilerOptions\": {\n\t\t\"paths\": {\n\t\t\t\"$lib\": [\n\t\t\t\t\"../src/lib\"\n\t\t\t],\n\t\t\t\"$lib/*\": [\n\t\t\t\t\"../src/lib/*\"\n\t\t\t]\n\t\t},\n\t\t\"rootDirs\": [\n\t\t\t\"..\",\n\t\t\t\"./types\"\n\t\t],\n\t\t\"importsNotUsedAsValues\": \"error\",\n\t\t\"isolatedModules\": true,\n\t\t\"preserveValueImports\": true,\n\t\t\"lib\": [\n\t\t\t\"esnext\",\n\t\t\t\"DOM\",\n\t\t\t\"DOM.Iterable\"\n\t\t],\n\t\t\"moduleResolution\": \"node\",\n\t\t\"module\": \"esnext\",\n\t\t\"target\": \"esnext\",\n\t\t\"ignoreDeprecations\": \"5.0\"\n\t},\n\t\"include\": [\n\t\t\"ambient.d.ts\",\n\t\t\"./types/**/$types.d.ts\",\n\t\t\"../vite.config.ts\",\n\t\t\"../src/**/*.js\",\n\t\t\"../src/**/*.ts\",\n\t\t\"../src/**/*.svelte\",\n\t\t\"../tests/**/*.js\",\n\t\t\"../tests/**/*.ts\",\n\t\t\"../tests/**/*.svelte\"\n\t],\n\t\"exclude\": [\n\t\t\"../node_modules/**\",\n\t\t\"./[!ambient.d.ts]**\",\n\t\t\"../src/service-worker.js\",\n\t\t\"../src/service-worker.ts\",\n\t\t\"../src/service-worker.d.ts\"\n\t]\n}","languageVersion":2,"languageVariant":1,"scriptKind":6,"isDeclarationFile":false,"hasNoDefaultLib":false,"bindDiagnostics":[],"nodeCount":70,"identifierCount":0,"identifiers":{},"parseDiagnostics":[]},"start":389,"length":20,"messageText":"Unknown compiler option 'ignoreDeprecations'.","category":1,"code":5023}

It's not recognizing the option ignoreDeprecations.

My current set up is:

  • SvelteKit: 1.19.0
  • Typescript: 5.0.4

My tsconfig file looks like this:

Click me
{
  "extends": "./.svelte-kit/tsconfig.json",
  "compilerOptions": {
    "allowJs": true,
    "checkJs": true,
    "esModuleInterop": true,
    "strictNullChecks": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "sourceMap": true,
    "plugins": [
      {
        "name": "typescript-svelte-plugin"
      }
    ]
  }
}

Notice the extends, this points to a default TSConfig file by SvelteKit (this is where the ignoreDeprecations is present):

Click me
{
	"compilerOptions": {
		"paths": {
			"$lib": [
				"../src/lib"
			],
			"$lib/*": [
				"../src/lib/*"
			]
		},
		"rootDirs": [
			"..",
			"./types"
		],
		"importsNotUsedAsValues": "error",
		"isolatedModules": true,
		"preserveValueImports": true,
		"lib": [
			"esnext",
			"DOM",
			"DOM.Iterable"
		],
		"moduleResolution": "node",
		"module": "esnext",
		"target": "esnext",
		"ignoreDeprecations": "5.0"
	},
	"include": [
		"ambient.d.ts",
		"./types/**/$types.d.ts",
		"../vite.config.ts",
		"../src/**/*.js",
		"../src/**/*.ts",
		"../src/**/*.svelte",
		"../tests/**/*.js",
		"../tests/**/*.ts",
		"../tests/**/*.svelte"
	],
	"exclude": [
		"../node_modules/**",
		"./[!ambient.d.ts]**",
		"../src/service-worker.js",
		"../src/service-worker.ts",
		"../src/service-worker.d.ts"
	]
}

Not sure how to proceed at this point. Tried looking for a similar issue but doesn't look like there's one like that.

This looks like a TypeScript 5 only setting.

Currently, ts-unused-exports is on TypeScript 4.

Need to check, can we support TS5 whilst still supporting 4 (at least, for now ...)