@cyberismo/data-handler 0.0.12 → 0.0.14

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.
Files changed (130) hide show
  1. package/dist/command-handler.d.ts +24 -42
  2. package/dist/command-handler.js +33 -26
  3. package/dist/command-handler.js.map +1 -1
  4. package/dist/commands/create.d.ts +3 -3
  5. package/dist/commands/create.js +7 -22
  6. package/dist/commands/create.js.map +1 -1
  7. package/dist/commands/edit.d.ts +12 -11
  8. package/dist/commands/edit.js +41 -16
  9. package/dist/commands/edit.js.map +1 -1
  10. package/dist/commands/fetch.js +2 -1
  11. package/dist/commands/fetch.js.map +1 -1
  12. package/dist/commands/import.js +2 -2
  13. package/dist/commands/import.js.map +1 -1
  14. package/dist/commands/remove.js +6 -5
  15. package/dist/commands/remove.js.map +1 -1
  16. package/dist/commands/rename.d.ts +1 -0
  17. package/dist/commands/rename.js +11 -0
  18. package/dist/commands/rename.js.map +1 -1
  19. package/dist/commands/show.d.ts +4 -0
  20. package/dist/commands/show.js +6 -12
  21. package/dist/commands/show.js.map +1 -1
  22. package/dist/commands/update.d.ts +11 -1
  23. package/dist/commands/update.js +14 -2
  24. package/dist/commands/update.js.map +1 -1
  25. package/dist/commands/validate.d.ts +2 -1
  26. package/dist/commands/validate.js +4 -3
  27. package/dist/commands/validate.js.map +1 -1
  28. package/dist/containers/card-container.js +1 -1
  29. package/dist/containers/card-container.js.map +1 -1
  30. package/dist/containers/project/calculation-engine.js +18 -18
  31. package/dist/containers/project/calculation-engine.js.map +1 -1
  32. package/dist/containers/project.d.ts +2 -1
  33. package/dist/containers/project.js +5 -1
  34. package/dist/containers/project.js.map +1 -1
  35. package/dist/index.d.ts +4 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/interfaces/command-options.d.ts +81 -0
  38. package/dist/interfaces/command-options.js +14 -0
  39. package/dist/interfaces/command-options.js.map +1 -0
  40. package/dist/interfaces/folder-content-interfaces.d.ts +56 -0
  41. package/dist/interfaces/folder-content-interfaces.js +47 -0
  42. package/dist/interfaces/folder-content-interfaces.js.map +1 -0
  43. package/dist/interfaces/project-interfaces.d.ts +11 -9
  44. package/dist/interfaces/project-interfaces.js +10 -8
  45. package/dist/interfaces/project-interfaces.js.map +1 -1
  46. package/dist/interfaces/resource-interfaces.d.ts +37 -10
  47. package/dist/interfaces/resource-interfaces.js.map +1 -1
  48. package/dist/macros/report/index.js +4 -4
  49. package/dist/macros/report/index.js.map +1 -1
  50. package/dist/resources/calculation-resource.d.ts +71 -0
  51. package/dist/resources/calculation-resource.js +130 -0
  52. package/dist/resources/calculation-resource.js.map +1 -0
  53. package/dist/resources/card-type-resource.js +11 -5
  54. package/dist/resources/card-type-resource.js.map +1 -1
  55. package/dist/resources/create-defaults.d.ts +13 -6
  56. package/dist/resources/create-defaults.js +19 -5
  57. package/dist/resources/create-defaults.js.map +1 -1
  58. package/dist/resources/field-type-resource.js +1 -1
  59. package/dist/resources/field-type-resource.js.map +1 -1
  60. package/dist/resources/file-resource.js +9 -3
  61. package/dist/resources/file-resource.js.map +1 -1
  62. package/dist/resources/folder-resource.d.ts +38 -10
  63. package/dist/resources/folder-resource.js +108 -12
  64. package/dist/resources/folder-resource.js.map +1 -1
  65. package/dist/resources/graph-model-resource.d.ts +7 -4
  66. package/dist/resources/graph-model-resource.js +12 -25
  67. package/dist/resources/graph-model-resource.js.map +1 -1
  68. package/dist/resources/graph-view-resource.d.ts +7 -4
  69. package/dist/resources/graph-view-resource.js +12 -26
  70. package/dist/resources/graph-view-resource.js.map +1 -1
  71. package/dist/resources/link-type-resource.js +1 -1
  72. package/dist/resources/link-type-resource.js.map +1 -1
  73. package/dist/resources/report-resource.d.ts +14 -10
  74. package/dist/resources/report-resource.js +41 -45
  75. package/dist/resources/report-resource.js.map +1 -1
  76. package/dist/resources/resource-object.d.ts +7 -0
  77. package/dist/resources/resource-object.js +14 -2
  78. package/dist/resources/resource-object.js.map +1 -1
  79. package/dist/resources/template-resource.d.ts +5 -1
  80. package/dist/resources/template-resource.js +12 -7
  81. package/dist/resources/template-resource.js.map +1 -1
  82. package/dist/resources/workflow-resource.js +6 -0
  83. package/dist/resources/workflow-resource.js.map +1 -1
  84. package/dist/utils/constants.js +1 -0
  85. package/dist/utils/constants.js.map +1 -1
  86. package/dist/utils/error-utils.d.ts +34 -0
  87. package/dist/utils/error-utils.js +56 -0
  88. package/dist/utils/error-utils.js.map +1 -0
  89. package/dist/utils/log-utils.d.ts +0 -27
  90. package/dist/utils/log-utils.js +0 -58
  91. package/dist/utils/log-utils.js.map +1 -1
  92. package/dist/utils/user-preferences.js +6 -3
  93. package/dist/utils/user-preferences.js.map +1 -1
  94. package/package.json +9 -7
  95. package/src/command-handler.ts +74 -59
  96. package/src/commands/create.ts +10 -28
  97. package/src/commands/edit.ts +51 -26
  98. package/src/commands/fetch.ts +2 -1
  99. package/src/commands/import.ts +2 -0
  100. package/src/commands/remove.ts +3 -2
  101. package/src/commands/rename.ts +20 -0
  102. package/src/commands/show.ts +5 -13
  103. package/src/commands/update.ts +20 -2
  104. package/src/commands/validate.ts +7 -3
  105. package/src/containers/card-container.ts +1 -1
  106. package/src/containers/project/calculation-engine.ts +23 -23
  107. package/src/containers/project.ts +4 -1
  108. package/src/index.ts +36 -2
  109. package/src/interfaces/command-options.ts +144 -0
  110. package/src/interfaces/folder-content-interfaces.ts +81 -0
  111. package/src/interfaces/project-interfaces.ts +12 -9
  112. package/src/interfaces/resource-interfaces.ts +51 -12
  113. package/src/macros/report/index.ts +4 -4
  114. package/src/resources/calculation-resource.ts +171 -0
  115. package/src/resources/card-type-resource.ts +12 -6
  116. package/src/resources/create-defaults.ts +21 -5
  117. package/src/resources/field-type-resource.ts +1 -1
  118. package/src/resources/file-resource.ts +9 -3
  119. package/src/resources/folder-resource.ts +150 -20
  120. package/src/resources/graph-model-resource.ts +16 -27
  121. package/src/resources/graph-view-resource.ts +16 -28
  122. package/src/resources/link-type-resource.ts +1 -1
  123. package/src/resources/report-resource.ts +60 -62
  124. package/src/resources/resource-object.ts +30 -7
  125. package/src/resources/template-resource.ts +12 -7
  126. package/src/resources/workflow-resource.ts +4 -0
  127. package/src/utils/constants.ts +1 -0
  128. package/src/utils/error-utils.ts +62 -0
  129. package/src/utils/log-utils.ts +0 -68
  130. package/src/utils/user-preferences.ts +7 -3
@@ -17,6 +17,7 @@ import { readFile } from 'node:fs/promises';
17
17
  import { ResourceObject, } from './resource-object.js';
18
18
  import { DefaultContent } from './create-defaults.js';
19
19
  import { deleteFile, pathExists } from '../utils/file-utils.js';
20
+ import { hasCode } from '../utils/error-utils.js';
20
21
  import { Project, ResourcesFrom } from '../containers/project.js';
21
22
  import { readJsonFile, readJsonFileSync, writeJsonFile, } from '../utils/json.js';
22
23
  import { resourceName, resourceNameToPath, resourceNameToString, } from '../utils/resource-utils.js';
@@ -150,6 +151,11 @@ export class FileResource extends ResourceObject {
150
151
  }
151
152
  }
152
153
  catch (error) {
154
+ // Skip files that don't exist (they may have been renamed or deleted)
155
+ if (hasCode(error) && error.code === 'ENOENT') {
156
+ this.logger.warn(`Skipping non-existent file: ${filename}`);
157
+ continue;
158
+ }
153
159
  throw new Error(`Failed to process file ${filename}: ${error.message}`);
154
160
  }
155
161
  }
@@ -266,9 +272,9 @@ export class FileResource extends ResourceObject {
266
272
  async update(key,
267
273
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
268
274
  _op) {
269
- const content = this.data;
270
- if (!content) {
271
- throw new Error(`Resource '${this.fileName}' does not exist`);
275
+ if (!this.data) {
276
+ const name = resourceNameToString(this.resourceName);
277
+ throw new Error(`Resource '${name}' does not exist in the project`);
272
278
  }
273
279
  if (this.moduleResource) {
274
280
  throw new Error(`Cannot update module resources`);
@@ -1 +1 @@
1
- {"version":3,"file":"file-resource.js","sourceRoot":"","sources":["../../src/resources/file-resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-resource.js","sourceRoot":"","sources":["../../src/resources/file-resource.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,41 @@
1
1
  /**
2
2
  Cyberismo
3
3
  Copyright © Cyberismo Ltd and contributors 2024
4
+
4
5
  This program is free software: you can redistribute it and/or modify it under
5
6
  the terms of the GNU Affero General Public License version 3 as published by
6
- the Free Software Foundation.
7
- This program is distributed in the hope that it will be useful, but WITHOUT
8
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9
- FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
10
- details. You should have received a copy of the GNU Affero General Public
7
+ the Free Software Foundation. This program is distributed in the hope that it
8
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
9
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
+ See the GNU Affero General Public License for more details.
11
+ You should have received a copy of the GNU Affero General Public
11
12
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
13
  */
14
+ import type { Card, Operation, ResourceName } from './file-resource.js';
15
+ import type { ResourceContent, UpdateKey } from '../interfaces/resource-interfaces.js';
13
16
  import type { ResourceFolderType } from '../interfaces/project-interfaces.js';
14
- import { type Card, DefaultContent, FileResource, type Operation, Project, type ResourceName, resourceNameToString, sortCards } from './file-resource.js';
15
- import type { ResourceContent } from '../interfaces/resource-interfaces.js';
17
+ import type { Schema } from 'jsonschema';
18
+ import { DefaultContent, FileResource, Project, resourceNameToString, sortCards } from './file-resource.js';
16
19
  export { type Card, DefaultContent, FileResource, type Operation, Project, ResourceName, resourceNameToString, sortCards, };
17
20
  /**
18
21
  * Folder type resource class. These are resources that have their own folders for content.
19
22
  */
20
23
  export declare class FolderResource extends FileResource {
21
24
  protected internalFolder: string;
25
+ private contentFilesCache;
22
26
  constructor(project: Project, name: ResourceName, type: ResourceFolderType);
27
+ private clearContentCache;
28
+ private isContentUpdateKey;
23
29
  /**
24
30
  * Creates a new folder type object. Base class writes the object to disk automatically.
25
31
  * @param newContent Content for the type.
26
32
  */
27
33
  protected create(newContent?: ResourceContent): Promise<void>;
34
+ /**
35
+ * Gets content of all files to properties.
36
+ * @returns object with property names as keys and file contents as values.
37
+ */
38
+ contentData(): Promise<Record<string, string | Schema>>;
28
39
  /**
29
40
  * Returns content data.
30
41
  */
@@ -35,6 +46,9 @@ export declare class FolderResource extends FileResource {
35
46
  protected delete(): Promise<void>;
36
47
  protected get getType(): string;
37
48
  protected get logger(): import("pino").Logger;
49
+ /**
50
+ * Initialize the resource item.
51
+ */
38
52
  protected initialize(): void;
39
53
  /**
40
54
  * Renames resource metadata file and renames memory resident object 'name'.
@@ -47,28 +61,42 @@ export declare class FolderResource extends FileResource {
47
61
  */
48
62
  protected show(): Promise<ResourceContent>;
49
63
  /**
64
+ * TODO: to be made protected - no direct access to files
50
65
  * Shows the content of a file in the resource.
51
66
  * @param fileName Name of the file to show.
67
+ * @param json Content is JSON file.
52
68
  * @returns the content of the file.
53
69
  */
54
- showFile(fileName: string): Promise<string>;
70
+ showFile(fileName: string, json?: boolean): Promise<string>;
55
71
  /**
72
+ * TODO: to be made protected - no direct access to files
56
73
  * Shows all file names in the resource.
57
74
  * @returns all file names in the resource.
58
75
  */
59
76
  showFileNames(): Promise<string[]>;
77
+ /**
78
+ * Updates content files from a content object.
79
+ * @param contentFiles Object with file names as keys and file contents as values.
80
+ */
81
+ protected updateContentFiles(contentFiles: Record<string, string>): Promise<void>;
60
82
  /**
61
83
  * Updates a file in the resource.
62
84
  * @param fileName The name of the file to update.
63
85
  * @param changedContent The new content for the file.
64
86
  */
65
- updateFile(fileName: string, changedContent: string): Promise<void>;
87
+ protected updateFile(fileName: string, changedContent: string): Promise<void>;
66
88
  /**
67
89
  * Updates resource.
68
90
  * @param key Key to modify
69
91
  * @param op Operation to perform on 'key'
92
+ * @throws if key is unknown.
93
+ */
94
+ protected update<Type>(key: UpdateKey, op: Operation<Type>): Promise<void>;
95
+ /**
96
+ * For handling name changes.
97
+ * @param previousName The previous name before the change
70
98
  */
71
- protected update<Type>(key: string, op: Operation<Type>): Promise<void>;
99
+ protected onNameChange?(previousName: string): Promise<void>;
72
100
  /**
73
101
  * Returns an array of card keys, and/or resource names where this resource is used.
74
102
  * @param cards Optional. If defined, only these cards are checked.
@@ -1,29 +1,42 @@
1
1
  /**
2
2
  Cyberismo
3
3
  Copyright © Cyberismo Ltd and contributors 2024
4
+
4
5
  This program is free software: you can redistribute it and/or modify it under
5
6
  the terms of the GNU Affero General Public License version 3 as published by
6
- the Free Software Foundation.
7
- This program is distributed in the hope that it will be useful, but WITHOUT
8
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9
- FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
10
- details. You should have received a copy of the GNU Affero General Public
7
+ the Free Software Foundation. This program is distributed in the hope that it
8
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
9
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
+ See the GNU Affero General Public License for more details.
11
+ You should have received a copy of the GNU Affero General Public
11
12
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
13
  */
13
14
  import { basename, dirname, join, normalize } from 'node:path';
14
15
  import { mkdir, readdir, readFile, rename, rm } from 'node:fs/promises';
15
- import { writeFileSafe } from '../utils/file-utils.js';
16
16
  import { DefaultContent, FileResource, Project, resourceName, resourceNameToString, sortCards, } from './file-resource.js';
17
+ import { filename, propertyName, } from '../interfaces/folder-content-interfaces.js';
18
+ import { readJsonFile } from '../utils/json.js';
17
19
  import { VALID_FOLDER_RESOURCE_FILES } from '../utils/constants.js';
20
+ import { writeFileSafe } from '../utils/file-utils.js';
18
21
  export { DefaultContent, FileResource, Project, resourceNameToString, sortCards, };
19
22
  /**
20
23
  * Folder type resource class. These are resources that have their own folders for content.
21
24
  */
22
25
  export class FolderResource extends FileResource {
23
26
  internalFolder = '';
27
+ // Cache for content files to avoid repeated filesystem operations. Content is stored as string.
28
+ contentFilesCache = new Map();
24
29
  constructor(project, name, type) {
25
30
  super(project, name, type);
26
31
  }
32
+ // Clears the content files cache.
33
+ clearContentCache() {
34
+ this.contentFilesCache.clear();
35
+ }
36
+ // Type guard to check if a key is a ContentUpdateKey
37
+ isContentUpdateKey(key) {
38
+ return typeof key === 'object' && key.key === 'content' && 'subKey' in key;
39
+ }
27
40
  /**
28
41
  * Creates a new folder type object. Base class writes the object to disk automatically.
29
42
  * @param newContent Content for the type.
@@ -32,6 +45,22 @@ export class FolderResource extends FileResource {
32
45
  await super.create(newContent);
33
46
  await mkdir(this.internalFolder, { recursive: true });
34
47
  }
48
+ /**
49
+ * Gets content of all files to properties.
50
+ * @returns object with property names as keys and file contents as values.
51
+ */
52
+ async contentData() {
53
+ const fileNames = await this.showFileNames();
54
+ const content = {};
55
+ for (const fileName of fileNames) {
56
+ const name = propertyName(fileName);
57
+ if (name) {
58
+ const JSONFile = name === 'schema';
59
+ content[name] = await this.showFile(fileName, JSONFile);
60
+ }
61
+ }
62
+ return content;
63
+ }
35
64
  /**
36
65
  * Returns content data.
37
66
  */
@@ -44,14 +73,19 @@ export class FolderResource extends FileResource {
44
73
  async delete() {
45
74
  await super.delete();
46
75
  await rm(this.internalFolder, { recursive: true, force: true });
76
+ this.clearContentCache();
47
77
  }
48
78
  // Get (resource folder) type name
49
79
  get getType() {
50
80
  return super.getType;
51
81
  }
82
+ // Get logger instance
52
83
  get logger() {
53
84
  return super.getLogger(this.getType);
54
85
  }
86
+ /**
87
+ * Initialize the resource item.
88
+ */
55
89
  initialize() {
56
90
  super.initialize();
57
91
  this.internalFolder = join(this.resourceFolder, this.resourceName.identifier);
@@ -71,21 +105,55 @@ export class FolderResource extends FileResource {
71
105
  return super.show();
72
106
  }
73
107
  /**
108
+ * TODO: to be made protected - no direct access to files
74
109
  * Shows the content of a file in the resource.
75
110
  * @param fileName Name of the file to show.
111
+ * @param json Content is JSON file.
76
112
  * @returns the content of the file.
77
113
  */
78
- async showFile(fileName) {
114
+ async showFile(fileName, json = false) {
115
+ // Always first check cache...
116
+ if (this.contentFilesCache.has(fileName)) {
117
+ const cached = this.contentFilesCache.get(fileName);
118
+ return json ? JSON.parse(cached) : cached;
119
+ }
120
+ // ...cache miss, read from filesystem
79
121
  const filePath = join(this.internalFolder, fileName);
80
- return readFile(filePath, 'utf8');
122
+ const content = json
123
+ ? await readJsonFile(filePath)
124
+ : await readFile(filePath, 'utf8');
125
+ // Update cache
126
+ const contentStr = typeof content === 'string' ? content : JSON.stringify(content, null, 2);
127
+ this.contentFilesCache.set(fileName, contentStr);
128
+ return json ? content : contentStr;
81
129
  }
82
130
  /**
131
+ * TODO: to be made protected - no direct access to files
83
132
  * Shows all file names in the resource.
84
133
  * @returns all file names in the resource.
85
134
  */
86
135
  async showFileNames() {
136
+ // Always first check cache...
137
+ if (this.contentFilesCache.size > 0) {
138
+ return Array.from(this.contentFilesCache.keys());
139
+ }
140
+ // ...cache miss, read from filesystem and populate cache
87
141
  const files = await readdir(this.internalFolder);
88
- return files.filter((file) => VALID_FOLDER_RESOURCE_FILES.includes(file));
142
+ const validFiles = files.filter((file) => VALID_FOLDER_RESOURCE_FILES.includes(file));
143
+ // Update cache by reading all files. Each method call updates specific cache item.
144
+ for (const fileName of validFiles) {
145
+ await this.showFile(fileName);
146
+ }
147
+ return validFiles;
148
+ }
149
+ /**
150
+ * Updates content files from a content object.
151
+ * @param contentFiles Object with file names as keys and file contents as values.
152
+ */
153
+ async updateContentFiles(contentFiles) {
154
+ for (const [fileName, fileContent] of Object.entries(contentFiles)) {
155
+ await this.updateFile(fileName, fileContent);
156
+ }
89
157
  }
90
158
  /**
91
159
  * Updates a file in the resource.
@@ -104,19 +172,47 @@ export class FolderResource extends FileResource {
104
172
  if (basename(normalizedFilePath) !== fileName) {
105
173
  throw new Error(`File '${fileName}' is not in the resource`);
106
174
  }
107
- // check if the file is whitelisted
175
+ // check if the file is allow-listed
108
176
  if (!VALID_FOLDER_RESOURCE_FILES.includes(fileName)) {
109
- throw new Error(`File '${fileName}' is not whitelisted`);
177
+ throw new Error(`File '${fileName}' is not allowed`);
110
178
  }
111
179
  await writeFileSafe(filePath, changedContent, { flag: 'w' });
180
+ // Update cache with new content
181
+ this.contentFilesCache.set(fileName, changedContent);
112
182
  }
113
183
  /**
114
184
  * Updates resource.
115
185
  * @param key Key to modify
116
186
  * @param op Operation to perform on 'key'
187
+ * @throws if key is unknown.
117
188
  */
118
189
  async update(key, op) {
119
- return super.update(key, op);
190
+ if (this.isContentUpdateKey(key)) {
191
+ const fileName = filename(key.subKey);
192
+ const fileContent = super.handleScalar(op);
193
+ await this.updateFile(fileName, fileContent);
194
+ return;
195
+ }
196
+ const nameChange = key === 'name';
197
+ const existingName = this.content.name;
198
+ await super.update(key, op);
199
+ const content = structuredClone(this.content);
200
+ if (key === 'name') {
201
+ content.name = super.handleScalar(op);
202
+ }
203
+ else if (key === 'displayName') {
204
+ content.displayName = super.handleScalar(op);
205
+ }
206
+ else if (key === 'description') {
207
+ content.description = super.handleScalar(op);
208
+ }
209
+ else {
210
+ throw new Error(`Unknown property '${key}' for folder resource`);
211
+ }
212
+ await super.postUpdate(content, key, op);
213
+ if (nameChange) {
214
+ await this.onNameChange?.(existingName);
215
+ }
120
216
  }
121
217
  /**
122
218
  * Returns an array of card keys, and/or resource names where this resource is used.
@@ -1 +1 @@
1
- {"version":3,"file":"folder-resource.js","sourceRoot":"","sources":["../../src/resources/folder-resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"folder-resource.js","sourceRoot":"","sources":["../../src/resources/folder-resource.ts"],"names":[],"mappings":"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"}
@@ -13,13 +13,17 @@
13
13
  */
14
14
  import type { Card, Operation, Project, ResourceName } from './folder-resource.js';
15
15
  import { FolderResource } from './folder-resource.js';
16
- import type { GraphModel, GraphModelMetadata } from '../interfaces/resource-interfaces.js';
16
+ import type { GraphModel, GraphModelMetadata, GraphModelUpdateKey } from '../interfaces/resource-interfaces.js';
17
17
  /**
18
18
  * Graph model resource class.
19
19
  */
20
20
  export declare class GraphModelResource extends FolderResource {
21
21
  constructor(project: Project, name: ResourceName);
22
- private handleNameChange;
22
+ /**
23
+ * Handle name changes for graph models
24
+ * @param existingName The previous name before the change
25
+ */
26
+ protected onNameChange(existingName: string): Promise<void>;
23
27
  /**
24
28
  * Sets new metadata into the graph model object graph model.
25
29
  * @param newContent metadata content for the graph model.
@@ -53,9 +57,8 @@ export declare class GraphModelResource extends FolderResource {
53
57
  * Updates graph model resource.
54
58
  * @param key Key to modify
55
59
  * @param op Operation to perform on 'key'
56
- * @throws if key is unknown.
57
60
  */
58
- update<Type>(key: string, op: Operation<Type>): Promise<void>;
61
+ update<Type>(key: GraphModelUpdateKey, op: Operation<Type>): Promise<void>;
59
62
  /**
60
63
  * List where this resource is used.
61
64
  * Always returns card key references first, then calculation references.
@@ -25,8 +25,11 @@ export class GraphModelResource extends FolderResource {
25
25
  this.contentSchema = super.contentSchemaContent(this.contentSchemaId);
26
26
  this.initialize();
27
27
  }
28
- // When resource name changes.
29
- async handleNameChange(existingName) {
28
+ /**
29
+ * Handle name changes for graph models
30
+ * @param existingName The previous name before the change
31
+ */
32
+ async onNameChange(existingName) {
30
33
  await Promise.all([
31
34
  super.updateHandleBars(existingName, this.content.name, [
32
35
  await this.calculationFile(),
@@ -87,48 +90,32 @@ export class GraphModelResource extends FolderResource {
87
90
  async rename(newName) {
88
91
  const existingName = this.content.name;
89
92
  await super.rename(newName);
90
- return this.handleNameChange(existingName);
93
+ return this.onNameChange(existingName);
91
94
  }
92
95
  /**
93
96
  * Shows metadata of the resource.
94
97
  * @returns graph model metadata.
95
98
  */
96
99
  async show() {
97
- const showOnlyFileName = true;
98
100
  const baseData = (await super.show());
99
101
  return {
100
102
  ...baseData,
101
- calculationFile: await this.calculationFile(showOnlyFileName),
103
+ content: (await super.contentData()),
102
104
  };
103
105
  }
104
106
  /**
105
107
  * Updates graph model resource.
106
108
  * @param key Key to modify
107
109
  * @param op Operation to perform on 'key'
108
- * @throws if key is unknown.
109
110
  */
110
111
  async update(key, op) {
111
- const nameChange = key === 'name';
112
- const existingName = this.content.name;
113
- await super.update(key, op);
114
- const content = structuredClone(this.content);
115
- if (key === 'name') {
116
- content.name = super.handleScalar(op);
117
- }
118
- else if (key === 'displayName') {
119
- content.displayName = super.handleScalar(op);
120
- }
121
- else if (key === 'description') {
122
- content.description = super.handleScalar(op);
123
- }
124
- else if (key === 'category') {
112
+ if (key === 'category') {
113
+ const content = structuredClone(this.content);
125
114
  content.category = super.handleScalar(op);
115
+ await super.postUpdate(content, key, op);
116
+ return;
126
117
  }
127
- await super.postUpdate(content, key, op);
128
- // Renaming this graph model causes that references to its name must be updated.
129
- if (nameChange) {
130
- await this.handleNameChange(existingName);
131
- }
118
+ await super.update(key, op);
132
119
  }
133
120
  /**
134
121
  * List where this resource is used.
@@ -1 +1 @@
1
- {"version":3,"file":"graph-model-resource.js","sourceRoot":"","sources":["../../src/resources/graph-model-resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-model-resource.js","sourceRoot":"","sources":["../../src/resources/graph-model-resource.ts"],"names":[],"mappings":"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"}
@@ -13,13 +13,17 @@
13
13
  */
14
14
  import type { Card, Operation, Project, ResourceName } from './folder-resource.js';
15
15
  import { FolderResource } from './folder-resource.js';
16
- import type { GraphView, GraphViewMetadata } from '../interfaces/resource-interfaces.js';
16
+ import type { GraphView, GraphViewMetadata, GraphViewUpdateKey } from '../interfaces/resource-interfaces.js';
17
17
  /**
18
18
  * Graph view resource class.
19
19
  */
20
20
  export declare class GraphViewResource extends FolderResource {
21
21
  constructor(project: Project, name: ResourceName);
22
- private handleNameChange;
22
+ /**
23
+ * Handle name changes for graph views
24
+ * @param existingName The previous name before the change
25
+ */
26
+ protected onNameChange(existingName: string): Promise<void>;
23
27
  /**
24
28
  * Sets new metadata into the graph view object.
25
29
  * @param newContent metadata content for the graph view.
@@ -53,9 +57,8 @@ export declare class GraphViewResource extends FolderResource {
53
57
  * Updates graph view resource.
54
58
  * @param key Key to modify
55
59
  * @param op Operation to perform on 'key'
56
- * @throws if key is unknown.
57
60
  */
58
- update<Type>(key: string, op: Operation<Type>): Promise<void>;
61
+ update<Type>(key: GraphViewUpdateKey, op: Operation<Type>): Promise<void>;
59
62
  /**
60
63
  * List where this resource is used.
61
64
  * Always returns card key references first, then calculation references.