@ngrx/eslint-plugin 21.0.0-beta.0 → 21.0.0-rc.0
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/package.json +1 -1
- package/scripts/generate-config.js +3 -3
- package/scripts/generate-config.js.map +1 -1
- package/src/configs/{allTypeChecked.js → all-type-checked.js} +2 -2
- package/src/configs/all-type-checked.js.map +1 -0
- package/src/configs/all.js +0 -1
- package/src/configs/all.js.map +1 -1
- package/src/configs/all.json +0 -1
- package/src/configs/{effectsTypeChecked.js → effects-type-checked.js} +2 -2
- package/src/configs/effects-type-checked.js.map +1 -0
- package/src/configs/{signalsTypeChecked.js → signals-type-checked.js} +2 -2
- package/src/configs/signals-type-checked.js.map +1 -0
- package/src/configs/signals.js +0 -1
- package/src/configs/signals.js.map +1 -1
- package/src/configs/signals.json +0 -1
- package/src/index.d.ts +3 -2
- package/src/index.js +6 -0
- package/src/index.js.map +1 -1
- package/src/rules/signals/signal-state-no-arrays-at-root-level.d.ts +2 -1
- package/src/rules/signals/signal-state-no-arrays-at-root-level.js +60 -3
- package/src/rules/signals/signal-state-no-arrays-at-root-level.js.map +1 -1
- package/src/rules/signals/with-state-no-arrays-at-root-level.js +46 -2
- package/src/rules/signals/with-state-no-arrays-at-root-level.js.map +1 -1
- package/v9/index.js +6 -6
- package/v9/index.js.map +1 -1
- package/src/configs/allTypeChecked.js.map +0 -1
- package/src/configs/effectsTypeChecked.js.map +0 -1
- package/src/configs/signalsTypeChecked.js.map +0 -1
- /package/src/configs/{allTypeChecked.d.ts → all-type-checked.d.ts} +0 -0
- /package/src/configs/{allTypeChecked.json → all-type-checked.json} +0 -0
- /package/src/configs/{effectsTypeChecked.d.ts → effects-type-checked.d.ts} +0 -0
- /package/src/configs/{effectsTypeChecked.json → effects-type-checked.json} +0 -0
- /package/src/configs/{signalsTypeChecked.d.ts → signals-type-checked.d.ts} +0 -0
- /package/src/configs/{signalsTypeChecked.json → signals-type-checked.json} +0 -0
package/package.json
CHANGED
|
@@ -11,14 +11,14 @@ const rules_1 = require("../src/utils/helper-functions/rules");
|
|
|
11
11
|
const isModule = (rule, moduleName) => rule.meta.docs?.ngrxModule === moduleName;
|
|
12
12
|
const isTypeChecked = (rule) => rule.meta.docs?.requiresTypeChecking === true;
|
|
13
13
|
writeConfig('all', (rule) => !isTypeChecked(rule));
|
|
14
|
-
writeConfig('
|
|
14
|
+
writeConfig('all-type-checked', (_rule) => true);
|
|
15
15
|
writeConfig('store', (rule) => isModule(rule, 'store') && !isTypeChecked(rule));
|
|
16
16
|
writeConfig('effects', (rule) => isModule(rule, 'effects') && !isTypeChecked(rule));
|
|
17
|
-
writeConfig('
|
|
17
|
+
writeConfig('effects-type-checked', (rule) => isModule(rule, 'effects'));
|
|
18
18
|
writeConfig('component-store', (rule) => isModule(rule, 'component-store') && !isTypeChecked(rule));
|
|
19
19
|
writeConfig('operators', (rule) => isModule(rule, 'operators') && !isTypeChecked(rule));
|
|
20
20
|
writeConfig('signals', (rule) => isModule(rule, 'signals') && !isTypeChecked(rule));
|
|
21
|
-
writeConfig('
|
|
21
|
+
writeConfig('signals-type-checked', (rule) => isModule(rule, 'signals'));
|
|
22
22
|
async function writeConfig(configName, predicate) {
|
|
23
23
|
const rulesForConfig = Object.entries(rules_1.rulesForGenerate).filter(([_, rule]) => predicate(rule));
|
|
24
24
|
const configRules = rulesForConfig.reduce((rules, [ruleName, _rule]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-config.js","sourceRoot":"","sources":["../../../../modules/eslint-plugin/scripts/generate-config.ts"],"names":[],"mappings":";;AAAA,2BAAmC;AACnC,+BAA4B;AAC5B,uCAAiD;AACjD,+DAAuE;AAGvE,CAAC,KAAK,IAAI,EAAE;IACV,MAAM,cAAc,GAAG,MAAM,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC;IAC5B,MAAM,gBAAgB,GAAG,sCAAsC,CAAC;IAEhE,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAE,UAAkB,EAAE,EAAE,CACtD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC;IAC5C,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,EAAE,CACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAEhD,WAAW,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"generate-config.js","sourceRoot":"","sources":["../../../../modules/eslint-plugin/scripts/generate-config.ts"],"names":[],"mappings":"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","sourcesContent":["import { writeFileSync } from 'fs';\nimport { join } from 'path';\nimport { format, resolveConfig } from 'prettier';\nimport { rulesForGenerate } from '../src/utils/helper-functions/rules';\nimport { NgRxRule } from '../src/rule-creator';\n\n(async () => {\n const prettierConfig = await resolveConfig(__dirname);\n const RULE_MODULE = '@ngrx';\n const CONFIG_DIRECTORY = './modules/eslint-plugin/src/configs/';\n\n const isModule = (rule: NgRxRule, moduleName: string) =>\n rule.meta.docs?.ngrxModule === moduleName;\n const isTypeChecked = (rule: NgRxRule) =>\n rule.meta.docs?.requiresTypeChecking === true;\n\n writeConfig('all', (rule) => !isTypeChecked(rule));\n writeConfig('all-type-checked', (_rule) => true);\n\n writeConfig(\n 'store',\n (rule) => isModule(rule, 'store') && !isTypeChecked(rule)\n );\n\n writeConfig(\n 'effects',\n (rule) => isModule(rule, 'effects') && !isTypeChecked(rule)\n );\n writeConfig('effects-type-checked', (rule) => isModule(rule, 'effects'));\n\n writeConfig(\n 'component-store',\n (rule) => isModule(rule, 'component-store') && !isTypeChecked(rule)\n );\n\n writeConfig(\n 'operators',\n (rule) => isModule(rule, 'operators') && !isTypeChecked(rule)\n );\n\n writeConfig(\n 'signals',\n (rule) => isModule(rule, 'signals') && !isTypeChecked(rule)\n );\n writeConfig('signals-type-checked', (rule) => isModule(rule, 'signals'));\n\n async function writeConfig(\n configName:\n | 'all'\n | 'all-type-checked'\n | 'store'\n | 'effects'\n | 'effects-type-checked'\n | 'component-store'\n | 'operators'\n | 'signals'\n | 'signals-type-checked',\n predicate: (rule: NgRxRule) => boolean\n ) {\n const rulesForConfig = Object.entries(rulesForGenerate).filter(\n ([_, rule]) => predicate(rule)\n );\n const configRules = rulesForConfig.reduce<Record<string, string>>(\n (rules, [ruleName, _rule]) => {\n rules[`${RULE_MODULE}/${ruleName}`] = 'error';\n return rules;\n },\n {}\n );\n\n const tsCode = `\n /**\n * DO NOT EDIT\n * This file is generated\n */\n\n import type { TSESLint } from '@typescript-eslint/utils';\n\n export default (\n plugin: TSESLint.FlatConfig.Plugin,\n parser: TSESLint.FlatConfig.Parser,\n ): TSESLint.FlatConfig.ConfigArray => [\n {\n name: 'ngrx/base',\n languageOptions: {\n parser,\n },\n plugins: {\n '@ngrx': plugin,\n },\n },\n {\n name: 'ngrx/${configName}',\n languageOptions: {\n parser,\n },\n rules: ${JSON.stringify(configRules, null, 2)}\n },\n ];`;\n const tsConfigFormatted = await format(tsCode, {\n parser: 'typescript',\n ...prettierConfig,\n });\n writeFileSync(\n join(CONFIG_DIRECTORY, `${configName}.ts`),\n tsConfigFormatted\n );\n\n const jsonConfig: { [key: string]: any } = {\n parser: '@typescript-eslint/parser',\n plugins: ['@ngrx'],\n rules: configRules,\n };\n const jsonConfigFormatted = await format(\n JSON.stringify(jsonConfig, null, 2),\n {\n parser: 'json',\n ...prettierConfig,\n }\n );\n\n writeFileSync(\n join(CONFIG_DIRECTORY, `${configName}.json`),\n jsonConfigFormatted\n );\n }\n})();\n"]}
|
|
@@ -15,7 +15,7 @@ exports.default = (plugin, parser) => [
|
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
name: 'ngrx/
|
|
18
|
+
name: 'ngrx/all-type-checked',
|
|
19
19
|
languageOptions: {
|
|
20
20
|
parser,
|
|
21
21
|
},
|
|
@@ -58,4 +58,4 @@ exports.default = (plugin, parser) => [
|
|
|
58
58
|
},
|
|
59
59
|
},
|
|
60
60
|
];
|
|
61
|
-
//# sourceMappingURL=
|
|
61
|
+
//# sourceMappingURL=all-type-checked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"all-type-checked.js","sourceRoot":"","sources":["../../../../../modules/eslint-plugin/src/configs/all-type-checked.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,kBAAe,CACb,MAAkC,EAClC,MAAkC,EACD,EAAE,CAAC;IACpC;QACE,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE;YACf,MAAM;SACP;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;SAChB;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,eAAe,EAAE;YACf,MAAM;SACP;QACD,KAAK,EAAE;YACL,iDAAiD,EAAE,OAAO;YAC1D,+CAA+C,EAAE,OAAO;YACxD,+BAA+B,EAAE,OAAO;YACxC,oCAAoC,EAAE,OAAO;YAC7C,4BAA4B,EAAE,OAAO;YACrC,8BAA8B,EAAE,OAAO;YACvC,+BAA+B,EAAE,OAAO;YACxC,sCAAsC,EAAE,OAAO;YAC/C,wCAAwC,EAAE,OAAO;YACjD,iDAAiD,EAAE,OAAO;YAC1D,uCAAuC,EAAE,OAAO;YAChD,iCAAiC,EAAE,OAAO;YAC1C,yBAAyB,EAAE,OAAO;YAClC,8BAA8B,EAAE,OAAO;YACvC,4CAA4C,EAAE,OAAO;YACrD,oDAAoD,EAAE,OAAO;YAC7D,0CAA0C,EAAE,OAAO;YACnD,iCAAiC,EAAE,OAAO;YAC1C,uDAAuD,EAAE,OAAO;YAChE,0CAA0C,EAAE,OAAO;YACnD,+BAA+B,EAAE,OAAO;YACxC,2BAA2B,EAAE,OAAO;YACpC,iCAAiC,EAAE,OAAO;YAC1C,+BAA+B,EAAE,OAAO;YACxC,6BAA6B,EAAE,OAAO;YACtC,6BAA6B,EAAE,OAAO;YACtC,wCAAwC,EAAE,OAAO;YACjD,yCAAyC,EAAE,OAAO;YAClD,6BAA6B,EAAE,OAAO;YACtC,kCAAkC,EAAE,OAAO;YAC3C,yDAAyD,EAAE,OAAO;YAClE,iCAAiC,EAAE,OAAO;YAC1C,oCAAoC,EAAE,OAAO;YAC7C,oBAAoB,EAAE,OAAO;YAC7B,wCAAwC,EAAE,OAAO;SAClD;KACF;CACF,CAAC","sourcesContent":["/**\n * DO NOT EDIT\n * This file is generated\n */\n\nimport type { TSESLint } from '@typescript-eslint/utils';\n\nexport default (\n plugin: TSESLint.FlatConfig.Plugin,\n parser: TSESLint.FlatConfig.Parser\n): TSESLint.FlatConfig.ConfigArray => [\n {\n name: 'ngrx/base',\n languageOptions: {\n parser,\n },\n plugins: {\n '@ngrx': plugin,\n },\n },\n {\n name: 'ngrx/all-type-checked',\n languageOptions: {\n parser,\n },\n rules: {\n '@ngrx/avoid-combining-component-store-selectors': 'error',\n '@ngrx/avoid-mapping-component-store-selectors': 'error',\n '@ngrx/require-super-ondestroy': 'error',\n '@ngrx/updater-explicit-return-type': 'error',\n '@ngrx/avoid-cyclic-effects': 'error',\n '@ngrx/no-dispatch-in-effects': 'error',\n '@ngrx/no-effects-in-providers': 'error',\n '@ngrx/no-multiple-actions-in-effects': 'error',\n '@ngrx/prefer-action-creator-in-of-type': 'error',\n '@ngrx/prefer-effect-callback-in-block-statement': 'error',\n '@ngrx/use-effects-lifecycle-interface': 'error',\n '@ngrx/prefer-concat-latest-from': 'error',\n '@ngrx/enforce-type-call': 'error',\n '@ngrx/prefer-protected-state': 'error',\n '@ngrx/signal-state-no-arrays-at-root-level': 'error',\n '@ngrx/signal-store-feature-should-use-generic-type': 'error',\n '@ngrx/with-state-no-arrays-at-root-level': 'error',\n '@ngrx/avoid-combining-selectors': 'error',\n '@ngrx/avoid-dispatching-multiple-actions-sequentially': 'error',\n '@ngrx/avoid-duplicate-actions-in-reducer': 'error',\n '@ngrx/avoid-mapping-selectors': 'error',\n '@ngrx/good-action-hygiene': 'error',\n '@ngrx/no-multiple-global-stores': 'error',\n '@ngrx/no-reducer-in-key-names': 'error',\n '@ngrx/no-store-subscription': 'error',\n '@ngrx/no-typed-global-store': 'error',\n '@ngrx/on-function-explicit-return-type': 'error',\n '@ngrx/prefer-action-creator-in-dispatch': 'error',\n '@ngrx/prefer-action-creator': 'error',\n '@ngrx/prefer-inline-action-props': 'error',\n '@ngrx/prefer-one-generic-in-create-for-feature-selector': 'error',\n '@ngrx/prefer-selector-in-select': 'error',\n '@ngrx/prefix-selectors-with-select': 'error',\n '@ngrx/select-style': 'error',\n '@ngrx/use-consistent-global-store-name': 'error',\n },\n },\n];\n"]}
|
package/src/configs/all.js
CHANGED
|
@@ -32,7 +32,6 @@ exports.default = (plugin, parser) => [
|
|
|
32
32
|
'@ngrx/prefer-concat-latest-from': 'error',
|
|
33
33
|
'@ngrx/enforce-type-call': 'error',
|
|
34
34
|
'@ngrx/prefer-protected-state': 'error',
|
|
35
|
-
'@ngrx/signal-state-no-arrays-at-root-level': 'error',
|
|
36
35
|
'@ngrx/signal-store-feature-should-use-generic-type': 'error',
|
|
37
36
|
'@ngrx/avoid-combining-selectors': 'error',
|
|
38
37
|
'@ngrx/avoid-dispatching-multiple-actions-sequentially': 'error',
|
package/src/configs/all.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all.js","sourceRoot":"","sources":["../../../../../modules/eslint-plugin/src/configs/all.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,kBAAe,CACb,MAAkC,EAClC,MAAkC,EACD,EAAE,CAAC;IACpC;QACE,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE;YACf,MAAM;SACP;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;SAChB;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE;YACf,MAAM;SACP;QACD,KAAK,EAAE;YACL,iDAAiD,EAAE,OAAO;YAC1D,+CAA+C,EAAE,OAAO;YACxD,+BAA+B,EAAE,OAAO;YACxC,oCAAoC,EAAE,OAAO;YAC7C,8BAA8B,EAAE,OAAO;YACvC,+BAA+B,EAAE,OAAO;YACxC,wCAAwC,EAAE,OAAO;YACjD,iDAAiD,EAAE,OAAO;YAC1D,uCAAuC,EAAE,OAAO;YAChD,iCAAiC,EAAE,OAAO;YAC1C,yBAAyB,EAAE,OAAO;YAClC,8BAA8B,EAAE,OAAO;YACvC,
|
|
1
|
+
{"version":3,"file":"all.js","sourceRoot":"","sources":["../../../../../modules/eslint-plugin/src/configs/all.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,kBAAe,CACb,MAAkC,EAClC,MAAkC,EACD,EAAE,CAAC;IACpC;QACE,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE;YACf,MAAM;SACP;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;SAChB;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE;YACf,MAAM;SACP;QACD,KAAK,EAAE;YACL,iDAAiD,EAAE,OAAO;YAC1D,+CAA+C,EAAE,OAAO;YACxD,+BAA+B,EAAE,OAAO;YACxC,oCAAoC,EAAE,OAAO;YAC7C,8BAA8B,EAAE,OAAO;YACvC,+BAA+B,EAAE,OAAO;YACxC,wCAAwC,EAAE,OAAO;YACjD,iDAAiD,EAAE,OAAO;YAC1D,uCAAuC,EAAE,OAAO;YAChD,iCAAiC,EAAE,OAAO;YAC1C,yBAAyB,EAAE,OAAO;YAClC,8BAA8B,EAAE,OAAO;YACvC,oDAAoD,EAAE,OAAO;YAC7D,iCAAiC,EAAE,OAAO;YAC1C,uDAAuD,EAAE,OAAO;YAChE,0CAA0C,EAAE,OAAO;YACnD,+BAA+B,EAAE,OAAO;YACxC,2BAA2B,EAAE,OAAO;YACpC,iCAAiC,EAAE,OAAO;YAC1C,+BAA+B,EAAE,OAAO;YACxC,6BAA6B,EAAE,OAAO;YACtC,6BAA6B,EAAE,OAAO;YACtC,wCAAwC,EAAE,OAAO;YACjD,yCAAyC,EAAE,OAAO;YAClD,6BAA6B,EAAE,OAAO;YACtC,kCAAkC,EAAE,OAAO;YAC3C,yDAAyD,EAAE,OAAO;YAClE,iCAAiC,EAAE,OAAO;YAC1C,oCAAoC,EAAE,OAAO;YAC7C,oBAAoB,EAAE,OAAO;YAC7B,wCAAwC,EAAE,OAAO;SAClD;KACF;CACF,CAAC","sourcesContent":["/**\n * DO NOT EDIT\n * This file is generated\n */\n\nimport type { TSESLint } from '@typescript-eslint/utils';\n\nexport default (\n plugin: TSESLint.FlatConfig.Plugin,\n parser: TSESLint.FlatConfig.Parser\n): TSESLint.FlatConfig.ConfigArray => [\n {\n name: 'ngrx/base',\n languageOptions: {\n parser,\n },\n plugins: {\n '@ngrx': plugin,\n },\n },\n {\n name: 'ngrx/all',\n languageOptions: {\n parser,\n },\n rules: {\n '@ngrx/avoid-combining-component-store-selectors': 'error',\n '@ngrx/avoid-mapping-component-store-selectors': 'error',\n '@ngrx/require-super-ondestroy': 'error',\n '@ngrx/updater-explicit-return-type': 'error',\n '@ngrx/no-dispatch-in-effects': 'error',\n '@ngrx/no-effects-in-providers': 'error',\n '@ngrx/prefer-action-creator-in-of-type': 'error',\n '@ngrx/prefer-effect-callback-in-block-statement': 'error',\n '@ngrx/use-effects-lifecycle-interface': 'error',\n '@ngrx/prefer-concat-latest-from': 'error',\n '@ngrx/enforce-type-call': 'error',\n '@ngrx/prefer-protected-state': 'error',\n '@ngrx/signal-store-feature-should-use-generic-type': 'error',\n '@ngrx/avoid-combining-selectors': 'error',\n '@ngrx/avoid-dispatching-multiple-actions-sequentially': 'error',\n '@ngrx/avoid-duplicate-actions-in-reducer': 'error',\n '@ngrx/avoid-mapping-selectors': 'error',\n '@ngrx/good-action-hygiene': 'error',\n '@ngrx/no-multiple-global-stores': 'error',\n '@ngrx/no-reducer-in-key-names': 'error',\n '@ngrx/no-store-subscription': 'error',\n '@ngrx/no-typed-global-store': 'error',\n '@ngrx/on-function-explicit-return-type': 'error',\n '@ngrx/prefer-action-creator-in-dispatch': 'error',\n '@ngrx/prefer-action-creator': 'error',\n '@ngrx/prefer-inline-action-props': 'error',\n '@ngrx/prefer-one-generic-in-create-for-feature-selector': 'error',\n '@ngrx/prefer-selector-in-select': 'error',\n '@ngrx/prefix-selectors-with-select': 'error',\n '@ngrx/select-style': 'error',\n '@ngrx/use-consistent-global-store-name': 'error',\n },\n },\n];\n"]}
|
package/src/configs/all.json
CHANGED
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"@ngrx/prefer-concat-latest-from": "error",
|
|
15
15
|
"@ngrx/enforce-type-call": "error",
|
|
16
16
|
"@ngrx/prefer-protected-state": "error",
|
|
17
|
-
"@ngrx/signal-state-no-arrays-at-root-level": "error",
|
|
18
17
|
"@ngrx/signal-store-feature-should-use-generic-type": "error",
|
|
19
18
|
"@ngrx/avoid-combining-selectors": "error",
|
|
20
19
|
"@ngrx/avoid-dispatching-multiple-actions-sequentially": "error",
|
|
@@ -15,7 +15,7 @@ exports.default = (plugin, parser) => [
|
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
name: 'ngrx/
|
|
18
|
+
name: 'ngrx/effects-type-checked',
|
|
19
19
|
languageOptions: {
|
|
20
20
|
parser,
|
|
21
21
|
},
|
|
@@ -30,4 +30,4 @@ exports.default = (plugin, parser) => [
|
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
32
|
];
|
|
33
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=effects-type-checked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects-type-checked.js","sourceRoot":"","sources":["../../../../../modules/eslint-plugin/src/configs/effects-type-checked.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,kBAAe,CACb,MAAkC,EAClC,MAAkC,EACD,EAAE,CAAC;IACpC;QACE,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE;YACf,MAAM;SACP;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;SAChB;KACF;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,eAAe,EAAE;YACf,MAAM;SACP;QACD,KAAK,EAAE;YACL,4BAA4B,EAAE,OAAO;YACrC,8BAA8B,EAAE,OAAO;YACvC,+BAA+B,EAAE,OAAO;YACxC,sCAAsC,EAAE,OAAO;YAC/C,wCAAwC,EAAE,OAAO;YACjD,iDAAiD,EAAE,OAAO;YAC1D,uCAAuC,EAAE,OAAO;SACjD;KACF;CACF,CAAC","sourcesContent":["/**\n * DO NOT EDIT\n * This file is generated\n */\n\nimport type { TSESLint } from '@typescript-eslint/utils';\n\nexport default (\n plugin: TSESLint.FlatConfig.Plugin,\n parser: TSESLint.FlatConfig.Parser\n): TSESLint.FlatConfig.ConfigArray => [\n {\n name: 'ngrx/base',\n languageOptions: {\n parser,\n },\n plugins: {\n '@ngrx': plugin,\n },\n },\n {\n name: 'ngrx/effects-type-checked',\n languageOptions: {\n parser,\n },\n rules: {\n '@ngrx/avoid-cyclic-effects': 'error',\n '@ngrx/no-dispatch-in-effects': 'error',\n '@ngrx/no-effects-in-providers': 'error',\n '@ngrx/no-multiple-actions-in-effects': 'error',\n '@ngrx/prefer-action-creator-in-of-type': 'error',\n '@ngrx/prefer-effect-callback-in-block-statement': 'error',\n '@ngrx/use-effects-lifecycle-interface': 'error',\n },\n },\n];\n"]}
|
|
@@ -15,7 +15,7 @@ exports.default = (plugin, parser) => [
|
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
name: 'ngrx/
|
|
18
|
+
name: 'ngrx/signals-type-checked',
|
|
19
19
|
languageOptions: {
|
|
20
20
|
parser,
|
|
21
21
|
},
|
|
@@ -28,4 +28,4 @@ exports.default = (plugin, parser) => [
|
|
|
28
28
|
},
|
|
29
29
|
},
|
|
30
30
|
];
|
|
31
|
-
//# sourceMappingURL=
|
|
31
|
+
//# sourceMappingURL=signals-type-checked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signals-type-checked.js","sourceRoot":"","sources":["../../../../../modules/eslint-plugin/src/configs/signals-type-checked.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,kBAAe,CACb,MAAkC,EAClC,MAAkC,EACD,EAAE,CAAC;IACpC;QACE,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE;YACf,MAAM;SACP;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;SAChB;KACF;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,eAAe,EAAE;YACf,MAAM;SACP;QACD,KAAK,EAAE;YACL,yBAAyB,EAAE,OAAO;YAClC,8BAA8B,EAAE,OAAO;YACvC,4CAA4C,EAAE,OAAO;YACrD,oDAAoD,EAAE,OAAO;YAC7D,0CAA0C,EAAE,OAAO;SACpD;KACF;CACF,CAAC","sourcesContent":["/**\n * DO NOT EDIT\n * This file is generated\n */\n\nimport type { TSESLint } from '@typescript-eslint/utils';\n\nexport default (\n plugin: TSESLint.FlatConfig.Plugin,\n parser: TSESLint.FlatConfig.Parser\n): TSESLint.FlatConfig.ConfigArray => [\n {\n name: 'ngrx/base',\n languageOptions: {\n parser,\n },\n plugins: {\n '@ngrx': plugin,\n },\n },\n {\n name: 'ngrx/signals-type-checked',\n languageOptions: {\n parser,\n },\n rules: {\n '@ngrx/enforce-type-call': 'error',\n '@ngrx/prefer-protected-state': 'error',\n '@ngrx/signal-state-no-arrays-at-root-level': 'error',\n '@ngrx/signal-store-feature-should-use-generic-type': 'error',\n '@ngrx/with-state-no-arrays-at-root-level': 'error',\n },\n },\n];\n"]}
|
package/src/configs/signals.js
CHANGED
|
@@ -22,7 +22,6 @@ exports.default = (plugin, parser) => [
|
|
|
22
22
|
rules: {
|
|
23
23
|
'@ngrx/enforce-type-call': 'error',
|
|
24
24
|
'@ngrx/prefer-protected-state': 'error',
|
|
25
|
-
'@ngrx/signal-state-no-arrays-at-root-level': 'error',
|
|
26
25
|
'@ngrx/signal-store-feature-should-use-generic-type': 'error',
|
|
27
26
|
},
|
|
28
27
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../../../modules/eslint-plugin/src/configs/signals.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,kBAAe,CACb,MAAkC,EAClC,MAAkC,EACD,EAAE,CAAC;IACpC;QACE,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE;YACf,MAAM;SACP;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;SAChB;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,eAAe,EAAE;YACf,MAAM;SACP;QACD,KAAK,EAAE;YACL,yBAAyB,EAAE,OAAO;YAClC,8BAA8B,EAAE,OAAO;YACvC,
|
|
1
|
+
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../../../modules/eslint-plugin/src/configs/signals.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,kBAAe,CACb,MAAkC,EAClC,MAAkC,EACD,EAAE,CAAC;IACpC;QACE,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE;YACf,MAAM;SACP;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;SAChB;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,eAAe,EAAE;YACf,MAAM;SACP;QACD,KAAK,EAAE;YACL,yBAAyB,EAAE,OAAO;YAClC,8BAA8B,EAAE,OAAO;YACvC,oDAAoD,EAAE,OAAO;SAC9D;KACF;CACF,CAAC","sourcesContent":["/**\n * DO NOT EDIT\n * This file is generated\n */\n\nimport type { TSESLint } from '@typescript-eslint/utils';\n\nexport default (\n plugin: TSESLint.FlatConfig.Plugin,\n parser: TSESLint.FlatConfig.Parser\n): TSESLint.FlatConfig.ConfigArray => [\n {\n name: 'ngrx/base',\n languageOptions: {\n parser,\n },\n plugins: {\n '@ngrx': plugin,\n },\n },\n {\n name: 'ngrx/signals',\n languageOptions: {\n parser,\n },\n rules: {\n '@ngrx/enforce-type-call': 'error',\n '@ngrx/prefer-protected-state': 'error',\n '@ngrx/signal-store-feature-should-use-generic-type': 'error',\n },\n },\n];\n"]}
|
package/src/configs/signals.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -16,7 +16,6 @@ declare const _default: {
|
|
|
16
16
|
"@ngrx/prefer-concat-latest-from": string;
|
|
17
17
|
"@ngrx/enforce-type-call": string;
|
|
18
18
|
"@ngrx/prefer-protected-state": string;
|
|
19
|
-
"@ngrx/signal-state-no-arrays-at-root-level": string;
|
|
20
19
|
"@ngrx/signal-store-feature-should-use-generic-type": string;
|
|
21
20
|
"@ngrx/avoid-combining-selectors": string;
|
|
22
21
|
"@ngrx/avoid-dispatching-multiple-actions-sequentially": string;
|
|
@@ -38,6 +37,7 @@ declare const _default: {
|
|
|
38
37
|
"@ngrx/use-consistent-global-store-name": string;
|
|
39
38
|
};
|
|
40
39
|
};
|
|
40
|
+
'all-type-checked': (plugin: import("typescript-eslint").FlatConfig.Plugin, parser: import("typescript-eslint").FlatConfig.Parser) => import("typescript-eslint").FlatConfig.ConfigArray;
|
|
41
41
|
'component-store': {
|
|
42
42
|
parser: string;
|
|
43
43
|
plugins: string[];
|
|
@@ -59,6 +59,7 @@ declare const _default: {
|
|
|
59
59
|
"@ngrx/use-effects-lifecycle-interface": string;
|
|
60
60
|
};
|
|
61
61
|
};
|
|
62
|
+
'effects-type-checked': (plugin: import("typescript-eslint").FlatConfig.Plugin, parser: import("typescript-eslint").FlatConfig.Parser) => import("typescript-eslint").FlatConfig.ConfigArray;
|
|
62
63
|
store: {
|
|
63
64
|
parser: string;
|
|
64
65
|
plugins: string[];
|
|
@@ -96,10 +97,10 @@ declare const _default: {
|
|
|
96
97
|
rules: {
|
|
97
98
|
"@ngrx/enforce-type-call": string;
|
|
98
99
|
"@ngrx/prefer-protected-state": string;
|
|
99
|
-
"@ngrx/signal-state-no-arrays-at-root-level": string;
|
|
100
100
|
"@ngrx/signal-store-feature-should-use-generic-type": string;
|
|
101
101
|
};
|
|
102
102
|
};
|
|
103
|
+
'signals-type-checked': (plugin: import("typescript-eslint").FlatConfig.Plugin, parser: import("typescript-eslint").FlatConfig.Parser) => import("typescript-eslint").FlatConfig.ConfigArray;
|
|
103
104
|
};
|
|
104
105
|
rules: {
|
|
105
106
|
'avoid-combining-component-store-selectors': import("@typescript-eslint/utils/ts-eslint").RuleModule<"avoidCombiningComponentStoreSelectors", readonly [], import("./rule-creator").NgRxRuleDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
package/src/index.js
CHANGED
|
@@ -4,19 +4,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
const rules_1 = require("./rules");
|
|
6
6
|
const all_json_1 = __importDefault(require("./configs/all.json"));
|
|
7
|
+
const all_type_checked_1 = __importDefault(require("./configs/all-type-checked"));
|
|
7
8
|
const component_store_json_1 = __importDefault(require("./configs/component-store.json"));
|
|
8
9
|
const effects_json_1 = __importDefault(require("./configs/effects.json"));
|
|
10
|
+
const effects_type_checked_1 = __importDefault(require("./configs/effects-type-checked"));
|
|
9
11
|
const store_json_1 = __importDefault(require("./configs/store.json"));
|
|
10
12
|
const operators_json_1 = __importDefault(require("./configs/operators.json"));
|
|
11
13
|
const signals_json_1 = __importDefault(require("./configs/signals.json"));
|
|
14
|
+
const signals_type_checked_1 = __importDefault(require("./configs/signals-type-checked"));
|
|
12
15
|
module.exports = {
|
|
13
16
|
configs: {
|
|
14
17
|
all: all_json_1.default,
|
|
18
|
+
'all-type-checked': all_type_checked_1.default,
|
|
15
19
|
'component-store': component_store_json_1.default,
|
|
16
20
|
effects: effects_json_1.default,
|
|
21
|
+
'effects-type-checked': effects_type_checked_1.default,
|
|
17
22
|
store: store_json_1.default,
|
|
18
23
|
operators: operators_json_1.default,
|
|
19
24
|
signals: signals_json_1.default,
|
|
25
|
+
'signals-type-checked': signals_type_checked_1.default,
|
|
20
26
|
},
|
|
21
27
|
rules: rules_1.rules,
|
|
22
28
|
};
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/eslint-plugin/src/index.ts"],"names":[],"mappings":";;;;AAAA,mCAAgC;AAChC,kEAAqC;AACrC,0FAA4D;AAC5D,0EAA6C;AAC7C,sEAAyC;AACzC,8EAAiD;AACjD,0EAA6C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/eslint-plugin/src/index.ts"],"names":[],"mappings":";;;;AAAA,mCAAgC;AAChC,kEAAqC;AACrC,kFAAwD;AACxD,0FAA4D;AAC5D,0EAA6C;AAC7C,0FAAgE;AAChE,sEAAyC;AACzC,8EAAiD;AACjD,0EAA6C;AAC7C,0FAAgE;AAEhE,iBAAS;IACP,OAAO,EAAE;QACP,GAAG,EAAH,kBAAG;QACH,kBAAkB,EAAE,0BAAc;QAClC,iBAAiB,EAAE,8BAAc;QACjC,OAAO,EAAE,sBAAO;QAChB,sBAAsB,EAAE,8BAAkB;QAC1C,KAAK,EAAE,oBAAK;QACZ,SAAS,EAAE,wBAAS;QACpB,OAAO,EAAE,sBAAO;QAChB,sBAAsB,EAAE,8BAAkB;KAC3C;IACD,KAAK,EAAL,aAAK;CACN,CAAC","sourcesContent":["import { rules } from './rules';\nimport all from './configs/all.json';\nimport allTypeChecked from './configs/all-type-checked';\nimport componentStore from './configs/component-store.json';\nimport effects from './configs/effects.json';\nimport effectsTypeChecked from './configs/effects-type-checked';\nimport store from './configs/store.json';\nimport operators from './configs/operators.json';\nimport signals from './configs/signals.json';\nimport signalsTypeChecked from './configs/signals-type-checked';\n\nexport = {\n configs: {\n all,\n 'all-type-checked': allTypeChecked,\n 'component-store': componentStore,\n effects: effects,\n 'effects-type-checked': effectsTypeChecked,\n store: store,\n operators: operators,\n signals: signals,\n 'signals-type-checked': signalsTypeChecked,\n },\n rules,\n};\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ESLintUtils } from '@typescript-eslint/utils';
|
|
1
2
|
export declare const messageId = "signalStateNoArraysAtRootLevel";
|
|
2
|
-
declare const _default:
|
|
3
|
+
declare const _default: ESLintUtils.RuleModule<"signalStateNoArraysAtRootLevel", readonly [], import("../../rule-creator").NgRxRuleDocs, ESLintUtils.RuleListener>;
|
|
3
4
|
export default _default;
|
|
@@ -34,10 +34,25 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.messageId = void 0;
|
|
37
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
37
38
|
const path = __importStar(require("path"));
|
|
38
39
|
const rule_creator_1 = require("../../rule-creator");
|
|
39
|
-
const
|
|
40
|
+
const utils_2 = require("../../utils");
|
|
40
41
|
exports.messageId = 'signalStateNoArraysAtRootLevel';
|
|
42
|
+
const NON_RECORD_TYPES = [
|
|
43
|
+
'Array',
|
|
44
|
+
'Set',
|
|
45
|
+
'Map',
|
|
46
|
+
'WeakSet',
|
|
47
|
+
'WeakMap',
|
|
48
|
+
'Date',
|
|
49
|
+
'Error',
|
|
50
|
+
'RegExp',
|
|
51
|
+
'ArrayBuffer',
|
|
52
|
+
'DataView',
|
|
53
|
+
'Promise',
|
|
54
|
+
'Function',
|
|
55
|
+
];
|
|
41
56
|
exports.default = (0, rule_creator_1.createRule)({
|
|
42
57
|
name: path.parse(__filename).name,
|
|
43
58
|
meta: {
|
|
@@ -45,10 +60,11 @@ exports.default = (0, rule_creator_1.createRule)({
|
|
|
45
60
|
docs: {
|
|
46
61
|
description: `signalState should accept a record or dictionary as an input argument.`,
|
|
47
62
|
ngrxModule: 'signals',
|
|
63
|
+
requiresTypeChecking: true,
|
|
48
64
|
},
|
|
49
65
|
schema: [],
|
|
50
66
|
messages: {
|
|
51
|
-
[exports.messageId]: `
|
|
67
|
+
[exports.messageId]: 'The property type `{{ property }}` is forbidden as the initial state argument, wrap the property in a record or dictionary.',
|
|
52
68
|
},
|
|
53
69
|
},
|
|
54
70
|
defaultOptions: [],
|
|
@@ -56,12 +72,53 @@ exports.default = (0, rule_creator_1.createRule)({
|
|
|
56
72
|
return {
|
|
57
73
|
[`CallExpression[callee.name=signalState]`](node) {
|
|
58
74
|
const [argument] = node.arguments;
|
|
59
|
-
if ((0,
|
|
75
|
+
if ((0, utils_2.isArrayExpression)(argument)) {
|
|
60
76
|
context.report({
|
|
61
77
|
node: argument,
|
|
62
78
|
messageId: exports.messageId,
|
|
79
|
+
data: { property: 'Array' },
|
|
63
80
|
});
|
|
64
81
|
}
|
|
82
|
+
else if (argument) {
|
|
83
|
+
const services = utils_1.ESLintUtils.getParserServices(context);
|
|
84
|
+
const typeChecker = services.program.getTypeChecker();
|
|
85
|
+
const type = services.getTypeAtLocation(argument);
|
|
86
|
+
if (typeChecker.isArrayType(type) || typeChecker.isTupleType(type)) {
|
|
87
|
+
context.report({
|
|
88
|
+
node: argument,
|
|
89
|
+
messageId: exports.messageId,
|
|
90
|
+
data: { property: 'Array' },
|
|
91
|
+
});
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const symbol = type.getSymbol();
|
|
95
|
+
if (symbol && NON_RECORD_TYPES.includes(symbol.getName())) {
|
|
96
|
+
context.report({
|
|
97
|
+
node: argument,
|
|
98
|
+
messageId: exports.messageId,
|
|
99
|
+
data: { property: symbol.getName() },
|
|
100
|
+
});
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const callSignatures = type.getCallSignatures();
|
|
104
|
+
if (callSignatures.length > 0) {
|
|
105
|
+
context.report({
|
|
106
|
+
node: argument,
|
|
107
|
+
messageId: exports.messageId,
|
|
108
|
+
data: { property: 'Function' },
|
|
109
|
+
});
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const typeString = typeChecker.typeToString(type);
|
|
113
|
+
const matchedType = NON_RECORD_TYPES.find((t) => typeString.startsWith(`${t}<`));
|
|
114
|
+
if (matchedType) {
|
|
115
|
+
context.report({
|
|
116
|
+
node: argument,
|
|
117
|
+
messageId: exports.messageId,
|
|
118
|
+
data: { property: matchedType },
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
65
122
|
},
|
|
66
123
|
};
|
|
67
124
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-state-no-arrays-at-root-level.js","sourceRoot":"","sources":["../../../../../../modules/eslint-plugin/src/rules/signals/signal-state-no-arrays-at-root-level.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"signal-state-no-arrays-at-root-level.js","sourceRoot":"","sources":["../../../../../../modules/eslint-plugin/src/rules/signals/signal-state-no-arrays-at-root-level.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsE;AACtE,2CAA6B;AAC7B,qDAAgD;AAChD,uCAAgD;AAEnC,QAAA,SAAS,GAAG,gCAAgC,CAAC;AAK1D,MAAM,gBAAgB,GAAG;IACvB,OAAO;IACP,KAAK;IACL,KAAK;IACL,SAAS;IACT,SAAS;IACT,MAAM;IACN,OAAO;IACP,QAAQ;IACR,aAAa;IACb,UAAU;IACV,SAAS;IACT,UAAU;CACX,CAAC;AAEF,kBAAe,IAAA,yBAAU,EAAsB;IAC7C,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI;IACjC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,wEAAwE;YACrF,UAAU,EAAE,SAAS;YACrB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,CAAC,iBAAS,CAAC,EACT,6HAA6H;SAChI;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAClB,OAAO;YACL,CAAC,yCAAyC,CAAC,CACzC,IAA6B;gBAE7B,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;gBAClC,IAAI,IAAA,yBAAiB,EAAC,QAAQ,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAT,iBAAS;wBACT,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;qBAC5B,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,QAAQ,EAAE,CAAC;oBACpB,MAAM,QAAQ,GAAG,mBAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;oBACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBAElD,IAAI,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnE,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,QAAQ;4BACd,SAAS,EAAT,iBAAS;4BACT,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;yBAC5B,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChC,IAAI,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;wBAC1D,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,QAAQ;4BACd,SAAS,EAAT,iBAAS;4BACT,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE;yBACrC,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAChD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,QAAQ;4BACd,SAAS,EAAT,iBAAS;4BACT,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;yBAC/B,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBAED,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAC/B,CAAC;oBACF,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,QAAQ;4BACd,SAAS,EAAT,iBAAS;4BACT,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;yBAChC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC","sourcesContent":["import { ESLintUtils, type TSESTree } from '@typescript-eslint/utils';\nimport * as path from 'path';\nimport { createRule } from '../../rule-creator';\nimport { isArrayExpression } from '../../utils';\n\nexport const messageId = 'signalStateNoArraysAtRootLevel';\n\ntype MessageIds = typeof messageId;\ntype Options = readonly [];\n\nconst NON_RECORD_TYPES = [\n 'Array',\n 'Set',\n 'Map',\n 'WeakSet',\n 'WeakMap',\n 'Date',\n 'Error',\n 'RegExp',\n 'ArrayBuffer',\n 'DataView',\n 'Promise',\n 'Function',\n];\n\nexport default createRule<Options, MessageIds>({\n name: path.parse(__filename).name,\n meta: {\n type: 'problem',\n docs: {\n description: `signalState should accept a record or dictionary as an input argument.`,\n ngrxModule: 'signals',\n requiresTypeChecking: true,\n },\n schema: [],\n messages: {\n [messageId]:\n 'The property type `{{ property }}` is forbidden as the initial state argument, wrap the property in a record or dictionary.',\n },\n },\n defaultOptions: [],\n create: (context) => {\n return {\n [`CallExpression[callee.name=signalState]`](\n node: TSESTree.CallExpression\n ) {\n const [argument] = node.arguments;\n if (isArrayExpression(argument)) {\n context.report({\n node: argument,\n messageId,\n data: { property: 'Array' },\n });\n } else if (argument) {\n const services = ESLintUtils.getParserServices(context);\n const typeChecker = services.program.getTypeChecker();\n const type = services.getTypeAtLocation(argument);\n\n if (typeChecker.isArrayType(type) || typeChecker.isTupleType(type)) {\n context.report({\n node: argument,\n messageId,\n data: { property: 'Array' },\n });\n return;\n }\n\n const symbol = type.getSymbol();\n if (symbol && NON_RECORD_TYPES.includes(symbol.getName())) {\n context.report({\n node: argument,\n messageId,\n data: { property: symbol.getName() },\n });\n return;\n }\n\n const callSignatures = type.getCallSignatures();\n if (callSignatures.length > 0) {\n context.report({\n node: argument,\n messageId,\n data: { property: 'Function' },\n });\n return;\n }\n\n const typeString = typeChecker.typeToString(type);\n const matchedType = NON_RECORD_TYPES.find((t) =>\n typeString.startsWith(`${t}<`)\n );\n if (matchedType) {\n context.report({\n node: argument,\n messageId,\n data: { property: matchedType },\n });\n }\n }\n },\n };\n },\n});\n"]}
|
|
@@ -39,6 +39,20 @@ const path = __importStar(require("path"));
|
|
|
39
39
|
const rule_creator_1 = require("../../rule-creator");
|
|
40
40
|
const utils_2 = require("../../utils");
|
|
41
41
|
exports.messageId = 'withStateNoArraysAtRootLevel';
|
|
42
|
+
const NON_RECORD_TYPES = [
|
|
43
|
+
'Array',
|
|
44
|
+
'Set',
|
|
45
|
+
'Map',
|
|
46
|
+
'WeakSet',
|
|
47
|
+
'WeakMap',
|
|
48
|
+
'Date',
|
|
49
|
+
'Error',
|
|
50
|
+
'RegExp',
|
|
51
|
+
'ArrayBuffer',
|
|
52
|
+
'DataView',
|
|
53
|
+
'Promise',
|
|
54
|
+
'Function',
|
|
55
|
+
];
|
|
42
56
|
exports.default = (0, rule_creator_1.createRule)({
|
|
43
57
|
name: path.parse(__filename).name,
|
|
44
58
|
meta: {
|
|
@@ -50,7 +64,7 @@ exports.default = (0, rule_creator_1.createRule)({
|
|
|
50
64
|
},
|
|
51
65
|
schema: [],
|
|
52
66
|
messages: {
|
|
53
|
-
[exports.messageId]: `
|
|
67
|
+
[exports.messageId]: 'The property type `{{ property }}` is forbidden as the initial state argument, wrap the property in a record or dictionary.',
|
|
54
68
|
},
|
|
55
69
|
},
|
|
56
70
|
defaultOptions: [],
|
|
@@ -62,16 +76,46 @@ exports.default = (0, rule_creator_1.createRule)({
|
|
|
62
76
|
context.report({
|
|
63
77
|
node: argument,
|
|
64
78
|
messageId: exports.messageId,
|
|
79
|
+
data: { property: 'Array' },
|
|
65
80
|
});
|
|
66
81
|
}
|
|
67
82
|
else if (argument) {
|
|
68
83
|
const services = utils_1.ESLintUtils.getParserServices(context);
|
|
69
84
|
const typeChecker = services.program.getTypeChecker();
|
|
70
85
|
const type = services.getTypeAtLocation(argument);
|
|
71
|
-
if (typeChecker.isArrayType(type)) {
|
|
86
|
+
if (typeChecker.isArrayType(type) || typeChecker.isTupleType(type)) {
|
|
72
87
|
context.report({
|
|
73
88
|
node: argument,
|
|
74
89
|
messageId: exports.messageId,
|
|
90
|
+
data: { property: 'Array' },
|
|
91
|
+
});
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const symbol = type.getSymbol();
|
|
95
|
+
if (symbol && NON_RECORD_TYPES.includes(symbol.getName())) {
|
|
96
|
+
context.report({
|
|
97
|
+
node: argument,
|
|
98
|
+
messageId: exports.messageId,
|
|
99
|
+
data: { property: symbol.getName() },
|
|
100
|
+
});
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const callSignatures = type.getCallSignatures();
|
|
104
|
+
if (callSignatures.length > 0) {
|
|
105
|
+
context.report({
|
|
106
|
+
node: argument,
|
|
107
|
+
messageId: exports.messageId,
|
|
108
|
+
data: { property: 'Function' },
|
|
109
|
+
});
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const typeString = typeChecker.typeToString(type);
|
|
113
|
+
const matchedType = NON_RECORD_TYPES.find((t) => typeString.startsWith(`${t}<`));
|
|
114
|
+
if (matchedType) {
|
|
115
|
+
context.report({
|
|
116
|
+
node: argument,
|
|
117
|
+
messageId: exports.messageId,
|
|
118
|
+
data: { property: matchedType },
|
|
75
119
|
});
|
|
76
120
|
}
|
|
77
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-state-no-arrays-at-root-level.js","sourceRoot":"","sources":["../../../../../../modules/eslint-plugin/src/rules/signals/with-state-no-arrays-at-root-level.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsE;AACtE,2CAA6B;AAC7B,qDAAgD;AAChD,uCAAgD;AAEnC,QAAA,SAAS,GAAG,8BAA8B,CAAC;AAKxD,kBAAe,IAAA,yBAAU,EAAsB;IAC7C,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI;IACjC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,sEAAsE;YACnF,UAAU,EAAE,SAAS;YACrB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,CAAC,iBAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"with-state-no-arrays-at-root-level.js","sourceRoot":"","sources":["../../../../../../modules/eslint-plugin/src/rules/signals/with-state-no-arrays-at-root-level.ts"],"names":[],"mappings":"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","sourcesContent":["import { ESLintUtils, type TSESTree } from '@typescript-eslint/utils';\nimport * as path from 'path';\nimport { createRule } from '../../rule-creator';\nimport { isArrayExpression } from '../../utils';\n\nexport const messageId = 'withStateNoArraysAtRootLevel';\n\ntype MessageIds = typeof messageId;\ntype Options = readonly [];\n\nconst NON_RECORD_TYPES = [\n 'Array',\n 'Set',\n 'Map',\n 'WeakSet',\n 'WeakMap',\n 'Date',\n 'Error',\n 'RegExp',\n 'ArrayBuffer',\n 'DataView',\n 'Promise',\n 'Function',\n];\n\nexport default createRule<Options, MessageIds>({\n name: path.parse(__filename).name,\n meta: {\n type: 'problem',\n docs: {\n description: `withState should accept a record or dictionary as an input argument.`,\n ngrxModule: 'signals',\n requiresTypeChecking: true,\n },\n schema: [],\n messages: {\n [messageId]:\n 'The property type `{{ property }}` is forbidden as the initial state argument, wrap the property in a record or dictionary.',\n },\n },\n defaultOptions: [],\n create: (context) => {\n return {\n [`CallExpression[callee.name=withState]`](node: TSESTree.CallExpression) {\n const [argument] = node.arguments;\n if (isArrayExpression(argument)) {\n context.report({\n node: argument,\n messageId,\n data: { property: 'Array' },\n });\n } else if (argument) {\n const services = ESLintUtils.getParserServices(context);\n const typeChecker = services.program.getTypeChecker();\n const type = services.getTypeAtLocation(argument);\n\n if (typeChecker.isArrayType(type) || typeChecker.isTupleType(type)) {\n context.report({\n node: argument,\n messageId,\n data: { property: 'Array' },\n });\n return;\n }\n\n const symbol = type.getSymbol();\n if (symbol && NON_RECORD_TYPES.includes(symbol.getName())) {\n context.report({\n node: argument,\n messageId,\n data: { property: symbol.getName() },\n });\n return;\n }\n\n const callSignatures = type.getCallSignatures();\n if (callSignatures.length > 0) {\n context.report({\n node: argument,\n messageId,\n data: { property: 'Function' },\n });\n return;\n }\n\n const typeString = typeChecker.typeToString(type);\n const matchedType = NON_RECORD_TYPES.find((t) =>\n typeString.startsWith(`${t}<`)\n );\n if (matchedType) {\n context.report({\n node: argument,\n messageId,\n data: { property: matchedType },\n });\n }\n }\n },\n };\n },\n});\n"]}
|
package/v9/index.js
CHANGED
|
@@ -8,14 +8,14 @@ const typescript_eslint_1 = require("typescript-eslint");
|
|
|
8
8
|
const rules_1 = require("../src/rules");
|
|
9
9
|
const package_json_1 = require("../package.json");
|
|
10
10
|
const all_1 = __importDefault(require("../src/configs/all"));
|
|
11
|
+
const all_type_checked_1 = __importDefault(require("../src/configs/all-type-checked"));
|
|
11
12
|
const store_1 = __importDefault(require("../src/configs/store"));
|
|
12
13
|
const effects_1 = __importDefault(require("../src/configs/effects"));
|
|
14
|
+
const effects_type_checked_1 = __importDefault(require("../src/configs/effects-type-checked"));
|
|
13
15
|
const component_store_1 = __importDefault(require("../src/configs/component-store"));
|
|
14
16
|
const operators_1 = __importDefault(require("../src/configs/operators"));
|
|
15
17
|
const signals_1 = __importDefault(require("../src/configs/signals"));
|
|
16
|
-
const
|
|
17
|
-
const effectsTypeChecked_1 = __importDefault(require("../src/configs/effectsTypeChecked"));
|
|
18
|
-
const signalsTypeChecked_1 = __importDefault(require("../src/configs/signalsTypeChecked"));
|
|
18
|
+
const signals_type_checked_1 = __importDefault(require("../src/configs/signals-type-checked"));
|
|
19
19
|
const meta = { name: package_json_1.name, version: package_json_1.version };
|
|
20
20
|
exports.meta = meta;
|
|
21
21
|
const tsPlugin = {
|
|
@@ -23,14 +23,14 @@ const tsPlugin = {
|
|
|
23
23
|
};
|
|
24
24
|
const configs = {
|
|
25
25
|
all: (0, all_1.default)(tsPlugin, typescript_eslint_1.parser),
|
|
26
|
-
allTypeChecked: (0,
|
|
26
|
+
allTypeChecked: (0, all_type_checked_1.default)(tsPlugin, typescript_eslint_1.parser),
|
|
27
27
|
store: (0, store_1.default)(tsPlugin, typescript_eslint_1.parser),
|
|
28
28
|
effects: (0, effects_1.default)(tsPlugin, typescript_eslint_1.parser),
|
|
29
|
-
effectsTypeChecked: (0,
|
|
29
|
+
effectsTypeChecked: (0, effects_type_checked_1.default)(tsPlugin, typescript_eslint_1.parser),
|
|
30
30
|
componentStore: (0, component_store_1.default)(tsPlugin, typescript_eslint_1.parser),
|
|
31
31
|
operators: (0, operators_1.default)(tsPlugin, typescript_eslint_1.parser),
|
|
32
32
|
signals: (0, signals_1.default)(tsPlugin, typescript_eslint_1.parser),
|
|
33
|
-
signalsTypeChecked: (0,
|
|
33
|
+
signalsTypeChecked: (0, signals_type_checked_1.default)(tsPlugin, typescript_eslint_1.parser),
|
|
34
34
|
};
|
|
35
35
|
exports.configs = configs;
|
|
36
36
|
/*
|
package/v9/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/eslint-plugin/v9/index.ts"],"names":[],"mappings":";;;;;;AACA,yDAA2C;AAC3C,wCAAqC;AACrC,kDAGyB;AACzB,6DAAqC;AACrC,iEAAyC;AACzC,qEAA6C;AAC7C,qFAA4D;AAC5D,yEAAiD;AACjD,qEAA6C;AAC7C
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/eslint-plugin/v9/index.ts"],"names":[],"mappings":";;;;;;AACA,yDAA2C;AAC3C,wCAAqC;AACrC,kDAGyB;AACzB,6DAAqC;AACrC,uFAA6D;AAC7D,iEAAyC;AACzC,qEAA6C;AAC7C,+FAAqE;AACrE,qFAA4D;AAC5D,yEAAiD;AACjD,qEAA6C;AAC7C,+FAAqE;AAErE,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,mBAAW,EAAE,OAAO,EAAE,sBAAc,EAAE,CAAC;AA0BnD,oBAAI;AAxBb,MAAM,QAAQ,GAA+B;IAC3C,KAAK,EAAL,aAAK;CACN,CAAC;AAEF,MAAM,OAAO,GAAG;IACd,GAAG,EAAE,IAAA,aAAG,EAAC,QAAQ,EAAE,0BAAM,CAAC;IAC1B,cAAc,EAAE,IAAA,0BAAc,EAAC,QAAQ,EAAE,0BAAM,CAAC;IAChD,KAAK,EAAE,IAAA,eAAK,EAAC,QAAQ,EAAE,0BAAM,CAAC;IAC9B,OAAO,EAAE,IAAA,iBAAO,EAAC,QAAQ,EAAE,0BAAM,CAAC;IAClC,kBAAkB,EAAE,IAAA,8BAAkB,EAAC,QAAQ,EAAE,0BAAM,CAAC;IACxD,cAAc,EAAE,IAAA,yBAAc,EAAC,QAAQ,EAAE,0BAAM,CAAC;IAChD,SAAS,EAAE,IAAA,mBAAS,EAAC,QAAQ,EAAE,0BAAM,CAAC;IACtC,OAAO,EAAE,IAAA,iBAAO,EAAC,QAAQ,EAAE,0BAAM,CAAC;IAClC,kBAAkB,EAAE,IAAA,8BAAkB,EAAC,QAAQ,EAAE,0BAAM,CAAC;CACzD,CAAC;AAUa,0BAAO;AARtB;;;EAGE;AACF,kBAAe;IACb,IAAI;IACJ,OAAO;CACR,CAAC","sourcesContent":["import { TSESLint } from '@typescript-eslint/utils';\nimport { parser } from 'typescript-eslint';\nimport { rules } from '../src/rules';\nimport {\n name as packageName,\n version as packageVersion,\n} from '../package.json';\nimport all from '../src/configs/all';\nimport allTypeChecked from '../src/configs/all-type-checked';\nimport store from '../src/configs/store';\nimport effects from '../src/configs/effects';\nimport effectsTypeChecked from '../src/configs/effects-type-checked';\nimport componentStore from '../src/configs/component-store';\nimport operators from '../src/configs/operators';\nimport signals from '../src/configs/signals';\nimport signalsTypeChecked from '../src/configs/signals-type-checked';\n\nconst meta = { name: packageName, version: packageVersion };\n\nconst tsPlugin: TSESLint.FlatConfig.Plugin = {\n rules,\n};\n\nconst configs = {\n all: all(tsPlugin, parser),\n allTypeChecked: allTypeChecked(tsPlugin, parser),\n store: store(tsPlugin, parser),\n effects: effects(tsPlugin, parser),\n effectsTypeChecked: effectsTypeChecked(tsPlugin, parser),\n componentStore: componentStore(tsPlugin, parser),\n operators: operators(tsPlugin, parser),\n signals: signals(tsPlugin, parser),\n signalsTypeChecked: signalsTypeChecked(tsPlugin, parser),\n};\n\n/*\nAs the angular-eslint plugin we do both a default and named exports to allow people to use this package from\nboth CJS and ESM in very natural ways.\n*/\nexport default {\n meta,\n configs,\n};\nexport { meta, configs };\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"allTypeChecked.js","sourceRoot":"","sources":["../../../../../modules/eslint-plugin/src/configs/allTypeChecked.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,kBAAe,CACb,MAAkC,EAClC,MAAkC,EACD,EAAE,CAAC;IACpC;QACE,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE;YACf,MAAM;SACP;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;SAChB;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,eAAe,EAAE;YACf,MAAM;SACP;QACD,KAAK,EAAE;YACL,iDAAiD,EAAE,OAAO;YAC1D,+CAA+C,EAAE,OAAO;YACxD,+BAA+B,EAAE,OAAO;YACxC,oCAAoC,EAAE,OAAO;YAC7C,4BAA4B,EAAE,OAAO;YACrC,8BAA8B,EAAE,OAAO;YACvC,+BAA+B,EAAE,OAAO;YACxC,sCAAsC,EAAE,OAAO;YAC/C,wCAAwC,EAAE,OAAO;YACjD,iDAAiD,EAAE,OAAO;YAC1D,uCAAuC,EAAE,OAAO;YAChD,iCAAiC,EAAE,OAAO;YAC1C,yBAAyB,EAAE,OAAO;YAClC,8BAA8B,EAAE,OAAO;YACvC,4CAA4C,EAAE,OAAO;YACrD,oDAAoD,EAAE,OAAO;YAC7D,0CAA0C,EAAE,OAAO;YACnD,iCAAiC,EAAE,OAAO;YAC1C,uDAAuD,EAAE,OAAO;YAChE,0CAA0C,EAAE,OAAO;YACnD,+BAA+B,EAAE,OAAO;YACxC,2BAA2B,EAAE,OAAO;YACpC,iCAAiC,EAAE,OAAO;YAC1C,+BAA+B,EAAE,OAAO;YACxC,6BAA6B,EAAE,OAAO;YACtC,6BAA6B,EAAE,OAAO;YACtC,wCAAwC,EAAE,OAAO;YACjD,yCAAyC,EAAE,OAAO;YAClD,6BAA6B,EAAE,OAAO;YACtC,kCAAkC,EAAE,OAAO;YAC3C,yDAAyD,EAAE,OAAO;YAClE,iCAAiC,EAAE,OAAO;YAC1C,oCAAoC,EAAE,OAAO;YAC7C,oBAAoB,EAAE,OAAO;YAC7B,wCAAwC,EAAE,OAAO;SAClD;KACF;CACF,CAAC","sourcesContent":["/**\n * DO NOT EDIT\n * This file is generated\n */\n\nimport type { TSESLint } from '@typescript-eslint/utils';\n\nexport default (\n plugin: TSESLint.FlatConfig.Plugin,\n parser: TSESLint.FlatConfig.Parser\n): TSESLint.FlatConfig.ConfigArray => [\n {\n name: 'ngrx/base',\n languageOptions: {\n parser,\n },\n plugins: {\n '@ngrx': plugin,\n },\n },\n {\n name: 'ngrx/allTypeChecked',\n languageOptions: {\n parser,\n },\n rules: {\n '@ngrx/avoid-combining-component-store-selectors': 'error',\n '@ngrx/avoid-mapping-component-store-selectors': 'error',\n '@ngrx/require-super-ondestroy': 'error',\n '@ngrx/updater-explicit-return-type': 'error',\n '@ngrx/avoid-cyclic-effects': 'error',\n '@ngrx/no-dispatch-in-effects': 'error',\n '@ngrx/no-effects-in-providers': 'error',\n '@ngrx/no-multiple-actions-in-effects': 'error',\n '@ngrx/prefer-action-creator-in-of-type': 'error',\n '@ngrx/prefer-effect-callback-in-block-statement': 'error',\n '@ngrx/use-effects-lifecycle-interface': 'error',\n '@ngrx/prefer-concat-latest-from': 'error',\n '@ngrx/enforce-type-call': 'error',\n '@ngrx/prefer-protected-state': 'error',\n '@ngrx/signal-state-no-arrays-at-root-level': 'error',\n '@ngrx/signal-store-feature-should-use-generic-type': 'error',\n '@ngrx/with-state-no-arrays-at-root-level': 'error',\n '@ngrx/avoid-combining-selectors': 'error',\n '@ngrx/avoid-dispatching-multiple-actions-sequentially': 'error',\n '@ngrx/avoid-duplicate-actions-in-reducer': 'error',\n '@ngrx/avoid-mapping-selectors': 'error',\n '@ngrx/good-action-hygiene': 'error',\n '@ngrx/no-multiple-global-stores': 'error',\n '@ngrx/no-reducer-in-key-names': 'error',\n '@ngrx/no-store-subscription': 'error',\n '@ngrx/no-typed-global-store': 'error',\n '@ngrx/on-function-explicit-return-type': 'error',\n '@ngrx/prefer-action-creator-in-dispatch': 'error',\n '@ngrx/prefer-action-creator': 'error',\n '@ngrx/prefer-inline-action-props': 'error',\n '@ngrx/prefer-one-generic-in-create-for-feature-selector': 'error',\n '@ngrx/prefer-selector-in-select': 'error',\n '@ngrx/prefix-selectors-with-select': 'error',\n '@ngrx/select-style': 'error',\n '@ngrx/use-consistent-global-store-name': 'error',\n },\n },\n];\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"effectsTypeChecked.js","sourceRoot":"","sources":["../../../../../modules/eslint-plugin/src/configs/effectsTypeChecked.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,kBAAe,CACb,MAAkC,EAClC,MAAkC,EACD,EAAE,CAAC;IACpC;QACE,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE;YACf,MAAM;SACP;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;SAChB;KACF;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,eAAe,EAAE;YACf,MAAM;SACP;QACD,KAAK,EAAE;YACL,4BAA4B,EAAE,OAAO;YACrC,8BAA8B,EAAE,OAAO;YACvC,+BAA+B,EAAE,OAAO;YACxC,sCAAsC,EAAE,OAAO;YAC/C,wCAAwC,EAAE,OAAO;YACjD,iDAAiD,EAAE,OAAO;YAC1D,uCAAuC,EAAE,OAAO;SACjD;KACF;CACF,CAAC","sourcesContent":["/**\n * DO NOT EDIT\n * This file is generated\n */\n\nimport type { TSESLint } from '@typescript-eslint/utils';\n\nexport default (\n plugin: TSESLint.FlatConfig.Plugin,\n parser: TSESLint.FlatConfig.Parser\n): TSESLint.FlatConfig.ConfigArray => [\n {\n name: 'ngrx/base',\n languageOptions: {\n parser,\n },\n plugins: {\n '@ngrx': plugin,\n },\n },\n {\n name: 'ngrx/effectsTypeChecked',\n languageOptions: {\n parser,\n },\n rules: {\n '@ngrx/avoid-cyclic-effects': 'error',\n '@ngrx/no-dispatch-in-effects': 'error',\n '@ngrx/no-effects-in-providers': 'error',\n '@ngrx/no-multiple-actions-in-effects': 'error',\n '@ngrx/prefer-action-creator-in-of-type': 'error',\n '@ngrx/prefer-effect-callback-in-block-statement': 'error',\n '@ngrx/use-effects-lifecycle-interface': 'error',\n },\n },\n];\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signalsTypeChecked.js","sourceRoot":"","sources":["../../../../../modules/eslint-plugin/src/configs/signalsTypeChecked.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,kBAAe,CACb,MAAkC,EAClC,MAAkC,EACD,EAAE,CAAC;IACpC;QACE,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE;YACf,MAAM;SACP;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;SAChB;KACF;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,eAAe,EAAE;YACf,MAAM;SACP;QACD,KAAK,EAAE;YACL,yBAAyB,EAAE,OAAO;YAClC,8BAA8B,EAAE,OAAO;YACvC,4CAA4C,EAAE,OAAO;YACrD,oDAAoD,EAAE,OAAO;YAC7D,0CAA0C,EAAE,OAAO;SACpD;KACF;CACF,CAAC","sourcesContent":["/**\n * DO NOT EDIT\n * This file is generated\n */\n\nimport type { TSESLint } from '@typescript-eslint/utils';\n\nexport default (\n plugin: TSESLint.FlatConfig.Plugin,\n parser: TSESLint.FlatConfig.Parser\n): TSESLint.FlatConfig.ConfigArray => [\n {\n name: 'ngrx/base',\n languageOptions: {\n parser,\n },\n plugins: {\n '@ngrx': plugin,\n },\n },\n {\n name: 'ngrx/signalsTypeChecked',\n languageOptions: {\n parser,\n },\n rules: {\n '@ngrx/enforce-type-call': 'error',\n '@ngrx/prefer-protected-state': 'error',\n '@ngrx/signal-state-no-arrays-at-root-level': 'error',\n '@ngrx/signal-store-feature-should-use-generic-type': 'error',\n '@ngrx/with-state-no-arrays-at-root-level': 'error',\n },\n },\n];\n"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|