@futdevpro/dynamo-eslint 1.15.22 → 1.15.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.c8rc.json +26 -26
- package/.cursor/rules/__assistant_guide.mdc +30 -30
- package/.cursor/rules/__main.mdc +64 -64
- package/.cursor/rules/_ag_backend-structure.mdc +85 -85
- package/.cursor/rules/_ag_backend.mdc +16 -16
- package/.cursor/rules/_ag_debug.mdc +7 -7
- package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -372
- package/.cursor/rules/_ag_file-refactoring.mdc +113 -113
- package/.cursor/rules/_ag_fixes_rules.mdc +5 -5
- package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
- package/.cursor/rules/_ag_frontend.mdc +39 -39
- package/.cursor/rules/_ag_import-rules.mdc +44 -44
- package/.cursor/rules/_ag_naming.mdc +115 -115
- package/.cursor/rules/_ag_running_commands.mdc +4 -4
- package/.cursor/rules/_ag_server-controller.mdc +5 -5
- package/.cursor/rules/_ag_should-be.mdc +6 -6
- package/.cursor/rules/_ag_swearing.mdc +47 -47
- package/.cursor/rules/ai_development_guide.md +60 -60
- package/.cursor/rules/ai_directives.md +114 -114
- package/.cursor/rules/cursor-rules.md +160 -160
- package/.cursor/rules/default-command.mdc +464 -464
- package/.cursor/rules/error_code_pattern.md +39 -39
- package/.cursor/rules/saved rule mcp server use.md +15 -15
- package/.dynamo/pipeline.cicd.config.json +184 -184
- package/.dynamo/version-bump.config.json +5 -5
- package/.eslintrc.json +4 -4
- package/.github/workflows/main.yml +436 -436
- package/.husky/pre-commit +2 -2
- package/.vscode/settings.json +11 -11
- package/README.md +319 -319
- package/__documentations/2026-04-18-ccap-review-integration.md +173 -173
- package/__documentations/2026-08-18-bfr-ctm-005-eslint9-validator-report.md +45 -0
- package/build/configs/base.d.ts +9 -9
- package/build/configs/base.js +150 -150
- package/build/configs/fsm.d.ts +1 -1
- package/build/configs/fsm.js +7 -7
- package/build/configs/ngx-package.d.ts +1 -1
- package/build/configs/ngx-package.js +7 -7
- package/build/configs/ngx.d.ts +4 -4
- package/build/configs/ngx.js +91 -91
- package/build/configs/nts-package.d.ts +1 -1
- package/build/configs/nts-package.js +17 -17
- package/build/configs/nts.d.ts +1 -1
- package/build/configs/nts.js +31 -31
- package/build/index.d.ts +1 -1
- package/build/index.js +2 -2
- package/build/plugin/index.d.ts +52 -52
- package/build/plugin/index.js +80 -80
- package/build/plugin/rules/angular/angular-for-track-logic.d.ts +7 -7
- package/build/plugin/rules/angular/angular-for-track-logic.js +81 -81
- package/build/plugin/rules/angular/effect-signal-loop.d.ts +9 -9
- package/build/plugin/rules/angular/effect-signal-loop.js +112 -112
- package/build/plugin/rules/angular/no-async-ngoninit.d.ts +8 -8
- package/build/plugin/rules/angular/no-async-ngoninit.js +42 -42
- package/build/plugin/rules/angular/no-component-direct-api.d.ts +9 -9
- package/build/plugin/rules/angular/no-component-direct-api.js +75 -75
- package/build/plugin/rules/angular/no-method-call-in-template.d.ts +8 -8
- package/build/plugin/rules/angular/no-method-call-in-template.js +79 -79
- package/build/plugin/rules/angular/no-ngfor-directive.d.ts +7 -7
- package/build/plugin/rules/angular/no-ngfor-directive.js +59 -59
- package/build/plugin/rules/angular/no-ngif-directive.d.ts +7 -7
- package/build/plugin/rules/angular/no-ngif-directive.js +59 -59
- package/build/plugin/rules/explicit-types.d.ts +3 -3
- package/build/plugin/rules/explicit-types.js +178 -178
- package/build/plugin/rules/import/import-order.d.ts +3 -3
- package/build/plugin/rules/import/import-order.js +154 -154
- package/build/plugin/rules/import/no-import-type.d.ts +3 -3
- package/build/plugin/rules/import/no-import-type.js +45 -45
- package/build/plugin/rules/import/no-js-import.d.ts +3 -3
- package/build/plugin/rules/import/no-js-import.js +40 -40
- package/build/plugin/rules/naming-patterns.d.ts +7 -7
- package/build/plugin/rules/naming-patterns.d.ts.map +1 -1
- package/build/plugin/rules/naming-patterns.js +366 -350
- package/build/plugin/rules/naming-patterns.js.map +1 -1
- package/build/plugin/rules/no-getter-logic.d.ts +3 -3
- package/build/plugin/rules/no-getter-logic.js +194 -194
- package/build/plugin/rules/prefer-enum-over-string-union.d.ts +3 -3
- package/build/plugin/rules/prefer-enum-over-string-union.js +289 -289
- package/build/plugin/rules/prefer-interface-over-duplicate-types.d.ts +3 -3
- package/build/plugin/rules/prefer-interface-over-duplicate-types.js +264 -264
- package/build/plugin/rules/require-jsdoc-description.d.ts +3 -3
- package/build/plugin/rules/require-jsdoc-description.js +496 -496
- package/build/plugin/rules/require-test-description-prefix.d.ts +3 -3
- package/build/plugin/rules/require-test-description-prefix.js +135 -135
- package/build/plugin/rules/ts/data-model-extends.d.ts +8 -8
- package/build/plugin/rules/ts/data-model-extends.js +94 -94
- package/build/plugin/rules/ts/no-any-type.d.ts +8 -8
- package/build/plugin/rules/ts/no-any-type.js +36 -36
- package/build/plugin/rules/ts/no-as-cast.d.ts +8 -8
- package/build/plugin/rules/ts/no-as-cast.js +49 -49
- package/build/plugin/rules/ts/no-dynamic-imports.d.ts +8 -8
- package/build/plugin/rules/ts/no-dynamic-imports.js +50 -50
- package/build/plugin/rules/ts/no-native-browser-dialogs.d.ts +8 -8
- package/build/plugin/rules/ts/no-native-browser-dialogs.js +78 -78
- package/build/plugin/rules/ts/no-plain-function-export.d.ts +9 -9
- package/build/plugin/rules/ts/no-plain-function-export.js +69 -69
- package/build/plugin/rules/ts/one-export-per-file.d.ts +8 -8
- package/build/plugin/rules/ts/one-export-per-file.js +73 -73
- package/build/scripts/dynamo-fix.d.ts +26 -26
- package/build/scripts/dynamo-fix.js +146 -146
- package/build/scripts/dynamo-fix.js.map +1 -1
- package/build/scripts/eslintrc-audit.d.ts +26 -26
- package/build/scripts/eslintrc-audit.js +100 -100
- package/build/scripts/fix-return-types.d.ts +74 -74
- package/build/scripts/fix-return-types.js +226 -226
- package/build/scripts/validate-imports.d.ts +26 -26
- package/build/scripts/validate-imports.js +157 -137
- package/build/scripts/validate-imports.js.map +1 -1
- package/build/scripts/validate-naming.d.ts +26 -26
- package/build/scripts/validate-naming.js +157 -123
- package/build/scripts/validate-naming.js.map +1 -1
- package/eslint.config.js +15 -15
- package/package.json +105 -105
- package/samples/.vscode/settings.json +13 -13
- package/samples/base/.eslintrc.json +6 -6
- package/samples/base/eslint.config.js +3 -3
- package/samples/fsm/.eslintrc.json +4 -4
- package/samples/fsm/eslint.config.js +3 -3
- package/samples/ngx/.eslintrc.json +6 -6
- package/samples/ngx/eslint.config.js +3 -3
- package/samples/ngx-package/.eslintrc.json +4 -4
- package/samples/ngx-package/eslint.config.js +3 -3
- package/samples/nts/.eslintrc.json +6 -6
- package/samples/nts/eslint.config.js +3 -3
- package/samples/nts-package/.eslintrc.json +4 -4
- package/samples/nts-package/eslint.config.js +3 -3
- package/samples/package.json.example +26 -26
- package/samples/poc-sample.ts +38 -38
- package/samples/poc-violations.ts +54 -54
- package/scripts/run-coverage-tests.js +24 -24
- package/spec/support/helpers/ts-node-helper.js +9 -9
- package/spec/support/jasmine.coverage.json +23 -23
- package/spec/support/jasmine.json +24 -24
- package/src/configs/base.ts +157 -157
- package/src/configs/fsm.ts +10 -10
- package/src/configs/ngx-package.ts +10 -10
- package/src/configs/ngx.ts +96 -96
- package/src/configs/nts-package.ts +20 -20
- package/src/configs/nts.ts +34 -34
- package/src/index.ts +4 -4
- package/src/plugin/index.ts +86 -86
- package/src/plugin/rules/angular/angular-for-track-logic.spec.ts +44 -44
- package/src/plugin/rules/angular/angular-for-track-logic.ts +88 -88
- package/src/plugin/rules/angular/effect-signal-loop.spec.ts +89 -89
- package/src/plugin/rules/angular/effect-signal-loop.ts +125 -125
- package/src/plugin/rules/angular/no-async-ngoninit.spec.ts +50 -50
- package/src/plugin/rules/angular/no-async-ngoninit.ts +43 -43
- package/src/plugin/rules/angular/no-component-direct-api.spec.ts +78 -78
- package/src/plugin/rules/angular/no-component-direct-api.ts +82 -82
- package/src/plugin/rules/angular/no-method-call-in-template.spec.ts +63 -63
- package/src/plugin/rules/angular/no-method-call-in-template.ts +89 -89
- package/src/plugin/rules/angular/no-ngfor-directive.spec.ts +44 -44
- package/src/plugin/rules/angular/no-ngfor-directive.ts +62 -62
- package/src/plugin/rules/angular/no-ngif-directive.spec.ts +44 -44
- package/src/plugin/rules/angular/no-ngif-directive.ts +62 -62
- package/src/plugin/rules/explicit-types.spec.ts +190 -190
- package/src/plugin/rules/explicit-types.ts +186 -186
- package/src/plugin/rules/import/import-order.spec.ts +219 -219
- package/src/plugin/rules/import/import-order.ts +197 -197
- package/src/plugin/rules/import/no-import-type.spec.ts +69 -69
- package/src/plugin/rules/import/no-import-type.ts +46 -46
- package/src/plugin/rules/import/no-js-import.spec.ts +82 -82
- package/src/plugin/rules/import/no-js-import.ts +45 -45
- package/src/plugin/rules/naming-patterns.spec.ts +189 -127
- package/src/plugin/rules/naming-patterns.ts +426 -408
- package/src/plugin/rules/no-getter-logic.spec.ts +591 -591
- package/src/plugin/rules/no-getter-logic.ts +220 -220
- package/src/plugin/rules/prefer-enum-over-string-union.spec.ts +583 -583
- package/src/plugin/rules/prefer-enum-over-string-union.ts +333 -333
- package/src/plugin/rules/prefer-interface-over-duplicate-types.spec.ts +404 -404
- package/src/plugin/rules/prefer-interface-over-duplicate-types.ts +314 -314
- package/src/plugin/rules/require-jsdoc-description.spec.ts +779 -779
- package/src/plugin/rules/require-jsdoc-description.ts +572 -572
- package/src/plugin/rules/require-test-description-prefix.spec.ts +459 -459
- package/src/plugin/rules/require-test-description-prefix.ts +154 -154
- package/src/plugin/rules/ts/data-model-extends.spec.ts +84 -84
- package/src/plugin/rules/ts/data-model-extends.ts +100 -100
- package/src/plugin/rules/ts/no-any-type.spec.ts +28 -28
- package/src/plugin/rules/ts/no-any-type.ts +36 -36
- package/src/plugin/rules/ts/no-as-cast.spec.ts +51 -51
- package/src/plugin/rules/ts/no-as-cast.ts +51 -51
- package/src/plugin/rules/ts/no-dynamic-imports.spec.ts +54 -54
- package/src/plugin/rules/ts/no-dynamic-imports.ts +49 -49
- package/src/plugin/rules/ts/no-native-browser-dialogs.spec.ts +54 -54
- package/src/plugin/rules/ts/no-native-browser-dialogs.ts +84 -84
- package/src/plugin/rules/ts/no-plain-function-export.spec.ts +72 -72
- package/src/plugin/rules/ts/no-plain-function-export.ts +73 -73
- package/src/plugin/rules/ts/one-export-per-file.spec.ts +64 -64
- package/src/plugin/rules/ts/one-export-per-file.ts +77 -77
- package/src/scripts/dynamo-fix.ts +172 -172
- package/src/scripts/eslintrc-audit.ts +116 -116
- package/src/scripts/fix-return-types.spec.ts +65 -65
- package/src/scripts/fix-return-types.ts +288 -288
- package/src/scripts/validate-imports.ts +278 -249
- package/src/scripts/validate-naming.ts +204 -176
- package/src/scripts/validator-cli.integration.spec.ts +96 -0
- package/tsconfig.json +31 -31
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{
|
|
2
|
-
"root": true,
|
|
3
|
-
"extends": ["@futdevpro/dynamo-eslint/ngx-package"]
|
|
4
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"root": true,
|
|
3
|
+
"extends": ["@futdevpro/dynamo-eslint/ngx-package"]
|
|
4
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const ngxPackageConfig = require('@futdevpro/dynamo-eslint/ngx-package');
|
|
2
|
-
|
|
3
|
-
module.exports = ngxPackageConfig;
|
|
1
|
+
const ngxPackageConfig = require('@futdevpro/dynamo-eslint/ngx-package');
|
|
2
|
+
|
|
3
|
+
module.exports = ngxPackageConfig;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
{
|
|
2
|
-
"root": true,
|
|
3
|
-
"extends": ["@futdevpro/dynamo-eslint/nts"]
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
{
|
|
2
|
+
"root": true,
|
|
3
|
+
"extends": ["@futdevpro/dynamo-eslint/nts"]
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const ntsConfig = require('@futdevpro/dynamo-eslint/nts');
|
|
2
|
-
|
|
3
|
-
module.exports = ntsConfig;
|
|
1
|
+
const ntsConfig = require('@futdevpro/dynamo-eslint/nts');
|
|
2
|
+
|
|
3
|
+
module.exports = ntsConfig;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{
|
|
2
|
-
"root": true,
|
|
3
|
-
"extends": ["@futdevpro/dynamo-eslint/nts-package"]
|
|
4
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"root": true,
|
|
3
|
+
"extends": ["@futdevpro/dynamo-eslint/nts-package"]
|
|
4
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const ntsPackageConfig = require('@futdevpro/dynamo-eslint/nts-package');
|
|
2
|
-
|
|
3
|
-
module.exports = ntsPackageConfig;
|
|
1
|
+
const ntsPackageConfig = require('@futdevpro/dynamo-eslint/nts-package');
|
|
2
|
+
|
|
3
|
+
module.exports = ntsPackageConfig;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "example-project",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"scripts": {
|
|
5
|
-
"lint": "eslint src --ext .ts",
|
|
6
|
-
"lint:fix": "eslint src --ext .ts --fix",
|
|
7
|
-
"lint:fix-all": "eslint src --ext .ts --fix && dynamo-fix-return-types",
|
|
8
|
-
"validate:imports": "dynamo-validate-imports",
|
|
9
|
-
"validate:naming": "dynamo-validate-naming",
|
|
10
|
-
"audit:eslintrc": "dynamo-eslintrc-audit",
|
|
11
|
-
"fix": "dynamo-fix",
|
|
12
|
-
"fix:return-types": "dynamo-fix-return-types",
|
|
13
|
-
"test": "npm run lint && npm run validate:imports && npm run validate:naming"
|
|
14
|
-
},
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"@futdevpro/dynamo-eslint": "1.15.1",
|
|
17
|
-
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
18
|
-
"@typescript-eslint/parser": "^8.0.0",
|
|
19
|
-
"eslint": "^9.0.0",
|
|
20
|
-
"eslint-plugin-import": "^2.29.0",
|
|
21
|
-
"eslint-plugin-jsdoc": "^48.0.0",
|
|
22
|
-
"eslint-plugin-prettier": "^5.1.3",
|
|
23
|
-
"prettier": "^3.3.0",
|
|
24
|
-
"typescript": "^5.5.4"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "example-project",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"lint": "eslint src --ext .ts",
|
|
6
|
+
"lint:fix": "eslint src --ext .ts --fix",
|
|
7
|
+
"lint:fix-all": "eslint src --ext .ts --fix && dynamo-fix-return-types",
|
|
8
|
+
"validate:imports": "dynamo-validate-imports",
|
|
9
|
+
"validate:naming": "dynamo-validate-naming",
|
|
10
|
+
"audit:eslintrc": "dynamo-eslintrc-audit",
|
|
11
|
+
"fix": "dynamo-fix",
|
|
12
|
+
"fix:return-types": "dynamo-fix-return-types",
|
|
13
|
+
"test": "npm run lint && npm run validate:imports && npm run validate:naming"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@futdevpro/dynamo-eslint": "1.15.1",
|
|
17
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
18
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
19
|
+
"eslint": "^9.0.0",
|
|
20
|
+
"eslint-plugin-import": "^2.29.0",
|
|
21
|
+
"eslint-plugin-jsdoc": "^48.0.0",
|
|
22
|
+
"eslint-plugin-prettier": "^5.1.3",
|
|
23
|
+
"prettier": "^3.3.0",
|
|
24
|
+
"typescript": "^5.5.4"
|
|
25
|
+
}
|
|
26
|
+
}
|
package/samples/poc-sample.ts
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
// POC Sample demonstrating Dynamo ESLint import ordering rules
|
|
2
|
-
// This file shows the correct import ordering according to the new rules
|
|
3
|
-
|
|
4
|
-
// Group 1: Non-FutDevPro packages
|
|
5
|
-
import { Component, OnInit } from '@angular/core';
|
|
6
|
-
import { Router } from '@angular/router';
|
|
7
|
-
import { HttpClient } from '@angular/common/http';
|
|
8
|
-
|
|
9
|
-
// Group 2: FutDevPro packages
|
|
10
|
-
import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';
|
|
11
|
-
import { FDP_User, FDP_Account } from '@futdevpro/fdp-templates';
|
|
12
|
-
|
|
13
|
-
// Group 3: Scripts from other modules (3+ levels without underscore, or 3+ levels with underscore)
|
|
14
|
-
import { SomeService } from '../../../services/some.service';
|
|
15
|
-
import { AnotherService } from '../../../../models/another.interface';
|
|
16
|
-
|
|
17
|
-
// Group 4: Scripts from same module (up to 2 levels, or up to 3 levels with underscore)
|
|
18
|
-
import { LocalComponent } from './local.component';
|
|
19
|
-
import { LocalService } from '../_services/local.service';
|
|
20
|
-
import { LocalInterface } from '../../../_models/local.interface';
|
|
21
|
-
|
|
22
|
-
export class PocSampleComponent implements OnInit {
|
|
23
|
-
constructor(
|
|
24
|
-
private router: Router,
|
|
25
|
-
private http: HttpClient,
|
|
26
|
-
private localService: LocalService
|
|
27
|
-
) {}
|
|
28
|
-
|
|
29
|
-
ngOnInit(): void {
|
|
30
|
-
// Example usage
|
|
31
|
-
DyFM_Log.info('Component initialized');
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// This would be flagged as errors:
|
|
35
|
-
// import { Something } from '../../../NPM-packages/some-package'; // ❌ Forbidden NPM-packages
|
|
36
|
-
// import { Something } from './some-file.js'; // ❌ Forbidden .js extension
|
|
37
|
-
// import type { SomeType } from './some-file'; // ❌ Forbidden import type
|
|
38
|
-
}
|
|
1
|
+
// POC Sample demonstrating Dynamo ESLint import ordering rules
|
|
2
|
+
// This file shows the correct import ordering according to the new rules
|
|
3
|
+
|
|
4
|
+
// Group 1: Non-FutDevPro packages
|
|
5
|
+
import { Component, OnInit } from '@angular/core';
|
|
6
|
+
import { Router } from '@angular/router';
|
|
7
|
+
import { HttpClient } from '@angular/common/http';
|
|
8
|
+
|
|
9
|
+
// Group 2: FutDevPro packages
|
|
10
|
+
import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';
|
|
11
|
+
import { FDP_User, FDP_Account } from '@futdevpro/fdp-templates';
|
|
12
|
+
|
|
13
|
+
// Group 3: Scripts from other modules (3+ levels without underscore, or 3+ levels with underscore)
|
|
14
|
+
import { SomeService } from '../../../services/some.service';
|
|
15
|
+
import { AnotherService } from '../../../../models/another.interface';
|
|
16
|
+
|
|
17
|
+
// Group 4: Scripts from same module (up to 2 levels, or up to 3 levels with underscore)
|
|
18
|
+
import { LocalComponent } from './local.component';
|
|
19
|
+
import { LocalService } from '../_services/local.service';
|
|
20
|
+
import { LocalInterface } from '../../../_models/local.interface';
|
|
21
|
+
|
|
22
|
+
export class PocSampleComponent implements OnInit {
|
|
23
|
+
constructor(
|
|
24
|
+
private router: Router,
|
|
25
|
+
private http: HttpClient,
|
|
26
|
+
private localService: LocalService
|
|
27
|
+
) {}
|
|
28
|
+
|
|
29
|
+
ngOnInit(): void {
|
|
30
|
+
// Example usage
|
|
31
|
+
DyFM_Log.info('Component initialized');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// This would be flagged as errors:
|
|
35
|
+
// import { Something } from '../../../NPM-packages/some-package'; // ❌ Forbidden NPM-packages
|
|
36
|
+
// import { Something } from './some-file.js'; // ❌ Forbidden .js extension
|
|
37
|
+
// import type { SomeType } from './some-file'; // ❌ Forbidden import type
|
|
38
|
+
}
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
// POC Sample demonstrating Dynamo ESLint import ordering violations
|
|
2
|
-
// This file shows various violations that should be caught by the linter
|
|
3
|
-
|
|
4
|
-
// ❌ VIOLATIONS: This file contains multiple import ordering violations
|
|
5
|
-
|
|
6
|
-
// Wrong order: FutDevPro packages before non-FutDevPro packages
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import { DyFM_Error } from '@futdevpro/fsm-dynamo';
|
|
18
|
-
import { Component } from '@angular/core';
|
|
19
|
-
|
|
20
|
-
// Missing empty line between groups
|
|
21
|
-
import { Router } from '@angular/router';
|
|
22
|
-
import { FDP_User } from '@futdevpro/fdp-templates';
|
|
23
|
-
|
|
24
|
-
// Wrong order: same module before other modules
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
import { LocalService } from './local.service';
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
import { SomeService } from '../../../services/some.service';
|
|
46
|
-
|
|
47
|
-
// ❌ Forbidden patterns:
|
|
48
|
-
import { Something } from '@futdevpro/some-package'; // Forbidden NPM-packages import
|
|
49
|
-
import { AnotherThing } from './some-file'; // Forbidden .js extension
|
|
50
|
-
import { SomeType } from './some-file'; // Forbidden import type
|
|
51
|
-
|
|
52
|
-
export class PocViolationsComponent {
|
|
53
|
-
// This class demonstrates various import violations
|
|
54
|
-
}
|
|
1
|
+
// POC Sample demonstrating Dynamo ESLint import ordering violations
|
|
2
|
+
// This file shows various violations that should be caught by the linter
|
|
3
|
+
|
|
4
|
+
// ❌ VIOLATIONS: This file contains multiple import ordering violations
|
|
5
|
+
|
|
6
|
+
// Wrong order: FutDevPro packages before non-FutDevPro packages
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
import { DyFM_Error } from '@futdevpro/fsm-dynamo';
|
|
18
|
+
import { Component } from '@angular/core';
|
|
19
|
+
|
|
20
|
+
// Missing empty line between groups
|
|
21
|
+
import { Router } from '@angular/router';
|
|
22
|
+
import { FDP_User } from '@futdevpro/fdp-templates';
|
|
23
|
+
|
|
24
|
+
// Wrong order: same module before other modules
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
import { LocalService } from './local.service';
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
import { SomeService } from '../../../services/some.service';
|
|
46
|
+
|
|
47
|
+
// ❌ Forbidden patterns:
|
|
48
|
+
import { Something } from '@futdevpro/some-package'; // Forbidden NPM-packages import
|
|
49
|
+
import { AnotherThing } from './some-file'; // Forbidden .js extension
|
|
50
|
+
import { SomeType } from './some-file'; // Forbidden import type
|
|
51
|
+
|
|
52
|
+
export class PocViolationsComponent {
|
|
53
|
+
// This class demonstrates various import violations
|
|
54
|
+
}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
const { execSync } = require('child_process');
|
|
2
|
-
const path = require('path');
|
|
3
|
-
|
|
4
|
-
const configPath = path.join(__dirname, '../spec/support/jasmine.coverage.json');
|
|
5
|
-
const tsNodeRegister = require.resolve('ts-node/register/transpile-only');
|
|
6
|
-
|
|
7
|
-
const env = {
|
|
8
|
-
...process.env,
|
|
9
|
-
NODE_OPTIONS: `--require ${tsNodeRegister}`
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
try {
|
|
13
|
-
execSync(`npx jasmine --config="${configPath}"`, {
|
|
14
|
-
stdio: 'inherit',
|
|
15
|
-
cwd: path.join(__dirname, '..'),
|
|
16
|
-
shell: true,
|
|
17
|
-
env: env
|
|
18
|
-
});
|
|
19
|
-
} catch (error) {
|
|
20
|
-
// Exit with the same status code as jasmine (3 = test failures, 1 = other errors)
|
|
21
|
-
// This allows c8 to still generate coverage reports even if tests fail
|
|
22
|
-
process.exit(error.status || 1);
|
|
23
|
-
}
|
|
24
|
-
|
|
1
|
+
const { execSync } = require('child_process');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
|
|
4
|
+
const configPath = path.join(__dirname, '../spec/support/jasmine.coverage.json');
|
|
5
|
+
const tsNodeRegister = require.resolve('ts-node/register/transpile-only');
|
|
6
|
+
|
|
7
|
+
const env = {
|
|
8
|
+
...process.env,
|
|
9
|
+
NODE_OPTIONS: `--require ${tsNodeRegister}`
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
try {
|
|
13
|
+
execSync(`npx jasmine --config="${configPath}"`, {
|
|
14
|
+
stdio: 'inherit',
|
|
15
|
+
cwd: path.join(__dirname, '..'),
|
|
16
|
+
shell: true,
|
|
17
|
+
env: env
|
|
18
|
+
});
|
|
19
|
+
} catch (error) {
|
|
20
|
+
// Exit with the same status code as jasmine (3 = test failures, 1 = other errors)
|
|
21
|
+
// This allows c8 to still generate coverage reports even if tests fail
|
|
22
|
+
process.exit(error.status || 1);
|
|
23
|
+
}
|
|
24
|
+
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
require('ts-node').register({
|
|
2
|
-
transpileOnly: true,
|
|
3
|
-
compilerOptions: {
|
|
4
|
-
module: 'commonjs',
|
|
5
|
-
esModuleInterop: true,
|
|
6
|
-
allowSyntheticDefaultImports: true
|
|
7
|
-
}
|
|
8
|
-
});
|
|
9
|
-
|
|
1
|
+
require('ts-node').register({
|
|
2
|
+
transpileOnly: true,
|
|
3
|
+
compilerOptions: {
|
|
4
|
+
module: 'commonjs',
|
|
5
|
+
esModuleInterop: true,
|
|
6
|
+
allowSyntheticDefaultImports: true
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
{
|
|
2
|
-
"reporters": [
|
|
3
|
-
{
|
|
4
|
-
"name": "jasmine-json-reporter",
|
|
5
|
-
"options": {
|
|
6
|
-
"pretty": true
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
],
|
|
10
|
-
"spec_dir": "src/",
|
|
11
|
-
"spec_files": [
|
|
12
|
-
"**/*.spec.ts",
|
|
13
|
-
"**/*[sS]pec.ts"
|
|
14
|
-
],
|
|
15
|
-
"helpers": [
|
|
16
|
-
"spec/support/helpers/ts-node-helper.js"
|
|
17
|
-
],
|
|
18
|
-
"env": {
|
|
19
|
-
"stopSpecOnExpectationFailure": false,
|
|
20
|
-
"random": true
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
1
|
+
{
|
|
2
|
+
"reporters": [
|
|
3
|
+
{
|
|
4
|
+
"name": "jasmine-json-reporter",
|
|
5
|
+
"options": {
|
|
6
|
+
"pretty": true
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"spec_dir": "src/",
|
|
11
|
+
"spec_files": [
|
|
12
|
+
"**/*.spec.ts",
|
|
13
|
+
"**/*[sS]pec.ts"
|
|
14
|
+
],
|
|
15
|
+
"helpers": [
|
|
16
|
+
"spec/support/helpers/ts-node-helper.js"
|
|
17
|
+
],
|
|
18
|
+
"env": {
|
|
19
|
+
"stopSpecOnExpectationFailure": false,
|
|
20
|
+
"random": true
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
{
|
|
2
|
-
"reporters": [
|
|
3
|
-
{
|
|
4
|
-
"name": "jasmine-json-reporter",
|
|
5
|
-
"options": {
|
|
6
|
-
"pretty": true
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
],
|
|
10
|
-
"spec_dir": "build/",
|
|
11
|
-
"spec_files": [
|
|
12
|
-
"**/*.spec.ts",
|
|
13
|
-
"**/*.spec.js",
|
|
14
|
-
"**/*[sS]pec.ts"
|
|
15
|
-
],
|
|
16
|
-
"helpers": [
|
|
17
|
-
"helpers/**/*.ts",
|
|
18
|
-
"helpers/**/*.js"
|
|
19
|
-
],
|
|
20
|
-
"env": {
|
|
21
|
-
"stopSpecOnExpectationFailure": false,
|
|
22
|
-
"random": true
|
|
23
|
-
}
|
|
24
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"reporters": [
|
|
3
|
+
{
|
|
4
|
+
"name": "jasmine-json-reporter",
|
|
5
|
+
"options": {
|
|
6
|
+
"pretty": true
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"spec_dir": "build/",
|
|
11
|
+
"spec_files": [
|
|
12
|
+
"**/*.spec.ts",
|
|
13
|
+
"**/*.spec.js",
|
|
14
|
+
"**/*[sS]pec.ts"
|
|
15
|
+
],
|
|
16
|
+
"helpers": [
|
|
17
|
+
"helpers/**/*.ts",
|
|
18
|
+
"helpers/**/*.js"
|
|
19
|
+
],
|
|
20
|
+
"env": {
|
|
21
|
+
"stopSpecOnExpectationFailure": false,
|
|
22
|
+
"random": true
|
|
23
|
+
}
|
|
24
|
+
}
|