@servicenow/sdk-build-plugins 2.2.3 → 2.2.5

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.
@@ -31,6 +31,11 @@ declare const _default: {
31
31
  };
32
32
  elements: {}[];
33
33
  table: any;
34
+ parent: any;
35
+ relationship: {
36
+ id: any;
37
+ name: any;
38
+ };
34
39
  }> | undefined;
35
40
  };
36
41
  readonly composers: {
@@ -44,6 +49,8 @@ declare const _default: {
44
49
  table: string;
45
50
  view: View;
46
51
  elements: unknown[];
52
+ parent: string | undefined;
53
+ relationship: string;
47
54
  };
48
55
  };
49
56
  };
@@ -57,6 +64,8 @@ declare const _default: {
57
64
  table: string;
58
65
  view: View;
59
66
  elements: SysUIListElementXml;
67
+ parent: string | number | boolean | PrimitiveData | PrimitiveData[] | undefined;
68
+ relationship: string | number | boolean | PrimitiveData | PrimitiveData[] | undefined;
60
69
  };
61
70
  };
62
71
  };
@@ -71,6 +71,11 @@ exports.default = (0, sdk_build_core_1.Plugin)({
71
71
  view,
72
72
  elements,
73
73
  table: list['name'],
74
+ parent: list['parent'],
75
+ relationship: {
76
+ id: list['relationship'],
77
+ name: sys_ui_list['relationship']?.['@_display_value'],
78
+ },
74
79
  }, xml.filePath, 'list', isDelete ? 'DELETE' : list['@_action']);
75
80
  },
76
81
  },
@@ -81,17 +86,24 @@ exports.default = (0, sdk_build_core_1.Plugin)({
81
86
  const guid = entity.getGuid();
82
87
  const view = entity.getProperty('view').getValue();
83
88
  const table = entity.getPropertyOrThrow('table', 'string').getValue();
89
+ const parent = entity.getProperty('parent', 'string')?.getValue();
90
+ const relationship = entity.getProperty('relationship');
91
+ const relationshipId = sdk_build_core_1.Data.isEntity(relationship)
92
+ ? relationship?.getGuid()
93
+ : relationship?.getValue();
84
94
  const columns = entity.getPropertyOrThrow('columns', 'array').getValue();
85
95
  const viewInfo = composeView(view, context);
86
96
  return {
87
97
  kind: 'list',
88
98
  node,
89
- guid: getListUpdateName(viewInfo, table),
99
+ guid: getListUpdateName(viewInfo, table, parent, relationshipId),
90
100
  data: {
91
101
  id: guid,
92
102
  table,
93
103
  view: viewInfo,
94
104
  elements: columns,
105
+ parent,
106
+ relationship: relationshipId,
95
107
  },
96
108
  };
97
109
  },
@@ -108,6 +120,8 @@ exports.default = (0, sdk_build_core_1.Plugin)({
108
120
  table,
109
121
  view,
110
122
  elements,
123
+ parent: xml.data['parent'],
124
+ relationship: xml.data['relationship'],
111
125
  },
112
126
  };
113
127
  },
@@ -131,7 +145,7 @@ exports.default = (0, sdk_build_core_1.Plugin)({
131
145
  if (!sdk_project_1.ts.Node.isObjectLiteralExpression(listArgument)) {
132
146
  return false;
133
147
  }
134
- const { elements, view, table } = document.xmlData;
148
+ const { elements, view, table, parent, relationship } = document.xmlData;
135
149
  updateView(context, listArgument, view);
136
150
  //create the table reference for now, user will need to fix to proper import
137
151
  const tableProperty = (0, sdk_build_core_1.getOrCreatePropertyAssignment)(listArgument, 'table', '');
@@ -141,6 +155,15 @@ exports.default = (0, sdk_build_core_1.Plugin)({
141
155
  const columnsProperty = (0, sdk_build_core_1.getOrCreatePropertyAssignment)(listArgument, 'columns', '[]');
142
156
  const columns = arrayElements.sort((a, b) => a['position'] - b['position']);
143
157
  setColumnsList(columnsProperty, columns);
158
+ if (parent) {
159
+ const parentProperty = (0, sdk_build_core_1.getOrCreatePropertyAssignment)(listArgument, 'parent', '');
160
+ (0, sdk_build_core_1.setPropertyAssignmentValue)(parentProperty, parent);
161
+ }
162
+ const relationAssignment = (0, sdk_build_core_1.getPropertyAssignment)(listArgument, 'relationship');
163
+ if (!relationAssignment && relationship?.id) {
164
+ const { id, name } = relationship;
165
+ writeRecordReference(context, listArgument, 'relationship', { id, refName: name });
166
+ }
144
167
  return true;
145
168
  },
146
169
  },
@@ -156,7 +179,7 @@ exports.default = (0, sdk_build_core_1.Plugin)({
156
179
  },
157
180
  serializers: {
158
181
  list(document, context) {
159
- const { id: listId, elements: columns, table, view, } = document.data;
182
+ const { id: listId, elements: columns, table, view, parent, relationship, } = document.data;
160
183
  const xmlBuilder = (0, sdk_build_core_1.unloadBuilder)(context);
161
184
  /**
162
185
  * Structure that needs to be built for sys_ui_list
@@ -204,6 +227,8 @@ exports.default = (0, sdk_build_core_1.Plugin)({
204
227
  name: view.name,
205
228
  });
206
229
  sysUIList.field('name', table);
230
+ sysUIList.field('parent', parent ?? '');
231
+ sysUIList.field('relationship', relationship ?? '');
207
232
  return {
208
233
  name: `${document.guid}.xml`,
209
234
  directory: 'update',
@@ -226,48 +251,53 @@ const updateView = (context, listArgument, view) => {
226
251
  if (viewAssignment) {
227
252
  return;
228
253
  }
229
- const viewRecord = context.getDocument(view.id);
230
254
  if (view.id === DEFAULT_VIEW) {
231
255
  (0, sdk_build_core_1.writePropertyAsReference)(listArgument, 'view', '', view.name);
256
+ return;
232
257
  }
233
- else if (viewRecord) {
234
- const nodeSource = listArgument.getSourceFile();
235
- const viewNode = viewRecord.node;
236
- if (!viewNode) {
237
- return;
238
- }
239
- const viewPath = getImportPath(nodeSource.getFilePath(), viewNode.getSourceFile().getFilePath());
240
- if (!viewPath) {
241
- const identifier = getIdentifier(viewNode);
242
- if (identifier) {
243
- listArgument.addPropertyAssignment({ name: 'view', initializer: identifier });
244
- return;
245
- }
246
- context.logger.warn(`Could not find identifier for view ${view.name}, consider adding one to use as a reference`);
247
- listArgument.addPropertyAssignment({ name: 'view', initializer: `'${view.name}'` });
248
- return;
249
- }
250
- // If the view record is not in the same file, add a reference to the view record
251
- const viewExport = getExportTypeAndName(viewNode);
252
- if (!viewExport.exported) {
253
- context.logger.warn(`View record is defined in ${viewNode.getSourceFile().getFilePath()} and is not exported`);
254
- listArgument.addPropertyAssignment({ name: 'view', initializer: `'${view.name}'` });
255
- return;
256
- }
257
- // Add a reference to the view record and add an import statement
258
- if (viewExport.type === 'Default') {
259
- listArgument.addPropertyAssignment({ name: 'view', initializer: view.name });
260
- (0, sdk_build_core_1.addDefaultImportIfAbsent)(nodeSource, viewPath, view.name);
261
- }
262
- else {
263
- listArgument.addPropertyAssignment({ name: 'view', initializer: viewExport.identifier });
264
- (0, sdk_build_core_1.addNamedImportIfAbsent)(context, nodeSource, viewPath, viewExport.identifier);
258
+ if (!writeRecordReference(context, listArgument, 'view', { id: view.id, refName: view.name })) {
259
+ (0, sdk_build_core_1.writePropertyAsReference)(listArgument, 'view', '', view.name);
260
+ }
261
+ };
262
+ function writeRecordReference(context, listArgument, field, record) {
263
+ const refName = record.refName.replace(/\s+/g, '_').toLowerCase();
264
+ const refRecord = context.getDocument(record.id);
265
+ const refNode = refRecord?.node;
266
+ if (!refRecord || !refNode) {
267
+ context.logger.debug(`Could not find a reference record with sys_id ${record.id}`);
268
+ return false;
269
+ }
270
+ const nodeSource = listArgument.getSourceFile();
271
+ const refPath = getImportPath(nodeSource.getFilePath(), refNode.getSourceFile().getFilePath());
272
+ if (!refPath) {
273
+ // reference is in the same file
274
+ const identifier = getIdentifier(refNode);
275
+ if (identifier) {
276
+ listArgument.addPropertyAssignment({ name: field, initializer: identifier });
277
+ return true;
265
278
  }
279
+ context.logger.warn(`Could not find identifier for ${field}, with sys_id ${record.id}, consider adding one to use as a reference`);
280
+ listArgument.addPropertyAssignment({ name: field, initializer: `'${refName ?? record.id}'` });
281
+ return true;
282
+ }
283
+ // If the view record is not in the same file, add a reference to the view record
284
+ const viewExport = getExportTypeAndName(refNode);
285
+ if (!viewExport.exported) {
286
+ context.logger.warn(`View record is defined in ${refNode.getSourceFile().getFilePath()} and is not exported`);
287
+ listArgument.addPropertyAssignment({ name: field, initializer: `'${record.id}'` });
288
+ return true;
289
+ }
290
+ // Add a reference to the view record and add an import statement
291
+ if (viewExport.type === 'Default') {
292
+ listArgument.addPropertyAssignment({ name: field, initializer: refName });
293
+ (0, sdk_build_core_1.addDefaultImportIfAbsent)(nodeSource, refPath, refName);
266
294
  }
267
295
  else {
268
- (0, sdk_build_core_1.writePropertyAsReference)(listArgument, 'view', '', view.name);
296
+ listArgument.addPropertyAssignment({ name: field, initializer: viewExport.identifier });
297
+ (0, sdk_build_core_1.addNamedImportIfAbsent)(context, nodeSource, refPath, viewExport.identifier);
269
298
  }
270
- };
299
+ return true;
300
+ }
271
301
  function composeView(view, context) {
272
302
  if ((0, lodash_1.isObject)(view)) {
273
303
  return {
@@ -293,8 +323,8 @@ const getExportTypeAndName = (sourceNode) => {
293
323
  return { exported: true, type: 'Default' };
294
324
  case sdk_project_1.ts.SyntaxKind.VariableDeclaration: {
295
325
  const identifier = getIdentifier(parentNode);
296
- const variableStmt = parentNode.getParentIfKind(sdk_project_1.ts.SyntaxKind.VariableStatement);
297
- const exportKeyword = variableStmt?.getFirstChildByKind(sdk_project_1.ts.SyntaxKind.ExportKeyword);
326
+ const variableStmt = parentNode.getFirstAncestorByKind(sdk_project_1.ts.SyntaxKind.VariableStatement);
327
+ const exportKeyword = variableStmt?.getFirstModifierByKind(sdk_project_1.ts.SyntaxKind.ExportKeyword);
298
328
  if (exportKeyword) {
299
329
  return { exported: true, type: 'Named', identifier };
300
330
  }
@@ -389,9 +419,22 @@ const xmlElementToObject = (element) => {
389
419
  return out;
390
420
  }, {});
391
421
  };
392
- const getListUpdateName = (view, table) => {
422
+ const getListUpdateName = (view, table, parent, relation) => {
393
423
  const viewName = view.title === DEFAULT_VIEW ? 'null' : view.name;
394
- return `sys_ui_list_${table}_${viewName}`; //This name matches the generated
424
+ if (!parent && !relation) {
425
+ // Case 1: no parent/ no relation - sys_ui_list_table_view
426
+ return `sys_ui_list_${table}_${viewName}`;
427
+ }
428
+ if (parent && !relation) {
429
+ // Case 2: parent/ no relation - sys_ui_list_table_parent_view
430
+ return `sys_ui_list_${table}_${parent}_${viewName}`;
431
+ }
432
+ if (!parent && relation) {
433
+ // Case 3: no parent/ relation - sys_ui_list_null_relation_view
434
+ return `sys_ui_list_null_${relation}_${viewName}`;
435
+ }
436
+ // Case 4: parent/ relation - sys_ui_list_parent_relation_view
437
+ return `sys_ui_list_${parent}_${relation}_${viewName}`;
395
438
  };
396
439
  const SysUIListXmlSchema = z.object({
397
440
  sys_ui_list: z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"ListPlugin.js","sourceRoot":"","sources":["../src/ListPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListPlugin.js","sourceRoot":"","sources":["../src/ListPlugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicenow/sdk-build-plugins",
3
- "version": "2.2.3",
3
+ "version": "2.2.5",
4
4
  "description": "ServiceNow SDK Build System Plugins",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -15,9 +15,9 @@
15
15
  "xmlbuilder2": "3.1.1",
16
16
  "zod": "3.22.4",
17
17
  "md5.js": "1.3.5",
18
- "@servicenow/sdk-build-core": "2.2.3",
19
- "@servicenow/sdk-core": "2.2.3",
20
- "@servicenow/sdk-project": "2.2.3"
18
+ "@servicenow/sdk-build-core": "2.2.5",
19
+ "@servicenow/sdk-core": "2.2.5",
20
+ "@servicenow/sdk-project": "2.2.5"
21
21
  },
22
22
  "overrides": {
23
23
  "micromatch": "4.0.7"
package/src/ListPlugin.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { List } from '@servicenow/sdk-core/runtime/ui'
2
2
  import {
3
+ Data,
3
4
  Plugin,
4
5
  PrimitiveData,
5
6
  extractCallExpression,
@@ -15,9 +16,9 @@ import {
15
16
  getSysUpdateName,
16
17
  XmlData,
17
18
  writePropertyAsReference,
18
- getPropertyAssignment,
19
19
  addDefaultImportIfAbsent,
20
20
  addNamedImportIfAbsent,
21
+ getPropertyAssignment,
21
22
  } from '@servicenow/sdk-build-core'
22
23
  import { RecordXmlSchema } from './db/RecordPlugin'
23
24
  import * as z from 'zod'
@@ -35,6 +36,8 @@ type View = {
35
36
 
36
37
  type TransformData = {
37
38
  sys_id: string
39
+ parent?: string
40
+ relationship?: { id: string; name: string }
38
41
  view: View
39
42
  list: Omit<List, 'columns'>
40
43
  table: string
@@ -94,6 +97,11 @@ export default Plugin({
94
97
  view,
95
98
  elements,
96
99
  table: list['name'],
100
+ parent: list['parent'],
101
+ relationship: {
102
+ id: list['relationship'],
103
+ name: sys_ui_list['relationship']?.['@_display_value'],
104
+ },
97
105
  },
98
106
  xml.filePath,
99
107
  'list',
@@ -108,25 +116,34 @@ export default Plugin({
108
116
  const guid = entity.getGuid()
109
117
  const view = entity.getProperty('view').getValue()
110
118
  const table = entity.getPropertyOrThrow('table', 'string').getValue()
119
+ const parent = entity.getProperty('parent', 'string')?.getValue()
120
+
121
+ const relationship = entity.getProperty('relationship')
122
+ const relationshipId = Data.isEntity(relationship)
123
+ ? relationship?.getGuid()
124
+ : (relationship?.getValue() as string)
125
+
111
126
  const columns = entity.getPropertyOrThrow('columns', 'array').getValue()
112
127
  const viewInfo: View = composeView(view as List['view'], context)
113
128
 
114
129
  return {
115
130
  kind: 'list',
116
131
  node,
117
- guid: getListUpdateName(viewInfo, table),
132
+ guid: getListUpdateName(viewInfo, table, parent, relationshipId),
118
133
  data: {
119
134
  id: guid,
120
135
  table,
121
136
  view: viewInfo,
122
137
  elements: columns,
138
+ parent,
139
+ relationship: relationshipId,
123
140
  },
124
141
  }
125
142
  },
126
143
  },
127
144
  xml: {
128
145
  list(xml) {
129
- const { sys_id, view, elements, table } = xml.data as TransformData
146
+ const { sys_id, view, elements, table } = xml.data as unknown as TransformData
130
147
  return {
131
148
  action: xml.action,
132
149
  kind: xml.kind,
@@ -136,6 +153,8 @@ export default Plugin({
136
153
  table,
137
154
  view,
138
155
  elements,
156
+ parent: xml.data['parent'],
157
+ relationship: xml.data['relationship'],
139
158
  },
140
159
  }
141
160
  },
@@ -161,7 +180,7 @@ export default Plugin({
161
180
  return false
162
181
  }
163
182
 
164
- const { elements, view, table } = document.xmlData as TransformData
183
+ const { elements, view, table, parent, relationship } = document.xmlData as TransformData
165
184
  updateView(context, listArgument, view)
166
185
 
167
186
  //create the table reference for now, user will need to fix to proper import
@@ -175,6 +194,17 @@ export default Plugin({
175
194
  const columns = arrayElements.sort((a, b) => (a['position'] as number) - (b['position'] as number))
176
195
  setColumnsList(columnsProperty, columns)
177
196
 
197
+ if (parent) {
198
+ const parentProperty = getOrCreatePropertyAssignment(listArgument, 'parent', '')
199
+ setPropertyAssignmentValue(parentProperty, parent)
200
+ }
201
+
202
+ const relationAssignment = getPropertyAssignment(listArgument, 'relationship')
203
+ if (!relationAssignment && relationship?.id) {
204
+ const { id, name } = relationship
205
+ writeRecordReference(context, listArgument, 'relationship', { id, refName: name })
206
+ }
207
+
178
208
  return true
179
209
  },
180
210
  },
@@ -203,11 +233,15 @@ export default Plugin({
203
233
  elements: columns,
204
234
  table,
205
235
  view,
236
+ parent,
237
+ relationship,
206
238
  } = document.data as {
207
239
  id: string
208
240
  elements: Array<any>
209
241
  table: string
210
242
  view: View
243
+ parent: string
244
+ relationship: string
211
245
  }
212
246
  const xmlBuilder = unloadBuilder(context)
213
247
  /**
@@ -269,6 +303,9 @@ export default Plugin({
269
303
  })
270
304
  sysUIList.field('name', table)
271
305
 
306
+ sysUIList.field('parent', parent ?? '')
307
+ sysUIList.field('relationship', relationship ?? '')
308
+
272
309
  return {
273
310
  name: `${document.guid}.xml`,
274
311
  directory: 'update',
@@ -292,53 +329,60 @@ const updateView = (context, listArgument, view) => {
292
329
  if (viewAssignment) {
293
330
  return
294
331
  }
295
- const viewRecord = context.getDocument(view.id)
296
332
 
297
333
  if (view.id === DEFAULT_VIEW) {
298
334
  writePropertyAsReference(listArgument, 'view', '', view.name)
299
- } else if (viewRecord) {
300
- const nodeSource = listArgument.getSourceFile()
301
- const viewNode = viewRecord.node
302
- if (!viewNode) {
303
- return
304
- }
305
- const viewPath = getImportPath(nodeSource.getFilePath(), viewNode.getSourceFile().getFilePath())
335
+ return
336
+ }
337
+ if (!writeRecordReference(context, listArgument, 'view', { id: view.id, refName: view.name })) {
338
+ writePropertyAsReference(listArgument, 'view', '', view.name)
339
+ }
340
+ }
306
341
 
307
- if (!viewPath) {
308
- const identifier = getIdentifier(viewNode)
309
- if (identifier) {
310
- listArgument.addPropertyAssignment({ name: 'view', initializer: identifier })
311
- return
312
- }
313
- context.logger.warn(
314
- `Could not find identifier for view ${view.name}, consider adding one to use as a reference`
315
- )
316
- listArgument.addPropertyAssignment({ name: 'view', initializer: `'${view.name}'` })
317
- return
318
- }
342
+ function writeRecordReference(context, listArgument, field, record: { id: string; refName: string }) {
343
+ const refName = record.refName.replace(/\s+/g, '_').toLowerCase()
344
+ const refRecord = context.getDocument(record.id)
345
+ const refNode = refRecord?.node
346
+ if (!refRecord || !refNode) {
347
+ context.logger.debug(`Could not find a reference record with sys_id ${record.id}`)
348
+ return false
349
+ }
319
350
 
320
- // If the view record is not in the same file, add a reference to the view record
321
- const viewExport = getExportTypeAndName(viewNode)
351
+ const nodeSource = listArgument.getSourceFile()
352
+ const refPath = getImportPath(nodeSource.getFilePath(), refNode.getSourceFile().getFilePath())
322
353
 
323
- if (!viewExport.exported) {
324
- context.logger.warn(
325
- `View record is defined in ${viewNode.getSourceFile().getFilePath()} and is not exported`
326
- )
327
- listArgument.addPropertyAssignment({ name: 'view', initializer: `'${view.name}'` })
328
- return
354
+ if (!refPath) {
355
+ // reference is in the same file
356
+ const identifier = getIdentifier(refNode)
357
+ if (identifier) {
358
+ listArgument.addPropertyAssignment({ name: field, initializer: identifier })
359
+ return true
329
360
  }
361
+ context.logger.warn(
362
+ `Could not find identifier for ${field}, with sys_id ${record.id}, consider adding one to use as a reference`
363
+ )
364
+ listArgument.addPropertyAssignment({ name: field, initializer: `'${refName ?? record.id}'` })
365
+ return true
366
+ }
330
367
 
331
- // Add a reference to the view record and add an import statement
332
- if (viewExport.type === 'Default') {
333
- listArgument.addPropertyAssignment({ name: 'view', initializer: view.name })
334
- addDefaultImportIfAbsent(nodeSource, viewPath, view.name)
335
- } else {
336
- listArgument.addPropertyAssignment({ name: 'view', initializer: viewExport.identifier })
337
- addNamedImportIfAbsent(context, nodeSource, viewPath, viewExport.identifier)
338
- }
368
+ // If the view record is not in the same file, add a reference to the view record
369
+ const viewExport = getExportTypeAndName(refNode)
370
+
371
+ if (!viewExport.exported) {
372
+ context.logger.warn(`View record is defined in ${refNode.getSourceFile().getFilePath()} and is not exported`)
373
+ listArgument.addPropertyAssignment({ name: field, initializer: `'${record.id}'` })
374
+ return true
375
+ }
376
+
377
+ // Add a reference to the view record and add an import statement
378
+ if (viewExport.type === 'Default') {
379
+ listArgument.addPropertyAssignment({ name: field, initializer: refName })
380
+ addDefaultImportIfAbsent(nodeSource, refPath, refName)
339
381
  } else {
340
- writePropertyAsReference(listArgument, 'view', '', view.name)
382
+ listArgument.addPropertyAssignment({ name: field, initializer: viewExport.identifier })
383
+ addNamedImportIfAbsent(context, nodeSource, refPath, viewExport.identifier)
341
384
  }
385
+ return true
342
386
  }
343
387
 
344
388
  function composeView(view: NowRecord<'sys_ui_view'> | string, context): View {
@@ -376,9 +420,8 @@ const getExportTypeAndName = (sourceNode: ts.CallExpression): ExportsInfo => {
376
420
  case ts.SyntaxKind.VariableDeclaration: {
377
421
  const identifier = getIdentifier(parentNode as ts.VariableDeclaration)!
378
422
 
379
- const variableStmt = parentNode.getParentIfKind(ts.SyntaxKind.VariableStatement)
380
- const exportKeyword = variableStmt?.getFirstChildByKind(ts.SyntaxKind.ExportKeyword)
381
-
423
+ const variableStmt = parentNode.getFirstAncestorByKind(ts.SyntaxKind.VariableStatement)
424
+ const exportKeyword = variableStmt?.getFirstModifierByKind(ts.SyntaxKind.ExportKeyword)
382
425
  if (exportKeyword) {
383
426
  return { exported: true, type: 'Named', identifier }
384
427
  }
@@ -487,9 +530,23 @@ const xmlElementToObject = (element: PrimitiveData) => {
487
530
  }, {})
488
531
  }
489
532
 
490
- const getListUpdateName = (view: View, table: string) => {
533
+ const getListUpdateName = (view: View, table: string, parent: string | undefined, relation: string | undefined) => {
491
534
  const viewName = view.title === DEFAULT_VIEW ? 'null' : view.name
492
- return `sys_ui_list_${table}_${viewName}` //This name matches the generated
535
+
536
+ if (!parent && !relation) {
537
+ // Case 1: no parent/ no relation - sys_ui_list_table_view
538
+ return `sys_ui_list_${table}_${viewName}`
539
+ }
540
+ if (parent && !relation) {
541
+ // Case 2: parent/ no relation - sys_ui_list_table_parent_view
542
+ return `sys_ui_list_${table}_${parent}_${viewName}`
543
+ }
544
+ if (!parent && relation) {
545
+ // Case 3: no parent/ relation - sys_ui_list_null_relation_view
546
+ return `sys_ui_list_null_${relation}_${viewName}`
547
+ }
548
+ // Case 4: parent/ relation - sys_ui_list_parent_relation_view
549
+ return `sys_ui_list_${parent}_${relation}_${viewName}`
493
550
  }
494
551
 
495
552
  const SysUIListXmlSchema = z.object({
@@ -510,5 +567,4 @@ const SysUIListXmlSchema = z.object({
510
567
  })
511
568
 
512
569
  const toArray = (value: unknown) => (Array.isArray(value) ? value : [value])
513
-
514
570
  type SysUIListElementXml = z.infer<typeof RecordXmlSchema>[]