The entry was a bare workspace-relative path ("libs/shared/src/
infrastructure/api-client.ts" in the app projects, "src/infrastructure/
api-client.ts" in the libraries) while every sibling in the same list is a
glob. It matched nothing, so the 2372-line NSwag client was instrumented in
all four projects: 987 mostly-uncovered lines that dragged the reported
libs/shared/infrastructure figure from 94.7% down to 6.9%.
Normalizes all four to "**/infrastructure/api-client.ts" and adds the entry
to the beheer project, which was missing it entirely. api-client.provider.ts
is hand-written and stays covered.
Effect on the shared project's reported coverage: lines 96.2% -> 90.5% and
branches 85.1% -> 80.2%, because the denominator is now real source instead
of generated code inflating it.
Found by the metrics baseline (BL-008).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
347 lines
10 KiB
JSON
347 lines
10 KiB
JSON
{
|
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
|
"version": 1,
|
|
"cli": {
|
|
"packageManager": "npm",
|
|
"analytics": false
|
|
},
|
|
"newProjectRoot": "projects",
|
|
"projects": {
|
|
"ssp": {
|
|
"projectType": "application",
|
|
"schematics": {
|
|
"@schematics/angular:component": {
|
|
"style": "scss"
|
|
}
|
|
},
|
|
"root": "apps/ssp",
|
|
"sourceRoot": "apps/ssp/src",
|
|
"prefix": "app",
|
|
"i18n": {
|
|
"sourceLocale": { "code": "nl", "subPath": "" },
|
|
"locales": {
|
|
"en": {
|
|
"translation": "apps/ssp/src/locale/messages.en.xlf"
|
|
}
|
|
}
|
|
},
|
|
"architect": {
|
|
"build": {
|
|
"builder": "@angular/build:application",
|
|
"options": {
|
|
"browser": "apps/ssp/src/main.ts",
|
|
"tsConfig": "apps/ssp/tsconfig.app.json",
|
|
"inlineStyleLanguage": "scss",
|
|
"assets": [
|
|
{
|
|
"glob": "**/*",
|
|
"input": "public"
|
|
}
|
|
],
|
|
"styles": ["libs/shared/styles.scss"],
|
|
"polyfills": ["@angular/localize/init"],
|
|
"i18nMissingTranslation": "error"
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"budgets": [
|
|
{
|
|
"type": "initial",
|
|
"maximumWarning": "1.5MB",
|
|
"maximumError": "2MB"
|
|
},
|
|
{
|
|
"type": "anyComponentStyle",
|
|
"maximumWarning": "4kB",
|
|
"maximumError": "8kB"
|
|
}
|
|
],
|
|
"outputHashing": "all",
|
|
"fileReplacements": [
|
|
{
|
|
"replace": "libs/shared/src/environments/environment.ts",
|
|
"with": "libs/shared/src/environments/environment.prod.ts"
|
|
}
|
|
]
|
|
},
|
|
"development": {
|
|
"optimization": false,
|
|
"extractLicenses": false,
|
|
"sourceMap": true
|
|
},
|
|
"en": {
|
|
"localize": ["en"]
|
|
}
|
|
},
|
|
"defaultConfiguration": "production"
|
|
},
|
|
"serve": {
|
|
"builder": "@angular/build:dev-server",
|
|
"options": {
|
|
"proxyConfig": "apps/ssp/proxy.conf.json"
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"buildTarget": "ssp:build:production"
|
|
},
|
|
"development": {
|
|
"buildTarget": "ssp:build:development"
|
|
},
|
|
"en": {
|
|
"buildTarget": "ssp:build:development,en"
|
|
}
|
|
},
|
|
"defaultConfiguration": "development"
|
|
},
|
|
"test": {
|
|
"builder": "@angular/build:unit-test",
|
|
"options": {
|
|
"tsConfig": "apps/ssp/tsconfig.spec.json"
|
|
},
|
|
"configurations": {
|
|
"coverage": {
|
|
"coverage": true,
|
|
"coverageReporters": ["text-summary", "html", "lcov"],
|
|
"coverageExclude": [
|
|
"**/*.spec.ts",
|
|
"**/*.stories.ts",
|
|
"**/contracts/**",
|
|
"**/infrastructure/api-client.ts",
|
|
"apps/ssp/src/main.ts",
|
|
"**/*.testing.ts",
|
|
"**/*.d.ts"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"storybook": {
|
|
"builder": "@storybook/angular:start-storybook",
|
|
"options": {
|
|
"configDir": ".storybook-ssp",
|
|
"browserTarget": "ssp:build",
|
|
"compodoc": false,
|
|
"port": 6006
|
|
}
|
|
},
|
|
"build-storybook": {
|
|
"builder": "@storybook/angular:build-storybook",
|
|
"options": {
|
|
"configDir": ".storybook-ssp",
|
|
"browserTarget": "ssp:build",
|
|
"compodoc": true,
|
|
"compodocArgs": ["-e", "json", "-d", ".storybook-ssp"],
|
|
"outputDir": "storybook-static"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"behandelportal": {
|
|
"projectType": "application",
|
|
"schematics": {
|
|
"@schematics/angular:component": {
|
|
"style": "scss"
|
|
}
|
|
},
|
|
"root": "apps/behandelportal",
|
|
"sourceRoot": "apps/behandelportal/src",
|
|
"prefix": "app",
|
|
"i18n": {
|
|
"sourceLocale": { "code": "nl", "subPath": "" },
|
|
"locales": {
|
|
"en": {
|
|
"translation": "apps/behandelportal/src/locale/messages.en.xlf"
|
|
}
|
|
}
|
|
},
|
|
"architect": {
|
|
"build": {
|
|
"builder": "@angular/build:application",
|
|
"options": {
|
|
"browser": "apps/behandelportal/src/main.ts",
|
|
"tsConfig": "apps/behandelportal/tsconfig.app.json",
|
|
"inlineStyleLanguage": "scss",
|
|
"assets": [
|
|
{
|
|
"glob": "**/*",
|
|
"input": "public"
|
|
}
|
|
],
|
|
"styles": ["libs/shared/styles.scss"],
|
|
"polyfills": ["@angular/localize/init"],
|
|
"i18nMissingTranslation": "error"
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"budgets": [
|
|
{
|
|
"type": "initial",
|
|
"maximumWarning": "1.5MB",
|
|
"maximumError": "2MB"
|
|
},
|
|
{
|
|
"type": "anyComponentStyle",
|
|
"maximumWarning": "4kB",
|
|
"maximumError": "8kB"
|
|
}
|
|
],
|
|
"outputHashing": "all",
|
|
"fileReplacements": [
|
|
{
|
|
"replace": "libs/shared/src/environments/environment.ts",
|
|
"with": "libs/shared/src/environments/environment.prod.ts"
|
|
}
|
|
]
|
|
},
|
|
"development": {
|
|
"optimization": false,
|
|
"extractLicenses": false,
|
|
"sourceMap": true
|
|
},
|
|
"en": {
|
|
"localize": ["en"]
|
|
}
|
|
},
|
|
"defaultConfiguration": "production"
|
|
},
|
|
"serve": {
|
|
"builder": "@angular/build:dev-server",
|
|
"options": {
|
|
"port": 4201,
|
|
"proxyConfig": "apps/behandelportal/proxy.conf.json"
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"buildTarget": "behandelportal:build:production"
|
|
},
|
|
"development": {
|
|
"buildTarget": "behandelportal:build:development"
|
|
},
|
|
"en": {
|
|
"buildTarget": "behandelportal:build:development,en"
|
|
}
|
|
},
|
|
"defaultConfiguration": "development"
|
|
},
|
|
"test": {
|
|
"builder": "@angular/build:unit-test",
|
|
"options": {
|
|
"tsConfig": "apps/behandelportal/tsconfig.spec.json"
|
|
},
|
|
"configurations": {
|
|
"coverage": {
|
|
"coverage": true,
|
|
"coverageReporters": ["text-summary", "html", "lcov"],
|
|
"coverageExclude": [
|
|
"**/*.spec.ts",
|
|
"**/*.stories.ts",
|
|
"**/contracts/**",
|
|
"**/infrastructure/api-client.ts",
|
|
"apps/behandelportal/src/main.ts",
|
|
"**/*.testing.ts",
|
|
"**/*.d.ts"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"storybook": {
|
|
"builder": "@storybook/angular:start-storybook",
|
|
"options": {
|
|
"configDir": ".storybook-behandelportal",
|
|
"browserTarget": "behandelportal:build",
|
|
"compodoc": false,
|
|
"port": 6007
|
|
}
|
|
},
|
|
"build-storybook": {
|
|
"builder": "@storybook/angular:build-storybook",
|
|
"options": {
|
|
"configDir": ".storybook-behandelportal",
|
|
"browserTarget": "behandelportal:build",
|
|
"compodoc": true,
|
|
"compodocArgs": ["-e", "json", "-d", ".storybook-behandelportal"],
|
|
"outputDir": "storybook-static-behandelportal"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"shared": {
|
|
"projectType": "library",
|
|
"root": "libs/shared",
|
|
"sourceRoot": "libs/shared/src",
|
|
"architect": {
|
|
"build": {
|
|
"builder": "@angular/build:application",
|
|
"options": {
|
|
"browser": "libs/shared/src/test-entry.ts",
|
|
"tsConfig": "libs/shared/tsconfig.app.json"
|
|
},
|
|
"configurations": {
|
|
"development": {}
|
|
},
|
|
"defaultConfiguration": "development"
|
|
},
|
|
"test": {
|
|
"builder": "@angular/build:unit-test",
|
|
"options": {
|
|
"tsConfig": "libs/shared/tsconfig.spec.json"
|
|
},
|
|
"configurations": {
|
|
"coverage": {
|
|
"coverage": true,
|
|
"coverageReporters": ["text-summary", "html", "lcov"],
|
|
"coverageExclude": [
|
|
"**/*.spec.ts",
|
|
"**/*.stories.ts",
|
|
"**/contracts/**",
|
|
"**/infrastructure/api-client.ts",
|
|
"src/test-entry.ts",
|
|
"**/*.testing.ts",
|
|
"**/*.d.ts"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"beheer": {
|
|
"projectType": "library",
|
|
"root": "libs/beheer",
|
|
"sourceRoot": "libs/beheer/src",
|
|
"architect": {
|
|
"build": {
|
|
"builder": "@angular/build:application",
|
|
"options": {
|
|
"browser": "libs/beheer/src/test-entry.ts",
|
|
"tsConfig": "libs/beheer/tsconfig.app.json"
|
|
},
|
|
"configurations": {
|
|
"development": {}
|
|
},
|
|
"defaultConfiguration": "development"
|
|
},
|
|
"test": {
|
|
"builder": "@angular/build:unit-test",
|
|
"options": {
|
|
"tsConfig": "libs/beheer/tsconfig.spec.json"
|
|
},
|
|
"configurations": {
|
|
"coverage": {
|
|
"coverage": true,
|
|
"coverageReporters": ["text-summary", "html", "lcov"],
|
|
"coverageExclude": [
|
|
"**/*.spec.ts",
|
|
"**/*.stories.ts",
|
|
"**/contracts/**",
|
|
"**/infrastructure/api-client.ts",
|
|
"src/test-entry.ts",
|
|
"**/*.testing.ts",
|
|
"**/*.d.ts"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|