@thinkwise/testwise 0.2.0-beta.3 → 0.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.
- package/Testwise.ts +8 -7
- package/artifact-builder/ArtifactManager.ts +0 -1
- package/artifact-builder/InterfaceGenerator.ts +73 -83
- package/artifact-builder/ModelDataBuilder.ts +74 -86
- package/artifact-builder/ModelDataRefiner.ts +18 -13
- package/artifact-builder/SchemaGenerator.ts +1 -4
- package/artifact-builder/ScreenInterfaceRefiner.ts +0 -5
- package/artifact-builder/SelectorBuilder.ts +8 -1
- package/artifact-builder/SubjectComponentGenerator.ts +77 -7
- package/artifact-builder/SubjectGenerator.ts +3 -3
- package/artifact-builder/SubjectRegistration.ts +69 -61
- package/artifact-builder/helpers/DataRetriever.ts +6 -3
- package/artifact-builder/helpers/NamingHandler.ts +28 -20
- package/artifact-builder/helpers/Stopwatch.ts +13 -0
- package/artifact-builder/helpers/index.ts +1 -0
- package/components/BaseComponentObjects.ts +4 -1
- package/components/action-bar/ActionBar.ts +3 -3
- package/components/grid/Grid.ts +18 -21
- package/components/tab/BaseTab.ts +2 -2
- package/components/tab/BaseTabObjects.ts +1 -1
- package/components/tab/DetailTabPage.ts +2 -2
- package/components/tab/Tab.ts +4 -4
- package/controls/LookupDropdown.ts +7 -2
- package/dist/Testwise.d.ts +1 -0
- package/dist/Testwise.js +15 -6
- package/dist/Testwise.js.map +1 -1
- package/dist/artifact-builder/ArtifactManager.js.map +1 -1
- package/dist/artifact-builder/InterfaceGenerator.d.ts +1 -1
- package/dist/artifact-builder/InterfaceGenerator.js +60 -67
- package/dist/artifact-builder/InterfaceGenerator.js.map +1 -1
- package/dist/artifact-builder/ModelDataBuilder.js +49 -60
- package/dist/artifact-builder/ModelDataBuilder.js.map +1 -1
- package/dist/artifact-builder/ModelDataRefiner.js +11 -7
- package/dist/artifact-builder/ModelDataRefiner.js.map +1 -1
- package/dist/artifact-builder/SchemaGenerator.js +0 -2
- package/dist/artifact-builder/SchemaGenerator.js.map +1 -1
- package/dist/artifact-builder/ScreenInterfaceRefiner.js +0 -5
- package/dist/artifact-builder/ScreenInterfaceRefiner.js.map +1 -1
- package/dist/artifact-builder/SelectorBuilder.js +3 -1
- package/dist/artifact-builder/SelectorBuilder.js.map +1 -1
- package/dist/artifact-builder/SubjectComponentGenerator.d.ts +4 -0
- package/dist/artifact-builder/SubjectComponentGenerator.js +61 -5
- package/dist/artifact-builder/SubjectComponentGenerator.js.map +1 -1
- package/dist/artifact-builder/SubjectGenerator.js +1 -1
- package/dist/artifact-builder/SubjectGenerator.js.map +1 -1
- package/dist/artifact-builder/SubjectRegistration.d.ts +10 -11
- package/dist/artifact-builder/SubjectRegistration.js +52 -44
- package/dist/artifact-builder/SubjectRegistration.js.map +1 -1
- package/dist/artifact-builder/helpers/DataRetriever.js +4 -3
- package/dist/artifact-builder/helpers/DataRetriever.js.map +1 -1
- package/dist/artifact-builder/helpers/NamingHandler.d.ts +2 -1
- package/dist/artifact-builder/helpers/NamingHandler.js +23 -16
- package/dist/artifact-builder/helpers/NamingHandler.js.map +1 -1
- package/dist/artifact-builder/helpers/Stopwatch.d.ts +5 -0
- package/dist/artifact-builder/helpers/Stopwatch.js +13 -0
- package/dist/artifact-builder/helpers/Stopwatch.js.map +1 -0
- package/dist/artifact-builder/helpers/index.d.ts +1 -0
- package/dist/artifact-builder/helpers/index.js +1 -0
- package/dist/artifact-builder/helpers/index.js.map +1 -1
- package/dist/components/BaseComponentObjects.d.ts +1 -0
- package/dist/components/BaseComponentObjects.js +3 -1
- package/dist/components/BaseComponentObjects.js.map +1 -1
- package/dist/components/action-bar/ActionBar.d.ts +1 -1
- package/dist/components/action-bar/ActionBar.js +3 -3
- package/dist/components/grid/Grid.d.ts +1 -0
- package/dist/components/grid/Grid.js +4 -1
- package/dist/components/grid/Grid.js.map +1 -1
- package/dist/components/tab/BaseTab.d.ts +2 -2
- package/dist/components/tab/BaseTab.js +2 -2
- package/dist/components/tab/BaseTab.js.map +1 -1
- package/dist/components/tab/BaseTabObjects.js +1 -1
- package/dist/components/tab/BaseTabObjects.js.map +1 -1
- package/dist/components/tab/DetailTabPage.d.ts +2 -2
- package/dist/components/tab/DetailTabPage.js +2 -2
- package/dist/components/tab/DetailTabPage.js.map +1 -1
- package/dist/components/tab/Tab.d.ts +3 -3
- package/dist/components/tab/Tab.js +4 -4
- package/dist/components/tab/Tab.js.map +1 -1
- package/dist/controls/LookupDropdown.d.ts +3 -7
- package/dist/controls/LookupDropdown.js.map +1 -1
- package/dist/enums/ElementTypes.d.ts +1 -1
- package/dist/enums/ElementTypes.js +1 -1
- package/dist/enums/ElementTypes.js.map +1 -1
- package/dist/helpers/ConfigChecker.d.ts +3 -0
- package/dist/helpers/ConfigChecker.js +7 -0
- package/dist/helpers/ConfigChecker.js.map +1 -0
- package/dist/helpers/LoginHelper.js +1 -1
- package/dist/helpers/LoginHelper.js.map +1 -1
- package/dist/interfaces/IComponentObjects.d.ts +1 -0
- package/dist/page-extensions/SubjectRegistry.d.ts +0 -8
- package/dist/page-extensions/SubjectRegistry.js +2 -6
- package/dist/page-extensions/SubjectRegistry.js.map +1 -1
- package/dist/page-extensions/index.d.ts +0 -1
- package/dist/page-extensions/index.js +0 -1
- package/dist/page-extensions/index.js.map +1 -1
- package/dist/services/IndiciumApi.service.d.ts +27 -0
- package/dist/services/IndiciumApi.service.js +135 -0
- package/dist/services/IndiciumApi.service.js.map +1 -0
- package/dist/templates/test-artifacts/SubjectPageBase.d.ts +5 -0
- package/dist/templates/test-artifacts/SubjectPageBase.js +6 -0
- package/dist/templates/test-artifacts/SubjectPageBase.js.map +1 -0
- package/dist/templates/test-artifacts/screens/index.d.ts +1 -0
- package/dist/templates/test-artifacts/screens/index.js +2 -0
- package/dist/templates/test-artifacts/screens/index.js.map +1 -0
- package/dist/templates/test-artifacts/subjects/index.d.ts +1 -0
- package/dist/templates/test-artifacts/subjects/index.js +2 -0
- package/dist/templates/test-artifacts/subjects/index.js.map +1 -0
- package/enums/ElementTypes.ts +2 -2
- package/helpers/ConfigChecker.ts +7 -0
- package/helpers/LoginHelper.ts +1 -1
- package/interfaces/IComponentObjects.ts +1 -0
- package/interfaces/IRegisteredSubjects.ts +1 -1
- package/package.json +5 -3
- package/page-extensions/SubjectRegistry.ts +2 -19
- package/page-extensions/index.ts +0 -1
- package/scripts/main.js +63 -82
- package/scripts/postinstall.js +40 -42
- package/scripts/setup.js +37 -37
- package/scripts/sync.js +726 -39
- package/services/ConfigBuilder.ts +1 -1
- package/services/IndiciumApi.service.ts +159 -0
- package/templates/SubjectRegistry.template.ts +73 -0
- package/templates/test-artifacts/SubjectPageBase.ts +9 -0
- package/templates/test-artifacts/screens/index.ts +0 -0
- package/templates/test-artifacts/subjects/index.ts +0 -0
- package/tsconfig.json +2 -3
- package/types/Components.ts +1 -1
- package/dist/config.json +0 -10
- package/dist/page-extensions/SubjectProvider.d.ts +0 -11
- package/dist/page-extensions/SubjectProvider.js +0 -24
- package/dist/page-extensions/SubjectProvider.js.map +0 -1
- package/dist/test-artifacts/index.d.ts +0 -3
- package/dist/test-artifacts/index.js +0 -4
- package/dist/test-artifacts/index.js.map +0 -1
- package/page-extensions/SubjectProvider.ts +0 -41
- package/test-artifacts/index.ts +0 -3
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
import type { Locator } from '@playwright/test';
|
|
4
4
|
import { escapeRegex } from '../helpers/RegexHelper.js';
|
|
5
5
|
|
|
6
|
+
export type ILookupDropdown = Locator & {
|
|
7
|
+
lookupSelect(optionToSelect: string): Promise<void>;
|
|
8
|
+
selectOption(optionText: string): Promise<void>;
|
|
9
|
+
};
|
|
10
|
+
|
|
6
11
|
class LookupDropdown {
|
|
7
12
|
private _locator: Locator;
|
|
8
13
|
|
|
@@ -34,7 +39,7 @@ class LookupDropdown {
|
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
|
|
37
|
-
export function createLookupDropdown(locator: Locator):
|
|
42
|
+
export function createLookupDropdown(locator: Locator): ILookupDropdown {
|
|
38
43
|
const dropdown = new LookupDropdown(locator);
|
|
39
44
|
|
|
40
45
|
return new Proxy(dropdown, {
|
|
@@ -50,5 +55,5 @@ export function createLookupDropdown(locator: Locator): LookupDropdown & Locator
|
|
|
50
55
|
}
|
|
51
56
|
return value;
|
|
52
57
|
}
|
|
53
|
-
}) as
|
|
58
|
+
}) as unknown as ILookupDropdown;
|
|
54
59
|
}
|
package/dist/Testwise.d.ts
CHANGED
package/dist/Testwise.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { test as base } from '@playwright/test';
|
|
2
|
+
import { test as bddBase } from 'playwright-bdd';
|
|
2
3
|
import { Components, GoToDeepLink, LoginFeatures, UserSimulation } from './page-extensions/index.js';
|
|
3
|
-
import { SubjectProvider } from './page-extensions/SubjectProvider.js';
|
|
4
4
|
import { SubjectRegistry } from './page-extensions/SubjectRegistry.js';
|
|
5
5
|
import { WaitEventHandler } from './page-extensions/WaitEventHandler.js';
|
|
6
6
|
import { ClickOverride } from './page-overrides/ClickOverride.js';
|
|
@@ -8,9 +8,18 @@ import { FillOverride } from './page-overrides/FillOverride.js';
|
|
|
8
8
|
function combineExtensions(baseTest, ...extensions) {
|
|
9
9
|
return extensions.reduce((test, Extension) => new Extension(test).test, baseTest);
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
// Override section
|
|
13
|
-
ClickOverride,
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
const extensions = [
|
|
12
|
+
// Override section
|
|
13
|
+
ClickOverride,
|
|
14
|
+
FillOverride,
|
|
15
|
+
// Extend section
|
|
16
|
+
Components,
|
|
17
|
+
GoToDeepLink,
|
|
18
|
+
LoginFeatures,
|
|
19
|
+
UserSimulation,
|
|
20
|
+
WaitEventHandler,
|
|
21
|
+
SubjectRegistry
|
|
22
|
+
];
|
|
23
|
+
export const test = combineExtensions(base, ...extensions);
|
|
24
|
+
export const bddTest = combineExtensions(bddBase, ...extensions);
|
|
16
25
|
//# sourceMappingURL=Testwise.js.map
|
package/dist/Testwise.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Testwise.js","sourceRoot":"","sources":["../Testwise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Testwise.js","sourceRoot":"","sources":["../Testwise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,SAAS,iBAAiB,CAAC,QAAc,EAAE,GAAG,UAAkD;IAC9F,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,mBAAmB;IACnB,aAAa;IACb,YAAY;IAEZ,iBAAiB;IACjB,UAAU;IACV,YAAY;IACZ,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS,iBAAiB,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAS,iBAAiB,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArtifactManager.js","sourceRoot":"","sources":["../../artifact-builder/ArtifactManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ArtifactManager.js","sourceRoot":"","sources":["../../artifact-builder/ArtifactManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,OAAO,eAAe;IAI1B;QACE,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACzF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC5E,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -2,6 +2,7 @@ export declare class InterfaceGenerator {
|
|
|
2
2
|
private readonly _namingHandler;
|
|
3
3
|
private _filename;
|
|
4
4
|
private _dirname;
|
|
5
|
+
private _screensToBuild;
|
|
5
6
|
constructor();
|
|
6
7
|
generateScreenInterfacesFromSchemas(): Promise<void>;
|
|
7
8
|
generateSubjectInterfacesFromSchemas(): Promise<void>;
|
|
@@ -11,6 +12,5 @@ export declare class InterfaceGenerator {
|
|
|
11
12
|
private verifySubjectComponentsDirectory;
|
|
12
13
|
private createInterfaceFromSchema;
|
|
13
14
|
private generateInterfacesFromSchemaFiles;
|
|
14
|
-
private runPrettierOnSpecifiedDirectory;
|
|
15
15
|
getScreenSchemaFilesPath(): string;
|
|
16
16
|
}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { exec } from 'node:child_process';
|
|
2
1
|
import fs from 'node:fs';
|
|
3
2
|
import path from 'node:path';
|
|
4
3
|
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import * as prettier from 'prettier';
|
|
5
|
+
import { FetchingJSONSchemaStore, InputData, JSONSchemaInput, quicktype } from 'quicktype-core';
|
|
5
6
|
import { PathResolver } from '../helpers/PathResolver.js';
|
|
6
|
-
import { NamingHandler } from '../index.js';
|
|
7
|
+
import { DataRetriever, NamingHandler } from '../index.js';
|
|
7
8
|
export class InterfaceGenerator {
|
|
8
9
|
constructor() {
|
|
9
10
|
this._namingHandler = new NamingHandler();
|
|
10
11
|
this._filename = fileURLToPath(import.meta.url);
|
|
11
12
|
this._dirname = path.dirname(this._filename);
|
|
13
|
+
this._screensToBuild = new DataRetriever().getScreensToBuild();
|
|
12
14
|
}
|
|
13
15
|
async generateScreenInterfacesFromSchemas() {
|
|
14
16
|
const screenOutputDirectory = path.resolve(this._dirname, '..', '..', 'test-artifacts/screens/');
|
|
15
17
|
this.verifyOutputDirectory(screenOutputDirectory);
|
|
16
18
|
const schemasDirectory = this.getScreenSchemaFilesPath();
|
|
17
19
|
await this.generateInterfacesFromSchemaFiles(schemasDirectory, SchemaType.Screen, screenOutputDirectory);
|
|
18
|
-
await this.runPrettierOnSpecifiedDirectory(screenOutputDirectory);
|
|
19
20
|
console.info('All screen schemas processed.');
|
|
20
21
|
}
|
|
21
22
|
async generateSubjectInterfacesFromSchemas() {
|
|
@@ -24,18 +25,15 @@ export class InterfaceGenerator {
|
|
|
24
25
|
this.verifyGeneratedSubjectSchemasDirectory(schemasDirectory);
|
|
25
26
|
this.verifyOutputDirectory(subjectOutputDirectory);
|
|
26
27
|
await this.generateInterfacesFromSchemaFiles(schemasDirectory, SchemaType.Subject, subjectOutputDirectory);
|
|
27
|
-
await this.runPrettierOnSpecifiedDirectory(subjectOutputDirectory);
|
|
28
28
|
console.info('All subject schemas processed.');
|
|
29
29
|
}
|
|
30
30
|
verifyGeneratedSubjectSchemasDirectory(directory) {
|
|
31
31
|
if (!fs.existsSync(directory)) {
|
|
32
|
-
console.error(`Schemas directory not found: ${directory}`);
|
|
33
32
|
return;
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
35
|
verifyOutputDirectory(directory) {
|
|
37
36
|
if (!fs.existsSync(directory)) {
|
|
38
|
-
console.info(`Creating output directory: ${directory}`);
|
|
39
37
|
fs.mkdirSync(directory, { recursive: true });
|
|
40
38
|
}
|
|
41
39
|
}
|
|
@@ -49,73 +47,68 @@ export class InterfaceGenerator {
|
|
|
49
47
|
}
|
|
50
48
|
return componentsDirectory;
|
|
51
49
|
}
|
|
52
|
-
createInterfaceFromSchema(schemasDirectory, outputPath, file, isInterface = false) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const interfaceNameMatch = fileContent.match(new RegExp(`interface ${fileName}`, 'i'));
|
|
65
|
-
if (interfaceNameMatch) {
|
|
66
|
-
const correctInterfaceName = isInterface
|
|
67
|
-
? this._namingHandler.generateScreenInterfaceName(file.slice(0, file.lastIndexOf('.')))
|
|
68
|
-
: this._namingHandler.snakeToPascalCase(file.slice(0, file.lastIndexOf('.')));
|
|
69
|
-
const updatedContent = fileContent.replace(new RegExp(`interface ${interfaceNameMatch[0].split(' ')[1]}`), `interface ${correctInterfaceName}`);
|
|
70
|
-
fs.writeFileSync(outputPath, updatedContent, 'utf-8');
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch (fsError) {
|
|
74
|
-
console.error(`Error post-processing ${outputPath}:`, fsError instanceof Error ? fsError.message : String(fsError));
|
|
75
|
-
reject(fsError);
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
console.info(`Generated: ${outputPath}`);
|
|
79
|
-
resolve(true);
|
|
50
|
+
async createInterfaceFromSchema(schemasDirectory, outputPath, file, isInterface = false) {
|
|
51
|
+
try {
|
|
52
|
+
const baseFileName = file.slice(0, file.lastIndexOf('.'));
|
|
53
|
+
const correctInterfaceName = isInterface
|
|
54
|
+
? this._namingHandler.generateScreenInterfaceName(baseFileName)
|
|
55
|
+
: this._namingHandler.snakeToPascalCase(baseFileName);
|
|
56
|
+
const schemaPath = path.join(schemasDirectory, file);
|
|
57
|
+
const schemaContent = fs.readFileSync(schemaPath, 'utf-8');
|
|
58
|
+
const schemaInput = new JSONSchemaInput(new FetchingJSONSchemaStore());
|
|
59
|
+
await schemaInput.addSource({
|
|
60
|
+
name: correctInterfaceName,
|
|
61
|
+
schema: schemaContent
|
|
80
62
|
});
|
|
81
|
-
|
|
63
|
+
const inputData = new InputData();
|
|
64
|
+
inputData.addInput(schemaInput);
|
|
65
|
+
const result = await quicktype({
|
|
66
|
+
inputData,
|
|
67
|
+
lang: 'typescript',
|
|
68
|
+
rendererOptions: { 'just-types': 'true', 'nice-property-names': 'true' }
|
|
69
|
+
});
|
|
70
|
+
let updatedContent = result.lines.join('\n');
|
|
71
|
+
updatedContent = updatedContent.replace(/interface\s+\w+/, `interface ${correctInterfaceName}`);
|
|
72
|
+
const formattedContent = await prettier.format(updatedContent, {
|
|
73
|
+
parser: 'typescript',
|
|
74
|
+
singleQuote: true,
|
|
75
|
+
semi: true,
|
|
76
|
+
trailingComma: 'all'
|
|
77
|
+
});
|
|
78
|
+
fs.writeFileSync(outputPath, formattedContent, 'utf-8');
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
if (error instanceof Error) {
|
|
83
|
+
console.error(`Error processing ${file}:`, error.message);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
console.error(`Error processing ${file}:`, error);
|
|
87
|
+
}
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
82
90
|
}
|
|
83
91
|
async generateInterfacesFromSchemaFiles(schemasDirectory, schemaType, outputPath) {
|
|
84
92
|
const schemaFiles = this.getGeneratedSubjectSchemas(schemasDirectory);
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
const tasks = schemaFiles.map(async (file) => {
|
|
94
|
+
const fileName = this._namingHandler.getPascalSubjectComponentName(file);
|
|
95
|
+
if (schemaType === SchemaType.Subject) {
|
|
96
|
+
const subject = this._namingHandler.getSubjectFromFileName(fileName);
|
|
97
|
+
const componentsDirectory = this.verifySubjectComponentsDirectory(outputPath, subject);
|
|
98
|
+
const perFileOutputPath = path.join(componentsDirectory, `${fileName}.ts`);
|
|
99
|
+
return this.createInterfaceFromSchema(schemasDirectory, perFileOutputPath, file);
|
|
100
|
+
}
|
|
101
|
+
if (schemaType === SchemaType.Screen) {
|
|
102
|
+
const fileNameSnakeCase = this._namingHandler.pascalToSnakeCase(fileName);
|
|
103
|
+
if (this._screensToBuild.length > 0 && !this._screensToBuild.includes(fileNameSnakeCase)) {
|
|
104
|
+
return Promise.resolve(true);
|
|
93
105
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
else {
|
|
99
|
-
reject(new Error(`Unsupported schema type: ${schemaType}`));
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
await Promise.all(quicktypePromises);
|
|
104
|
-
}
|
|
105
|
-
async runPrettierOnSpecifiedDirectory(directory) {
|
|
106
|
-
const packageDir = path.resolve(this._dirname, '..');
|
|
107
|
-
const relativeDir = path.relative(packageDir, directory);
|
|
108
|
-
await new Promise((resolve, reject) => {
|
|
109
|
-
exec(`npx prettier --write "${relativeDir}"`, { cwd: packageDir }, (prettierError) => {
|
|
110
|
-
if (prettierError) {
|
|
111
|
-
console.error(`Prettier failed for ${directory}:`, prettierError.message);
|
|
112
|
-
reject(prettierError);
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
console.info(`Formatted all files in: ${directory}`);
|
|
116
|
-
resolve(true);
|
|
117
|
-
});
|
|
106
|
+
const perFileOutputPath = path.join(outputPath, `I${fileName}.ts`);
|
|
107
|
+
return this.createInterfaceFromSchema(schemasDirectory, perFileOutputPath, file, true);
|
|
108
|
+
}
|
|
109
|
+
throw new Error(`Unsupported schema type: ${schemaType}`);
|
|
118
110
|
});
|
|
111
|
+
await Promise.all(tasks);
|
|
119
112
|
}
|
|
120
113
|
getScreenSchemaFilesPath() {
|
|
121
114
|
const directory = new PathResolver().getConsumerRootDirectory();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InterfaceGenerator.js","sourceRoot":"","sources":["../../artifact-builder/InterfaceGenerator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InterfaceGenerator.js","sourceRoot":"","sources":["../../artifact-builder/InterfaceGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,18 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
/** biome-ignore-all lint/style/noNonNullAssertion: Because I can */
|
|
3
3
|
/** biome-ignore-all lint/suspicious/noExplicitAny: Because I can */
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import * as fs from 'node:fs/promises';
|
|
5
|
+
import * as path from 'node:path';
|
|
6
|
+
import { indiciumApi } from '../services/IndiciumApi.service.js';
|
|
6
7
|
import { DataRetriever } from './helpers/DataRetriever.js';
|
|
7
|
-
const serviceUrl = testwiseConfig().get('environmentSettings.serviceUrl').replace(/\/$/, '');
|
|
8
|
-
const metaEndpoint = testwiseConfig()
|
|
9
|
-
.get('environmentSettings.metaEndpoint')
|
|
10
|
-
.replace(/^\//, '')
|
|
11
|
-
.replace(/\/$/, '');
|
|
12
|
-
const authUser = testwiseConfig().get('environmentSettings.authUser');
|
|
13
|
-
const authUserPassword = testwiseConfig().get('environmentSettings.authUserPassword');
|
|
14
|
-
const axiosInstance = axios.create({
|
|
15
|
-
baseURL: serviceUrl,
|
|
16
|
-
headers: {
|
|
17
|
-
Authorization: `Basic ${Buffer.from(`${authUser}:${authUserPassword}`).toString('base64')}`,
|
|
18
|
-
accept: '*/*'
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
const guiApplId = await getGuiApplId();
|
|
22
8
|
export async function buildSubjects() {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
9
|
+
if (!(await indiciumApi.canConnectToProject())) {
|
|
10
|
+
console.log('Cannot connect to Indicium API. Aborting subject build.');
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const rawTables = await indiciumApi.getAllTables();
|
|
14
|
+
const subjects = rawTables
|
|
15
|
+
.flatMap((tab) => {
|
|
26
16
|
const base = {
|
|
27
17
|
subject: tab.tab_id,
|
|
28
18
|
variant: tab.tab_variant_id
|
|
@@ -30,34 +20,53 @@ export async function buildSubjects() {
|
|
|
30
20
|
return [
|
|
31
21
|
{ ...base, screentype_id: tab.main_screen_type_id, screentype_context: 'main' },
|
|
32
22
|
{ ...base, screentype_id: tab.detail_screen_type_id, screentype_context: 'detail' },
|
|
33
|
-
{ ...base, screentype_id: tab.
|
|
34
|
-
{ ...base, screentype_id: tab.
|
|
23
|
+
{ ...base, screentype_id: tab.popup_screen_type_id, screentype_context: 'popup' },
|
|
24
|
+
{ ...base, screentype_id: tab.zoom_screen_type_id, screentype_context: 'zoom' }
|
|
35
25
|
];
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
const
|
|
26
|
+
})
|
|
27
|
+
.filter((item) => item.screentype_id !== 'not_visible_in_gui');
|
|
28
|
+
const screentypeOrder = ['main', 'detail', 'popup', 'zoom'];
|
|
29
|
+
subjects.sort((a, b) => {
|
|
30
|
+
return (a.subject.localeCompare(b.subject) ||
|
|
31
|
+
a.variant.localeCompare(b.variant) ||
|
|
32
|
+
screentypeOrder.indexOf(a.screentype_context) - screentypeOrder.indexOf(b.screentype_context));
|
|
33
|
+
});
|
|
34
|
+
const allProperties = (await indiciumApi.getAllColumns()).map((col) => ({
|
|
39
35
|
subject: col.tab_id,
|
|
40
36
|
variant: col.tab_variant_id,
|
|
41
37
|
col: col.col_id,
|
|
42
38
|
control_type: col.control_id || ''
|
|
43
39
|
}));
|
|
44
|
-
for (const subject of
|
|
40
|
+
for (const subject of subjects) {
|
|
45
41
|
const matchingProperties = allProperties.filter((prop) => prop.subject === subject.subject && prop.variant === subject.variant);
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
subject.properties = matchingProperties
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
44
|
+
.map(({ subject, variant, ...rest }) => rest)
|
|
45
|
+
.sort((a, b) => a.col.localeCompare(b.col));
|
|
48
46
|
}
|
|
47
|
+
const subjectsWithLookupsSet = await setLookupDropdowns(subjects);
|
|
49
48
|
const seedDataDirectory = new DataRetriever().getSeedDataDirectory();
|
|
50
|
-
const fs = await import('node:fs').then(mod => mod.promises);
|
|
51
|
-
const path = await import('node:path');
|
|
52
49
|
const seedDataPath = path.join(seedDataDirectory, 'subjects.json');
|
|
53
|
-
await fs.writeFile(seedDataPath, JSON.stringify(
|
|
50
|
+
await fs.writeFile(seedDataPath, JSON.stringify(subjectsWithLookupsSet, null, 2), 'utf-8');
|
|
54
51
|
console.log(`Seed data written to ${seedDataPath}`);
|
|
55
52
|
}
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
async function setLookupDropdowns(subjects) {
|
|
54
|
+
const lookupMappings = await indiciumApi.getLookups();
|
|
55
|
+
for (const mapping of lookupMappings) {
|
|
56
|
+
const targetSubject = subjects.find((subj) => subj.subject === mapping.tab_id && subj.variant === mapping.tab_variant_id);
|
|
57
|
+
const targetProperty = targetSubject?.properties?.find((prop) => prop.col === mapping.col_id);
|
|
58
|
+
if (targetProperty) {
|
|
59
|
+
targetProperty.control_type = 'LOOKUP_DROPDOWN';
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return subjects;
|
|
63
|
+
}
|
|
58
64
|
export async function buildScreens() {
|
|
59
|
-
|
|
60
|
-
|
|
65
|
+
if (!(await indiciumApi.canConnectToProject())) {
|
|
66
|
+
console.log('Cannot connect to Indicium API. Aborting screen build.');
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const rawComponents = await indiciumApi.getScreenComponents();
|
|
61
70
|
const screenMap = new Map();
|
|
62
71
|
for (const item of rawComponents) {
|
|
63
72
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
@@ -81,21 +90,21 @@ export async function buildScreens() {
|
|
|
81
90
|
const required = [];
|
|
82
91
|
for (const comp of screenData.Components) {
|
|
83
92
|
const type = comp.ScreenComponentType;
|
|
84
|
-
properties[comp.ScreenComponentId] = {
|
|
93
|
+
properties[comp.ScreenComponentId] = { $ref: `#/definitions/${type}` };
|
|
85
94
|
required.push(comp.ScreenComponentId);
|
|
86
95
|
usedTypes.add(type);
|
|
87
96
|
}
|
|
88
97
|
const schema = {
|
|
89
98
|
title: `I_${screenTypeId}`,
|
|
90
|
-
type:
|
|
99
|
+
type: 'object',
|
|
91
100
|
properties,
|
|
92
101
|
required,
|
|
93
102
|
additionalProperties: false,
|
|
94
103
|
definitions: Array.from(usedTypes).reduce((acc, type) => {
|
|
95
104
|
acc[type] = {
|
|
96
|
-
type:
|
|
97
|
-
properties: { temp: { type:
|
|
98
|
-
required: [
|
|
105
|
+
type: 'object',
|
|
106
|
+
properties: { temp: { type: 'string' } },
|
|
107
|
+
required: ['temp'],
|
|
99
108
|
additionalProperties: false
|
|
100
109
|
};
|
|
101
110
|
return acc;
|
|
@@ -105,24 +114,4 @@ export async function buildScreens() {
|
|
|
105
114
|
}
|
|
106
115
|
console.log('Screen schemas generated successfully.');
|
|
107
116
|
}
|
|
108
|
-
async function getGuiApplId() {
|
|
109
|
-
const guiApplAlias = testwiseConfig().get('environmentSettings.guiApplAlias');
|
|
110
|
-
if (guiApplAlias) {
|
|
111
|
-
const response = await axiosInstance.get(`/iam/${metaEndpoint}/i_ui_gui_appl`);
|
|
112
|
-
const guiAppl = response.data?.value.find((appl) => {
|
|
113
|
-
const currentAlias = appl?.gui_appl_alias?.toString();
|
|
114
|
-
const targetAlias = guiApplAlias?.toString();
|
|
115
|
-
return currentAlias === targetAlias;
|
|
116
|
-
});
|
|
117
|
-
if (guiAppl) {
|
|
118
|
-
return guiAppl.gui_appl_id;
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
throw new Error(`No GUI Application found for GUI Application Alias: ${guiApplAlias}`);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
throw new Error('GUI Application Alias is not defined in the configuration.');
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
117
|
//# sourceMappingURL=ModelDataBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelDataBuilder.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataBuilder.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,oEAAoE;AACpE,oEAAoE;AACpE,OAAO,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"ModelDataBuilder.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,22 +7,26 @@ export class ModelDataRefiner {
|
|
|
7
7
|
}
|
|
8
8
|
run() {
|
|
9
9
|
const seedDataDir = this._dataRetriever.getSeedDataDirectory();
|
|
10
|
+
const subjectsToBuildPath = path.resolve(seedDataDir, 'subjectsToBuild.json');
|
|
11
|
+
const screensToBuildPath = path.resolve(seedDataDir, 'screensToBuild.json');
|
|
10
12
|
const registeredSubjects = this._dataRetriever.getRegisteredSubjects();
|
|
11
13
|
if (!registeredSubjects || registeredSubjects.length === 0) {
|
|
12
|
-
console.
|
|
14
|
+
console.info('No registered subjects found.');
|
|
15
|
+
if (fs.existsSync(screensToBuildPath))
|
|
16
|
+
fs.unlinkSync(screensToBuildPath);
|
|
17
|
+
if (fs.existsSync(subjectsToBuildPath))
|
|
18
|
+
fs.unlinkSync(subjectsToBuildPath);
|
|
13
19
|
return;
|
|
14
20
|
}
|
|
15
21
|
const subjects = this._dataRetriever.getSubjectsSeedData();
|
|
16
|
-
const subjectsToBuild = subjects.filter(subject => registeredSubjects.some(registered => registered.subject === subject.subject &&
|
|
22
|
+
const subjectsToBuild = subjects.filter((subject) => registeredSubjects.some((registered) => registered.subject === subject.subject &&
|
|
17
23
|
(registered.variant != null ? registered.variant === subject.variant : subject.variant === '') &&
|
|
18
24
|
registered.screen_type === subject.screentype_context));
|
|
19
|
-
const subjectsToBuildPath = path.resolve(seedDataDir, 'subjectsToBuild.json');
|
|
20
25
|
fs.writeFileSync(subjectsToBuildPath, JSON.stringify(subjectsToBuild, null, 2));
|
|
21
26
|
console.log(`Created subjectsToBuild.json with ${subjectsToBuild.length} subjects.`);
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
console.log(`Created screensToBuild.json with ${screensToBuild.length} screens.`);
|
|
27
|
+
const screensToBuildList = Array.from(new Set(subjectsToBuild.map((subject) => subject.screentype_id)));
|
|
28
|
+
fs.writeFileSync(screensToBuildPath, JSON.stringify(screensToBuildList, null, 2));
|
|
29
|
+
console.log(`Created screensToBuild.json with ${screensToBuildList.length} screens.`);
|
|
26
30
|
}
|
|
27
31
|
}
|
|
28
32
|
//# sourceMappingURL=ModelDataRefiner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelDataRefiner.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,OAAO,gBAAgB;IAA7B;QACU,mBAAc,GAAG,IAAI,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelDataRefiner.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,OAAO,gBAAgB;IAA7B;QACU,mBAAc,GAAG,IAAI,aAAa,EAAE,CAAC;IAoC/C,CAAC;IAlCQ,GAAG;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;QAC/D,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC9E,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAiC,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC;QAErG,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAE9C,IAAI,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACzE,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAE3E,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;QAE3D,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClD,kBAAkB,CAAC,IAAI,CACrB,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;YACtC,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC;YAC9F,UAAU,CAAC,WAAW,KAAK,OAAO,CAAC,kBAAkB,CACxD,CACF,CAAC;QAEF,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,qCAAqC,eAAe,CAAC,MAAM,YAAY,CAAC,CAAC;QAErF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAExG,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,oCAAoC,kBAAkB,CAAC,MAAM,WAAW,CAAC,CAAC;IACxF,CAAC;CACF"}
|
|
@@ -33,11 +33,9 @@ export class SchemaGenerator {
|
|
|
33
33
|
switch (component) {
|
|
34
34
|
case 'Form':
|
|
35
35
|
this.createComponentSchema(subject, 'Form');
|
|
36
|
-
console.log(`Generated Form schema for subject: ${subject.subject}`);
|
|
37
36
|
break;
|
|
38
37
|
case 'Grid':
|
|
39
38
|
this.createComponentSchema(subject, 'Grid');
|
|
40
|
-
console.log(`Generated Grid schema for subject: ${subject.subject}`);
|
|
41
39
|
break;
|
|
42
40
|
}
|
|
43
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaGenerator.js","sourceRoot":"","sources":["../../artifact-builder/SchemaGenerator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SchemaGenerator.js","sourceRoot":"","sources":["../../artifact-builder/SchemaGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,6 @@ export class ScreenInterfaceRefiner {
|
|
|
9
9
|
this._screensDirectory = path.resolve(_dirname, '../../test-artifacts/screens');
|
|
10
10
|
}
|
|
11
11
|
refine() {
|
|
12
|
-
console.log('Refining interfaces in:', this._screensDirectory);
|
|
13
12
|
const screenFiles = this.getAllScreenInterfaceFiles();
|
|
14
13
|
screenFiles.forEach((screenFile) => {
|
|
15
14
|
const filePath = path.join(this._screensDirectory, screenFile);
|
|
@@ -23,10 +22,6 @@ export class ScreenInterfaceRefiner {
|
|
|
23
22
|
this.addImportStatements(screen, interfacesToRemove);
|
|
24
23
|
this.formatContent(screen);
|
|
25
24
|
fs.writeFileSync(filePath, screen.content, 'utf-8');
|
|
26
|
-
console.log(`Refined interfaces in: ${screenFile}`);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
console.log(`No additional interfaces to refine in: ${screenFile}`);
|
|
30
25
|
}
|
|
31
26
|
this.indexScreenInterface(screenFile);
|
|
32
27
|
});
|