@famgia/omnify 0.5.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/generators/contextGenerator.test.js +18 -16
- package/dist/__tests__/generators/contextGenerator.test.js.map +1 -1
- package/dist/__tests__/generators/enumGenerator.test.js +3 -3
- package/dist/__tests__/generators/enumGenerator.test.js.map +1 -1
- package/dist/generators/contextGenerator.d.ts.map +1 -1
- package/dist/generators/contextGenerator.js +58 -34
- package/dist/generators/contextGenerator.js.map +1 -1
- package/dist/generators/enumGenerator.d.ts.map +1 -1
- package/dist/generators/enumGenerator.js +9 -18
- package/dist/generators/enumGenerator.js.map +1 -1
- package/package.json +1 -1
|
@@ -21,23 +21,26 @@ describe('contextGenerator', () => {
|
|
|
21
21
|
],
|
|
22
22
|
},
|
|
23
23
|
];
|
|
24
|
-
it('should generate context with EnumOptions interface', () => {
|
|
24
|
+
it('should generate context with nested EnumOptions interface', () => {
|
|
25
25
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
26
26
|
expect(output).toContain("'use client';");
|
|
27
27
|
expect(output).toContain('// Auto-generated by @famgia/omnify');
|
|
28
28
|
expect(output).toContain('export interface EnumOptions {');
|
|
29
|
+
expect(output).toContain('User: {');
|
|
29
30
|
expect(output).toContain('status: Record<string, string>;');
|
|
30
31
|
expect(output).toContain('role: Record<string, string>;');
|
|
31
32
|
expect(output).toContain('prefectures: Record<string, string>;');
|
|
32
33
|
});
|
|
33
|
-
it('should generate
|
|
34
|
+
it('should generate EnumObjectName type for IDE autocomplete', () => {
|
|
34
35
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
35
|
-
expect(output).toContain('// Type-safe
|
|
36
|
-
expect(output).toContain("export type
|
|
36
|
+
expect(output).toContain('// Type-safe keys for IDE autocomplete');
|
|
37
|
+
expect(output).toContain("export type EnumObjectName = 'User';");
|
|
38
|
+
expect(output).toContain("export type UserEnumProperty = 'status' | 'role';");
|
|
37
39
|
});
|
|
38
|
-
it('should generate STATIC_ENUMS object', () => {
|
|
40
|
+
it('should generate nested STATIC_ENUMS object', () => {
|
|
39
41
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
40
42
|
expect(output).toContain('const STATIC_ENUMS: EnumOptions = {');
|
|
43
|
+
expect(output).toContain('User: {');
|
|
41
44
|
expect(output).toContain('status: {');
|
|
42
45
|
expect(output).toContain("ACTIVE: 'Active'");
|
|
43
46
|
expect(output).toContain("INACTIVE: 'Inactive'");
|
|
@@ -58,9 +61,9 @@ describe('contextGenerator', () => {
|
|
|
58
61
|
expect(output).toContain('enums: EnumOptions | null;');
|
|
59
62
|
expect(output).toContain('loading: boolean;');
|
|
60
63
|
expect(output).toContain('error: Error | null;');
|
|
61
|
-
expect(output).toContain('getLabel: (
|
|
62
|
-
expect(output).toContain('getValue: (
|
|
63
|
-
expect(output).toContain('getOptions: (
|
|
64
|
+
expect(output).toContain('getLabel: <T extends EnumObjectName>(objectName: T, propertyName: string, value: string | number) => string | undefined;');
|
|
65
|
+
expect(output).toContain('getValue: <T extends EnumObjectName>(objectName: T, propertyName: string, label: string) => string | undefined;');
|
|
66
|
+
expect(output).toContain('getOptions: <T extends EnumObjectName>(objectName: T, propertyName: string) => { value: string; label: string }[];');
|
|
64
67
|
});
|
|
65
68
|
it('should generate EnumsProvider component', () => {
|
|
66
69
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
@@ -68,21 +71,20 @@ describe('contextGenerator', () => {
|
|
|
68
71
|
expect(output).toContain('const [enums] = useState<EnumOptions>(STATIC_ENUMS);');
|
|
69
72
|
expect(output).toContain('<EnumsContext.Provider');
|
|
70
73
|
});
|
|
71
|
-
it('should generate getLabel helper method with
|
|
74
|
+
it('should generate getLabel helper method with 2-param signature', () => {
|
|
72
75
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
73
|
-
expect(output).toContain('const getLabel = (
|
|
76
|
+
expect(output).toContain('const getLabel = <T extends EnumObjectName>(objectName: T, propertyName: string, value: string | number): string | undefined => {');
|
|
74
77
|
expect(output).toContain('if (!enums) return undefined;');
|
|
75
|
-
expect(output).toContain('const enumData = enums[
|
|
76
|
-
expect(output).toContain('return enumData[String(value)];');
|
|
78
|
+
expect(output).toContain('const enumData = enums[objectName]?.[propertyName];');
|
|
77
79
|
});
|
|
78
|
-
it('should generate getValue helper method with
|
|
80
|
+
it('should generate getValue helper method with 2-param signature', () => {
|
|
79
81
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
80
|
-
expect(output).toContain('const getValue = (
|
|
82
|
+
expect(output).toContain('const getValue = <T extends EnumObjectName>(objectName: T, propertyName: string, label: string): string | undefined => {');
|
|
81
83
|
expect(output).toContain('return Object.entries(enumData).find(([_, l]) => l === label)?.[0];');
|
|
82
84
|
});
|
|
83
|
-
it('should generate getOptions helper method with
|
|
85
|
+
it('should generate getOptions helper method with 2-param signature', () => {
|
|
84
86
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
85
|
-
expect(output).toContain('const getOptions = (
|
|
87
|
+
expect(output).toContain('const getOptions = <T extends EnumObjectName>(objectName: T, propertyName: string): { value: string; label: string }[] => {');
|
|
86
88
|
expect(output).toContain('return Object.entries(enumData).map(([value, label]) => ({ value, label }));');
|
|
87
89
|
});
|
|
88
90
|
it('should generate useEnums hook', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextGenerator.test.js","sourceRoot":"","sources":["../../../src/__tests__/generators/contextGenerator.test.ts"],"names":[],"mappings":";;AAAA,wEAA4E;AAG5E,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACrC,MAAM,SAAS,GAAe;YAC1B;gBACI,UAAU,EAAE,MAAM;gBAClB,YAAY,EAAE,QAAQ;gBACtB,MAAM,EAAE;oBACJ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACpC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;iBAC3C;aACJ;YACD;gBACI,UAAU,EAAE,MAAM;gBAClB,YAAY,EAAE,MAAM;gBACpB,MAAM,EAAE;oBACJ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE;oBAC1C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;iBACnC;aACJ;SACJ,CAAC;QAEF,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"contextGenerator.test.js","sourceRoot":"","sources":["../../../src/__tests__/generators/contextGenerator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,11 +88,11 @@ describe('enumGenerator', () => {
|
|
|
88
88
|
expect(output).toContain('export type UserRole');
|
|
89
89
|
expect(output).toContain("| 'ADMIN'");
|
|
90
90
|
expect(output).toContain("| 'USER'");
|
|
91
|
-
// Check enum options
|
|
92
|
-
expect(output).toContain('export const
|
|
91
|
+
// Check enum options with full keys
|
|
92
|
+
expect(output).toContain('export const User_statusOptions = {');
|
|
93
93
|
expect(output).toContain("ACTIVE: 'Active'");
|
|
94
94
|
expect(output).toContain("INACTIVE: 'Inactive'");
|
|
95
|
-
expect(output).toContain('export const
|
|
95
|
+
expect(output).toContain('export const User_roleOptions = {');
|
|
96
96
|
expect(output).toContain("ADMIN: 'Administrator'");
|
|
97
97
|
expect(output).toContain("USER: 'User'");
|
|
98
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enumGenerator.test.js","sourceRoot":"","sources":["../../../src/__tests__/generators/enumGenerator.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"enumGenerator.test.js","sourceRoot":"","sources":["../../../src/__tests__/generators/enumGenerator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/contextGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"contextGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/contextGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CA+MjE"}
|
|
@@ -10,35 +10,47 @@ function generateEnumContextFile(enums) {
|
|
|
10
10
|
lines.push('');
|
|
11
11
|
lines.push("import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';");
|
|
12
12
|
lines.push('');
|
|
13
|
-
// Group by
|
|
14
|
-
const
|
|
13
|
+
// Group by objectName for nested structure
|
|
14
|
+
const enumsByObject = new Map();
|
|
15
15
|
for (const enumInfo of enums) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
enumsByProperty.set(key, []);
|
|
16
|
+
if (!enumsByObject.has(enumInfo.objectName)) {
|
|
17
|
+
enumsByObject.set(enumInfo.objectName, new Map());
|
|
19
18
|
}
|
|
20
|
-
|
|
19
|
+
enumsByObject.get(enumInfo.objectName).set(enumInfo.propertyName, enumInfo);
|
|
21
20
|
}
|
|
22
|
-
// Generate EnumOptions interface
|
|
21
|
+
// Generate nested EnumOptions interface
|
|
23
22
|
lines.push('export interface EnumOptions {');
|
|
24
|
-
for (const
|
|
25
|
-
lines.push(` ${
|
|
23
|
+
for (const [objectName, propsMap] of enumsByObject.entries()) {
|
|
24
|
+
lines.push(` ${objectName}: {`);
|
|
25
|
+
for (const propertyName of propsMap.keys()) {
|
|
26
|
+
lines.push(` ${propertyName}: Record<string, string>;`);
|
|
27
|
+
}
|
|
28
|
+
lines.push(' };');
|
|
26
29
|
}
|
|
27
30
|
lines.push(' prefectures: Record<string, string>;');
|
|
28
31
|
lines.push('}');
|
|
29
32
|
lines.push('');
|
|
30
|
-
// Generate
|
|
31
|
-
lines.push('// Type-safe
|
|
32
|
-
const
|
|
33
|
-
lines.push(`export type
|
|
33
|
+
// Generate type-safe unions for IDE autocomplete
|
|
34
|
+
lines.push('// Type-safe keys for IDE autocomplete');
|
|
35
|
+
const allObjectNames = Array.from(enumsByObject.keys());
|
|
36
|
+
lines.push(`export type EnumObjectName = ${allObjectNames.map(n => `'${n}'`).join(' | ')};`);
|
|
37
|
+
lines.push('');
|
|
38
|
+
// Generate property name unions per object
|
|
39
|
+
for (const [objectName, propsMap] of enumsByObject.entries()) {
|
|
40
|
+
const propNames = Array.from(propsMap.keys());
|
|
41
|
+
lines.push(`export type ${objectName}EnumProperty = ${propNames.map(p => `'${p}'`).join(' | ')};`);
|
|
42
|
+
}
|
|
34
43
|
lines.push('');
|
|
35
|
-
// Generate static enum data
|
|
44
|
+
// Generate static enum data (nested structure)
|
|
36
45
|
lines.push('const STATIC_ENUMS: EnumOptions = {');
|
|
37
|
-
for (const [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
for (const [objectName, propsMap] of enumsByObject.entries()) {
|
|
47
|
+
lines.push(` ${objectName}: {`);
|
|
48
|
+
for (const [propertyName, enumInfo] of propsMap.entries()) {
|
|
49
|
+
lines.push(` ${propertyName}: {`);
|
|
50
|
+
for (const { value, label } of enumInfo.values) {
|
|
51
|
+
lines.push(` ${value}: '${label}',`);
|
|
52
|
+
}
|
|
53
|
+
lines.push(` },`);
|
|
42
54
|
}
|
|
43
55
|
lines.push(' },');
|
|
44
56
|
}
|
|
@@ -105,20 +117,20 @@ function generateEnumContextFile(enums) {
|
|
|
105
117
|
lines.push(' loading: boolean;');
|
|
106
118
|
lines.push(' error: Error | null;');
|
|
107
119
|
lines.push(' /**');
|
|
108
|
-
lines.push(' * Get label by
|
|
109
|
-
lines.push(' * @example getLabel("account_type", "ORDINARY") // "普通"');
|
|
120
|
+
lines.push(' * Get label by object name, property name, and value');
|
|
121
|
+
lines.push(' * @example getLabel("ApplicationForm", "account_type", "ORDINARY") // "普通"');
|
|
110
122
|
lines.push(' */');
|
|
111
|
-
lines.push(' getLabel: (
|
|
123
|
+
lines.push(' getLabel: <T extends EnumObjectName>(objectName: T, propertyName: string, value: string | number) => string | undefined;');
|
|
112
124
|
lines.push(' /**');
|
|
113
|
-
lines.push(' * Get value by
|
|
114
|
-
lines.push(' * @example getValue("account_type", "普通") // "ORDINARY"');
|
|
125
|
+
lines.push(' * Get value by object name, property name, and label');
|
|
126
|
+
lines.push(' * @example getValue("ApplicationForm", "account_type", "普通") // "ORDINARY"');
|
|
115
127
|
lines.push(' */');
|
|
116
|
-
lines.push(' getValue: (
|
|
128
|
+
lines.push(' getValue: <T extends EnumObjectName>(objectName: T, propertyName: string, label: string) => string | undefined;');
|
|
117
129
|
lines.push(' /**');
|
|
118
|
-
lines.push(' * Get select options by
|
|
119
|
-
lines.push(' * @example getOptions("account_type") // [{ value: "ORDINARY", label: "普通" }, ...]');
|
|
130
|
+
lines.push(' * Get select options by object name and property name');
|
|
131
|
+
lines.push(' * @example getOptions("ApplicationForm", "account_type") // [{ value: "ORDINARY", label: "普通" }, ...]');
|
|
120
132
|
lines.push(' */');
|
|
121
|
-
lines.push(' getOptions: (
|
|
133
|
+
lines.push(' getOptions: <T extends EnumObjectName>(objectName: T, propertyName: string) => { value: string; label: string }[];');
|
|
122
134
|
lines.push('}');
|
|
123
135
|
lines.push('');
|
|
124
136
|
lines.push('const EnumsContext = createContext<EnumsContextType | undefined>(undefined);');
|
|
@@ -128,23 +140,35 @@ function generateEnumContextFile(enums) {
|
|
|
128
140
|
lines.push(' const [loading] = useState(false);');
|
|
129
141
|
lines.push(' const [error] = useState<Error | null>(null);');
|
|
130
142
|
lines.push('');
|
|
131
|
-
lines.push(' const getLabel = (
|
|
143
|
+
lines.push(' const getLabel = <T extends EnumObjectName>(objectName: T, propertyName: string, value: string | number): string | undefined => {');
|
|
132
144
|
lines.push(' if (!enums) return undefined;');
|
|
133
|
-
lines.push('
|
|
145
|
+
lines.push(' // Special case for prefectures');
|
|
146
|
+
lines.push(' if (objectName === \'prefectures\' as any) {');
|
|
147
|
+
lines.push(' return (enums as any).prefectures?.[String(value)];');
|
|
148
|
+
lines.push(' }');
|
|
149
|
+
lines.push(' const enumData = enums[objectName]?.[propertyName];');
|
|
134
150
|
lines.push(' if (!enumData) return undefined;');
|
|
135
151
|
lines.push(' return enumData[String(value)];');
|
|
136
152
|
lines.push(' };');
|
|
137
153
|
lines.push('');
|
|
138
|
-
lines.push(' const getValue = (
|
|
154
|
+
lines.push(' const getValue = <T extends EnumObjectName>(objectName: T, propertyName: string, label: string): string | undefined => {');
|
|
139
155
|
lines.push(' if (!enums) return undefined;');
|
|
140
|
-
lines.push('
|
|
156
|
+
lines.push(' // Special case for prefectures');
|
|
157
|
+
lines.push(' if (objectName === \'prefectures\' as any) {');
|
|
158
|
+
lines.push(' return Object.entries((enums as any).prefectures || {}).find(([_, l]) => l === label)?.[0];');
|
|
159
|
+
lines.push(' }');
|
|
160
|
+
lines.push(' const enumData = enums[objectName]?.[propertyName];');
|
|
141
161
|
lines.push(' if (!enumData) return undefined;');
|
|
142
162
|
lines.push(' return Object.entries(enumData).find(([_, l]) => l === label)?.[0];');
|
|
143
163
|
lines.push(' };');
|
|
144
164
|
lines.push('');
|
|
145
|
-
lines.push(' const getOptions = (
|
|
165
|
+
lines.push(' const getOptions = <T extends EnumObjectName>(objectName: T, propertyName: string): { value: string; label: string }[] => {');
|
|
146
166
|
lines.push(' if (!enums) return [];');
|
|
147
|
-
lines.push('
|
|
167
|
+
lines.push(' // Special case for prefectures');
|
|
168
|
+
lines.push(' if (objectName === \'prefectures\' as any) {');
|
|
169
|
+
lines.push(' return Object.entries((enums as any).prefectures || {}).map(([value, label]) => ({ value, label }));');
|
|
170
|
+
lines.push(' }');
|
|
171
|
+
lines.push(' const enumData = enums[objectName]?.[propertyName];');
|
|
148
172
|
lines.push(' if (!enumData) return [];');
|
|
149
173
|
lines.push(' return Object.entries(enumData).map(([value, label]) => ({ value, label }));');
|
|
150
174
|
lines.push(' };');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextGenerator.js","sourceRoot":"","sources":["../../src/generators/contextGenerator.ts"],"names":[],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"contextGenerator.js","sourceRoot":"","sources":["../../src/generators/contextGenerator.ts"],"names":[],"mappings":"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C1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QAC3B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC1B,EAAE,IAAI,EAAE,EAAE,EAA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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enumGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/enumGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,UAAU,CAAC;AAGhD,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,EAAE,CAmB3D;AAkBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"enumGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/enumGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,MAAM,UAAU,CAAC;AAGhD,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,EAAE,CAmB3D;AAkBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CA+C3D;AAGD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAEjE"}
|
|
@@ -42,27 +42,19 @@ function generateEnumsFile(enums) {
|
|
|
42
42
|
lines.push('// Auto-generated by @omnifyjp/omnify');
|
|
43
43
|
lines.push('// Do not edit this file manually');
|
|
44
44
|
lines.push('');
|
|
45
|
-
//
|
|
46
|
-
const
|
|
45
|
+
// Use full key pattern: ObjectName_propertyName
|
|
46
|
+
const enumsByKey = new Map();
|
|
47
47
|
for (const enumInfo of enums) {
|
|
48
|
-
const key = enumInfo.propertyName
|
|
49
|
-
|
|
50
|
-
enumsByProperty.set(key, []);
|
|
51
|
-
}
|
|
52
|
-
enumsByProperty.get(key).push(enumInfo);
|
|
48
|
+
const key = `${enumInfo.objectName}_${enumInfo.propertyName}`;
|
|
49
|
+
enumsByKey.set(key, enumInfo);
|
|
53
50
|
}
|
|
54
51
|
// SECTION 1: Generate TypeScript types
|
|
55
52
|
lines.push('// ============================================');
|
|
56
53
|
lines.push('// Enum Types');
|
|
57
54
|
lines.push('// ============================================');
|
|
58
55
|
lines.push('');
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
const enumTypeName = `${toPascalCase(enumInfo.objectName)}${toPascalCase(enumInfo.propertyName)}`;
|
|
62
|
-
if (enumTypeNames.has(enumTypeName)) {
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
enumTypeNames.add(enumTypeName);
|
|
56
|
+
for (const [key, enumInfo] of enumsByKey.entries()) {
|
|
57
|
+
const enumTypeName = toPascalCase(key);
|
|
66
58
|
lines.push(`export type ${enumTypeName} =`);
|
|
67
59
|
const values = enumInfo.values.map(v => ` | '${v.value}'`);
|
|
68
60
|
lines.push(values.join('\n') + ';');
|
|
@@ -73,11 +65,10 @@ function generateEnumsFile(enums) {
|
|
|
73
65
|
lines.push('// Enum Options (Value -> Label mappings)');
|
|
74
66
|
lines.push('// ============================================');
|
|
75
67
|
lines.push('');
|
|
76
|
-
for (const [
|
|
77
|
-
const
|
|
78
|
-
const optionName = `${propertyName}Options`;
|
|
68
|
+
for (const [key, enumInfo] of enumsByKey.entries()) {
|
|
69
|
+
const optionName = `${key}Options`;
|
|
79
70
|
lines.push(`export const ${optionName} = {`);
|
|
80
|
-
for (const { value, label } of values) {
|
|
71
|
+
for (const { value, label } of enumInfo.values) {
|
|
81
72
|
lines.push(` ${value}: '${label}',`);
|
|
82
73
|
}
|
|
83
74
|
lines.push('} as const;');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enumGenerator.js","sourceRoot":"","sources":["../../src/generators/enumGenerator.ts"],"names":[],"mappings":";;AASA,oCAmBC;AAkBD,
|
|
1
|
+
{"version":3,"file":"enumGenerator.js","sourceRoot":"","sources":["../../src/generators/enumGenerator.ts"],"names":[],"mappings":"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"}
|