@nordcraft/search 1.0.48 → 1.0.49

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.
@@ -6,6 +6,7 @@ import { noReferenceProjectActionRule } from './rules/actions/noReferenceProject
6
6
  import { unknownProjectActionRule } from './rules/actions/unknownProjectActionRule';
7
7
  import { legacyApiRule } from './rules/apis/legacyApiRule';
8
8
  import { noReferenceApiRule } from './rules/apis/noReferenceApiRule';
9
+ import { noReferenceApiServiceRule } from './rules/apis/noReferenceApiServiceRule';
9
10
  import { unknownApiInputRule } from './rules/apis/unknownApiInputRule';
10
11
  import { unknownApiRule } from './rules/apis/unknownApiRule';
11
12
  import { noReferenceAttributeRule } from './rules/attributes/noReferenceAttributeRule';
@@ -106,6 +107,7 @@ const RULES = [
106
107
  nonEmptyVoidElementRule,
107
108
  noPostNavigateAction,
108
109
  noReferenceApiRule,
110
+ noReferenceApiServiceRule,
109
111
  noReferenceAttributeRule,
110
112
  noReferenceComponentFormulaRule,
111
113
  noReferenceComponentRule,
@@ -1 +1 @@
1
- {"version":3,"file":"problems.worker.js","sourceRoot":"","sources":["../src/problems.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"problems.worker.js","sourceRoot":"","sources":["../src/problems.worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { isLegacyApi } from '@nordcraft/core/dist/api/api';
2
+ import { removeFromPathFix } from '../../util/removeUnused.fix';
3
+ export const noReferenceApiServiceRule = {
4
+ code: 'no-reference api service',
5
+ level: 'warning',
6
+ category: 'No References',
7
+ visit: (report, args) => {
8
+ if (args.nodeType !== 'api-service') {
9
+ return;
10
+ }
11
+ const { value, memo, path } = args;
12
+ const serviceName = path.at(-1);
13
+ if (typeof serviceName !== 'string') {
14
+ return;
15
+ }
16
+ const apiServiceReferences = memo(`apiServiceReferences`, () => {
17
+ const usedServices = new Set();
18
+ Object.values(args.files.components).forEach((component) => {
19
+ if (!component) {
20
+ return;
21
+ }
22
+ Object.values(component.apis).forEach((api) => {
23
+ if (!isLegacyApi(api) && typeof api.service === 'string') {
24
+ usedServices.add(api.service);
25
+ }
26
+ });
27
+ });
28
+ return usedServices;
29
+ });
30
+ if (apiServiceReferences.has(value.name)) {
31
+ return;
32
+ }
33
+ report(args.path, { serviceName }, ['delete-api-service']);
34
+ },
35
+ fixes: {
36
+ 'delete-api-service': removeFromPathFix,
37
+ },
38
+ };
39
+ //# sourceMappingURL=noReferenceApiServiceRule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noReferenceApiServiceRule.js","sourceRoot":"","sources":["../../../src/rules/apis/noReferenceApiServiceRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAE/D,MAAM,CAAC,MAAM,yBAAyB,GAAkC;IACtE,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YACpC,OAAM;QACR,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAM;QACR,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC7D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;YACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBACzD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAM;gBACR,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;wBACzD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBAC/B,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,OAAO,YAAY,CAAA;QACrB,CAAC,CAAC,CAAA;QACF,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,OAAM;QACR,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC5D,CAAC;IACD,KAAK,EAAE;QACL,oBAAoB,EAAE,iBAAiB;KACxC;CACF,CAAA"}
@@ -0,0 +1,98 @@
1
+ import { valueFormula } from '@nordcraft/core/dist/formula/formulaUtils';
2
+ import { describe, expect, test } from 'bun:test';
3
+ import { fixProject } from '../../fixProject';
4
+ import { searchProject } from '../../searchProject';
5
+ import { noReferenceApiServiceRule } from './noReferenceApiServiceRule';
6
+ describe('find noReferenceApiServiceRule', () => {
7
+ test('should detect API services with no references', () => {
8
+ const problems = Array.from(searchProject({
9
+ files: {
10
+ formulas: {},
11
+ services: {
12
+ 'unused-service': {
13
+ name: 'my-service',
14
+ type: 'supabase',
15
+ meta: {},
16
+ },
17
+ 'used-service': {
18
+ name: 'used-service',
19
+ type: 'supabase',
20
+ meta: {},
21
+ },
22
+ },
23
+ components: {
24
+ apiComponent: {
25
+ name: 'test',
26
+ nodes: {},
27
+ formulas: {},
28
+ apis: {
29
+ 'my-api': {
30
+ name: 'my-api',
31
+ type: 'http',
32
+ version: 2,
33
+ autoFetch: valueFormula(true),
34
+ inputs: {},
35
+ service: 'used-service',
36
+ },
37
+ },
38
+ attributes: {},
39
+ variables: {},
40
+ },
41
+ },
42
+ },
43
+ rules: [noReferenceApiServiceRule],
44
+ }));
45
+ expect(problems).toHaveLength(1);
46
+ expect(problems[0].code).toBe('no-reference api service');
47
+ expect(problems[0].path).toEqual(['services', 'unused-service']);
48
+ });
49
+ });
50
+ describe('fix noReferenceApiServiceRule', () => {
51
+ test('should remove unused API services', () => {
52
+ const project = {
53
+ formulas: {},
54
+ services: {
55
+ 'unused-service': {
56
+ name: 'my-service',
57
+ type: 'supabase',
58
+ meta: {},
59
+ },
60
+ 'used-service': {
61
+ name: 'used-service',
62
+ type: 'supabase',
63
+ meta: {},
64
+ },
65
+ },
66
+ components: {
67
+ apiComponent: {
68
+ name: 'test',
69
+ nodes: {},
70
+ formulas: {},
71
+ apis: {
72
+ 'my-api': {
73
+ name: 'my-api',
74
+ type: 'http',
75
+ version: 2,
76
+ autoFetch: valueFormula(true),
77
+ inputs: {},
78
+ service: 'used-service',
79
+ },
80
+ },
81
+ onLoad: {
82
+ trigger: 'onLoad',
83
+ actions: [],
84
+ },
85
+ attributes: {},
86
+ variables: {},
87
+ },
88
+ },
89
+ };
90
+ const fixedProject = fixProject({
91
+ files: project,
92
+ rule: noReferenceApiServiceRule,
93
+ fixType: 'delete-api-service',
94
+ });
95
+ expect(Object.keys(fixedProject.services)).toHaveLength(1);
96
+ });
97
+ });
98
+ //# sourceMappingURL=noReferenceApiServiceRule.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noReferenceApiServiceRule.test.js","sourceRoot":"","sources":["../../../src/rules/apis/noReferenceApiServiceRule.test.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export const removeNodeFromPathFix = (data) => {
9
9
  }
10
10
  const componentNodesPath = data.path.map(String);
11
11
  const nodeId = componentNodesPath.pop();
12
- const nodes = get(data.files, componentNodesPath);
12
+ const nodes = { ...get(data.files, componentNodesPath) };
13
13
  // Clean parent reference
14
14
  for (const key in nodes) {
15
15
  if (nodes[key].children?.includes(nodeId)) {
@@ -1 +1 @@
1
- {"version":3,"file":"removeUnused.fix.js","sourceRoot":"","sources":["../../src/util/removeUnused.fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,wCAAwC,CAAA;AAGvE,MAAM,CAAC,MAAM,iBAAiB,GAA0B,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1E,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAEnB;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0B,CAAC,IAAI,EAAE,EAAE;IACnE,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAC9E,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAG,CAAA;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAA8B,CAAA;IAE9E,yBAAyB;IACzB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAA0B,CAAA;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,qBAAqB,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAE7B,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC,CAAA"}
1
+ {"version":3,"file":"removeUnused.fix.js","sourceRoot":"","sources":["../../src/util/removeUnused.fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,wCAAwC,CAAA;AAGvE,MAAM,CAAC,MAAM,iBAAiB,GAA0B,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1E,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAEnB;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0B,CAAC,IAAI,EAAE,EAAE;IACnE,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAC9E,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAG,CAAA;IACxC,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAGrD,CAAA;IAED,yBAAyB;IACzB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAA0B,CAAA;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,qBAAqB,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAE7B,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC,CAAA"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/nordcraftengine/nordcraft",
7
7
  "dependencies": {
8
- "@nordcraft/ssr": "1.0.48",
8
+ "@nordcraft/ssr": "1.0.49",
9
9
  "jsondiffpatch": "0.7.3",
10
10
  "postcss": "8.5.6"
11
11
  },
@@ -19,5 +19,5 @@
19
19
  "test:watch:only": "bun test --watch --only"
20
20
  },
21
21
  "files": ["dist", "src"],
22
- "version": "1.0.48"
22
+ "version": "1.0.49"
23
23
  }
@@ -8,6 +8,7 @@ import { noReferenceProjectActionRule } from './rules/actions/noReferenceProject
8
8
  import { unknownProjectActionRule } from './rules/actions/unknownProjectActionRule'
9
9
  import { legacyApiRule } from './rules/apis/legacyApiRule'
10
10
  import { noReferenceApiRule } from './rules/apis/noReferenceApiRule'
11
+ import { noReferenceApiServiceRule } from './rules/apis/noReferenceApiServiceRule'
11
12
  import { unknownApiInputRule } from './rules/apis/unknownApiInputRule'
12
13
  import { unknownApiRule } from './rules/apis/unknownApiRule'
13
14
  import { noReferenceAttributeRule } from './rules/attributes/noReferenceAttributeRule'
@@ -155,6 +156,7 @@ const RULES = [
155
156
  nonEmptyVoidElementRule,
156
157
  noPostNavigateAction,
157
158
  noReferenceApiRule,
159
+ noReferenceApiServiceRule,
158
160
  noReferenceAttributeRule,
159
161
  noReferenceComponentFormulaRule,
160
162
  noReferenceComponentRule,
@@ -0,0 +1,103 @@
1
+ import { valueFormula } from '@nordcraft/core/dist/formula/formulaUtils'
2
+ import type { ProjectFiles } from '@nordcraft/ssr/dist/ssr.types'
3
+ import { describe, expect, test } from 'bun:test'
4
+ import { fixProject } from '../../fixProject'
5
+ import { searchProject } from '../../searchProject'
6
+ import { noReferenceApiServiceRule } from './noReferenceApiServiceRule'
7
+
8
+ describe('find noReferenceApiServiceRule', () => {
9
+ test('should detect API services with no references', () => {
10
+ const problems = Array.from(
11
+ searchProject({
12
+ files: {
13
+ formulas: {},
14
+ services: {
15
+ 'unused-service': {
16
+ name: 'my-service',
17
+ type: 'supabase',
18
+ meta: {},
19
+ },
20
+ 'used-service': {
21
+ name: 'used-service',
22
+ type: 'supabase',
23
+ meta: {},
24
+ },
25
+ },
26
+ components: {
27
+ apiComponent: {
28
+ name: 'test',
29
+ nodes: {},
30
+ formulas: {},
31
+ apis: {
32
+ 'my-api': {
33
+ name: 'my-api',
34
+ type: 'http',
35
+ version: 2,
36
+ autoFetch: valueFormula(true),
37
+ inputs: {},
38
+ service: 'used-service',
39
+ },
40
+ },
41
+ attributes: {},
42
+ variables: {},
43
+ },
44
+ },
45
+ },
46
+ rules: [noReferenceApiServiceRule],
47
+ }),
48
+ )
49
+
50
+ expect(problems).toHaveLength(1)
51
+ expect(problems[0].code).toBe('no-reference api service')
52
+ expect(problems[0].path).toEqual(['services', 'unused-service'])
53
+ })
54
+ })
55
+
56
+ describe('fix noReferenceApiServiceRule', () => {
57
+ test('should remove unused API services', () => {
58
+ const project: ProjectFiles = {
59
+ formulas: {},
60
+ services: {
61
+ 'unused-service': {
62
+ name: 'my-service',
63
+ type: 'supabase',
64
+ meta: {},
65
+ },
66
+ 'used-service': {
67
+ name: 'used-service',
68
+ type: 'supabase',
69
+ meta: {},
70
+ },
71
+ },
72
+ components: {
73
+ apiComponent: {
74
+ name: 'test',
75
+ nodes: {},
76
+ formulas: {},
77
+ apis: {
78
+ 'my-api': {
79
+ name: 'my-api',
80
+ type: 'http',
81
+ version: 2,
82
+ autoFetch: valueFormula(true),
83
+ inputs: {},
84
+ service: 'used-service',
85
+ },
86
+ },
87
+ onLoad: {
88
+ trigger: 'onLoad',
89
+ actions: [],
90
+ },
91
+ attributes: {},
92
+ variables: {},
93
+ },
94
+ },
95
+ }
96
+ const fixedProject = fixProject({
97
+ files: project,
98
+ rule: noReferenceApiServiceRule,
99
+ fixType: 'delete-api-service',
100
+ })
101
+ expect(Object.keys(fixedProject.services!)).toHaveLength(1)
102
+ })
103
+ })
@@ -0,0 +1,43 @@
1
+ import { isLegacyApi } from '@nordcraft/core/dist/api/api'
2
+ import type { Rule } from '../../types'
3
+ import { removeFromPathFix } from '../../util/removeUnused.fix'
4
+
5
+ export const noReferenceApiServiceRule: Rule<{ serviceName: string }> = {
6
+ code: 'no-reference api service',
7
+ level: 'warning',
8
+ category: 'No References',
9
+ visit: (report, args) => {
10
+ if (args.nodeType !== 'api-service') {
11
+ return
12
+ }
13
+ const { value, memo, path } = args
14
+ const serviceName = path.at(-1)
15
+ if (typeof serviceName !== 'string') {
16
+ return
17
+ }
18
+
19
+ const apiServiceReferences = memo(`apiServiceReferences`, () => {
20
+ const usedServices = new Set<string>()
21
+ Object.values(args.files.components).forEach((component) => {
22
+ if (!component) {
23
+ return
24
+ }
25
+ Object.values(component.apis).forEach((api) => {
26
+ if (!isLegacyApi(api) && typeof api.service === 'string') {
27
+ usedServices.add(api.service)
28
+ }
29
+ })
30
+ })
31
+ return usedServices
32
+ })
33
+ if (apiServiceReferences.has(value.name)) {
34
+ return
35
+ }
36
+ report(args.path, { serviceName }, ['delete-api-service'])
37
+ },
38
+ fixes: {
39
+ 'delete-api-service': removeFromPathFix,
40
+ },
41
+ }
42
+
43
+ export type NoReferenceApiServiceRuleFix = 'delete-api-service'
package/src/types.d.ts CHANGED
@@ -25,6 +25,7 @@ import type {
25
25
  import type { LegacyActionRuleFix } from './rules/actions/legacyActionRule'
26
26
  import type { NoReferenceProjectActionRuleFix } from './rules/actions/noReferenceProjectActionRule'
27
27
  import type { NoReferenceApiRuleFix } from './rules/apis/noReferenceApiRule'
28
+ import type { NoReferenceApiServiceRuleFix } from './rules/apis/noReferenceApiServiceRule'
28
29
  import type { NoReferenceAttributeRuleFix } from './rules/attributes/noReferenceAttributeRule'
29
30
  import type { UnknownComponentAttributeRuleFix } from './rules/attributes/unknownComponentAttributeRule'
30
31
  import type { NoReferenceComponentRuleFix } from './rules/components/noReferenceComponentRule'
@@ -54,6 +55,7 @@ type Code =
54
55
  | 'no-console'
55
56
  | 'no-reference api input'
56
57
  | 'no-reference api'
58
+ | 'no-reference api service'
57
59
  | 'no-reference attribute'
58
60
  | 'no-reference component formula'
59
61
  | 'no-reference component workflow'
@@ -355,6 +357,7 @@ type FixType =
355
357
  | NoReferenceProjectFormulaRuleFix
356
358
  | NoReferenceProjectActionRuleFix
357
359
  | NoReferenceApiRuleFix
360
+ | NoReferenceApiServiceRuleFix
358
361
  | NoReferenceAttributeRuleFix
359
362
  | NoReferenceEventRuleFix
360
363
  | NoReferenceComponentFormulaRuleFix
@@ -15,7 +15,10 @@ export const removeNodeFromPathFix: FixFunction<NodeType> = (data) => {
15
15
 
16
16
  const componentNodesPath = data.path.map(String)
17
17
  const nodeId = componentNodesPath.pop()!
18
- const nodes = get(data.files, componentNodesPath) as Record<string, NodeModel>
18
+ const nodes = { ...get(data.files, componentNodesPath) } as Record<
19
+ string,
20
+ NodeModel
21
+ >
19
22
 
20
23
  // Clean parent reference
21
24
  for (const key in nodes) {