@famgia/omnify 0.2.3 → 0.4.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/CHANGELOG.md +123 -8
- package/dist/__tests__/generators/contextGenerator.test.js +16 -11
- package/dist/__tests__/generators/contextGenerator.test.js.map +1 -1
- package/dist/__tests__/generators/modelGenerator.test.js +51 -7
- package/dist/__tests__/generators/modelGenerator.test.js.map +1 -1
- package/dist/cli.js +33 -6
- package/dist/cli.js.map +1 -1
- package/dist/generators/contextGenerator.d.ts.map +1 -1
- package/dist/generators/contextGenerator.js +24 -8
- package/dist/generators/contextGenerator.js.map +1 -1
- package/dist/generators/modelGenerator.d.ts +10 -1
- package/dist/generators/modelGenerator.d.ts.map +1 -1
- package/dist/generators/modelGenerator.js +46 -3
- package/dist/generators/modelGenerator.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,129 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [0.4.0] - 2025-11-09
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **Base Models + Extended Models pattern**: Base models are now auto-generated with `Base` prefix and should not be edited
|
|
9
|
+
- **Extended models directory**: `models/` directory with customizable model files that extend base models
|
|
10
|
+
- Extended model files are generated once and never overwritten, allowing full customization
|
|
11
|
+
- `generateExtendedModelFile()` function to create customizable model templates
|
|
12
|
+
- `generateModelsIndexFile()` to export all extended models
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- Base models now use `Base` prefix (e.g., `BaseUser`, `BaseCompany`)
|
|
16
|
+
- Frontend code should import from `models/` instead of `types/models`
|
|
17
|
+
- Main `index.ts` now exports from `models/` directory
|
|
18
|
+
|
|
19
|
+
### Structure
|
|
20
|
+
```
|
|
21
|
+
omnify/
|
|
22
|
+
├── types/
|
|
23
|
+
│ ├── models.ts # BaseUser, BaseCompany, etc (auto-generated, DO NOT EDIT)
|
|
24
|
+
│ └── enums.ts
|
|
25
|
+
├── models/
|
|
26
|
+
│ ├── User.ts # extends BaseUser (SAFE TO CUSTOMIZE)
|
|
27
|
+
│ ├── Company.ts # extends BaseCompany (SAFE TO CUSTOMIZE)
|
|
28
|
+
│ └── index.ts # exports all
|
|
29
|
+
└── contexts/
|
|
30
|
+
└── EnumsContext.tsx
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Example
|
|
34
|
+
```typescript
|
|
35
|
+
// Auto-generated base model (DO NOT EDIT)
|
|
36
|
+
// types/models.ts
|
|
37
|
+
export interface BaseUser {
|
|
38
|
+
id: number;
|
|
39
|
+
name: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Customizable extended model (SAFE TO EDIT)
|
|
43
|
+
// models/User.ts
|
|
44
|
+
import { BaseUser } from '../types/models';
|
|
45
|
+
|
|
46
|
+
export interface User extends BaseUser {
|
|
47
|
+
// Add your custom fields here
|
|
48
|
+
fullName?: string;
|
|
49
|
+
avatarUrl?: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Use in your app
|
|
53
|
+
import { User } from '@/omnify';
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## [0.3.0] - 2025-11-09
|
|
57
|
+
|
|
58
|
+
### Added
|
|
59
|
+
- **Type-safe enum keys**: Exported `EnumKey` type for better TypeScript autocomplete and type checking
|
|
60
|
+
- JSDoc comments for all helper methods (`getLabel`, `getValue`, `getOptions`) with usage examples
|
|
61
|
+
- Exported `EnumsContextType` interface for better type inference
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
- All helper methods now use `EnumKey` type instead of `keyof EnumOptions` for cleaner API
|
|
65
|
+
- Improved IntelliSense support - now you get autocomplete for enum keys like `'account_type'`, `'company_type'`, etc.
|
|
66
|
+
|
|
67
|
+
## [0.2.3] - 2025-11-09
|
|
68
|
+
|
|
69
|
+
### Fixed
|
|
70
|
+
- Fixed `npm pkg fix` warning about bin script path
|
|
71
|
+
|
|
72
|
+
## [0.2.2] - 2025-11-09
|
|
73
|
+
|
|
74
|
+
### Changed
|
|
75
|
+
- Merged `enums.ts` and `enumOptions.ts` into single `enums.ts` file
|
|
76
|
+
- Updated `types/index.ts` to only export `enums` and `models`
|
|
77
|
+
|
|
78
|
+
## [0.2.1] - 2025-11-09
|
|
79
|
+
|
|
80
|
+
### Added
|
|
81
|
+
- Comprehensive test suite using Jest
|
|
82
|
+
- Test coverage for all generators and utilities
|
|
83
|
+
- PascalCase naming for enum types (e.g., `ApplicationFormEntityType` instead of `ApplicationForm_entity_type`)
|
|
84
|
+
- Mixed-case word preservation in PascalCase conversion
|
|
85
|
+
|
|
86
|
+
### Changed
|
|
87
|
+
- Enum type names now use PascalCase for better TypeScript conventions
|
|
88
|
+
- Improved code quality with test coverage
|
|
89
|
+
|
|
90
|
+
## [0.2.0] - 2025-11-09
|
|
91
|
+
|
|
92
|
+
### Added
|
|
93
|
+
- Helper methods in `EnumsContext.tsx`:
|
|
94
|
+
- `getLabel(enumKey, value)` - convert value to label
|
|
95
|
+
- `getValue(enumKey, label)` - convert label to value
|
|
96
|
+
- `getOptions(enumKey)` - get options for Select components
|
|
97
|
+
- Prefectures support in enum context (all 47 Japanese prefectures)
|
|
98
|
+
|
|
99
|
+
### Changed
|
|
100
|
+
- Updated package name to `@famgia/omnify`
|
|
101
|
+
- Improved documentation in README
|
|
102
|
+
|
|
103
|
+
## [0.1.3] - 2025-11-09
|
|
104
|
+
|
|
105
|
+
### Fixed
|
|
106
|
+
- Fixed model generation to handle composite types correctly
|
|
107
|
+
- Added support for ManyToOne, OneToMany, OneToOne, ManyToMany relations
|
|
108
|
+
- Fixed duplicate fields in generated models
|
|
109
|
+
|
|
110
|
+
## [0.1.2] - 2025-11-09
|
|
111
|
+
|
|
112
|
+
### Fixed
|
|
113
|
+
- Fixed npm registry indexing issue
|
|
114
|
+
- Package now available on npm
|
|
115
|
+
|
|
116
|
+
## [0.1.1] - 2025-11-09
|
|
117
|
+
|
|
118
|
+
### Fixed
|
|
119
|
+
- Fixed npm publish issues
|
|
120
|
+
|
|
3
121
|
## [0.1.0] - 2025-11-09
|
|
4
122
|
|
|
5
123
|
### Added
|
|
6
124
|
- Initial release
|
|
7
|
-
- TypeScript
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
- Support for all Omnify field types
|
|
13
|
-
- Automatic enum grouping by property name
|
|
14
|
-
|
|
125
|
+
- Generate TypeScript models from `schema-lock.json`
|
|
126
|
+
- Generate enum types and options
|
|
127
|
+
- Generate React Context for enums
|
|
128
|
+
- CLI tool `omnify-build` with watch mode
|
|
129
|
+
- Auto-detect `schema-lock.json` from common paths
|
|
@@ -24,12 +24,17 @@ describe('contextGenerator', () => {
|
|
|
24
24
|
it('should generate context with EnumOptions interface', () => {
|
|
25
25
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
26
26
|
expect(output).toContain("'use client';");
|
|
27
|
-
expect(output).toContain('// Auto-generated by @
|
|
27
|
+
expect(output).toContain('// Auto-generated by @famgia/omnify');
|
|
28
28
|
expect(output).toContain('export interface EnumOptions {');
|
|
29
29
|
expect(output).toContain('status: Record<string, string>;');
|
|
30
30
|
expect(output).toContain('role: Record<string, string>;');
|
|
31
31
|
expect(output).toContain('prefectures: Record<string, string>;');
|
|
32
32
|
});
|
|
33
|
+
it('should generate EnumKey type for type safety', () => {
|
|
34
|
+
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
35
|
+
expect(output).toContain('// Type-safe enum keys');
|
|
36
|
+
expect(output).toContain('export type EnumKey = keyof EnumOptions;');
|
|
37
|
+
});
|
|
33
38
|
it('should generate STATIC_ENUMS object', () => {
|
|
34
39
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
35
40
|
expect(output).toContain('const STATIC_ENUMS: EnumOptions = {');
|
|
@@ -49,13 +54,13 @@ describe('contextGenerator', () => {
|
|
|
49
54
|
});
|
|
50
55
|
it('should generate EnumsContextType with helper methods', () => {
|
|
51
56
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
52
|
-
expect(output).toContain('interface EnumsContextType {');
|
|
57
|
+
expect(output).toContain('export interface EnumsContextType {');
|
|
53
58
|
expect(output).toContain('enums: EnumOptions | null;');
|
|
54
59
|
expect(output).toContain('loading: boolean;');
|
|
55
60
|
expect(output).toContain('error: Error | null;');
|
|
56
|
-
expect(output).toContain('getLabel: (enumKey:
|
|
57
|
-
expect(output).toContain('getValue: (enumKey:
|
|
58
|
-
expect(output).toContain('getOptions: (enumKey:
|
|
61
|
+
expect(output).toContain('getLabel: (enumKey: EnumKey, value: string | number) => string | undefined;');
|
|
62
|
+
expect(output).toContain('getValue: (enumKey: EnumKey, label: string) => string | undefined;');
|
|
63
|
+
expect(output).toContain('getOptions: (enumKey: EnumKey) => { value: string; label: string }[];');
|
|
59
64
|
});
|
|
60
65
|
it('should generate EnumsProvider component', () => {
|
|
61
66
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
@@ -63,21 +68,21 @@ describe('contextGenerator', () => {
|
|
|
63
68
|
expect(output).toContain('const [enums] = useState<EnumOptions>(STATIC_ENUMS);');
|
|
64
69
|
expect(output).toContain('<EnumsContext.Provider');
|
|
65
70
|
});
|
|
66
|
-
it('should generate getLabel helper method', () => {
|
|
71
|
+
it('should generate getLabel helper method with EnumKey type', () => {
|
|
67
72
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
68
|
-
expect(output).toContain('const getLabel = (enumKey:
|
|
73
|
+
expect(output).toContain('const getLabel = (enumKey: EnumKey, value: string | number): string | undefined => {');
|
|
69
74
|
expect(output).toContain('if (!enums) return undefined;');
|
|
70
75
|
expect(output).toContain('const enumData = enums[enumKey];');
|
|
71
76
|
expect(output).toContain('return enumData[String(value)];');
|
|
72
77
|
});
|
|
73
|
-
it('should generate getValue helper method', () => {
|
|
78
|
+
it('should generate getValue helper method with EnumKey type', () => {
|
|
74
79
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
75
|
-
expect(output).toContain('const getValue = (enumKey:
|
|
80
|
+
expect(output).toContain('const getValue = (enumKey: EnumKey, label: string): string | undefined => {');
|
|
76
81
|
expect(output).toContain('return Object.entries(enumData).find(([_, l]) => l === label)?.[0];');
|
|
77
82
|
});
|
|
78
|
-
it('should generate getOptions helper method', () => {
|
|
83
|
+
it('should generate getOptions helper method with EnumKey type', () => {
|
|
79
84
|
const output = (0, contextGenerator_1.generateEnumContextFile)(mockEnums);
|
|
80
|
-
expect(output).toContain('const getOptions = (enumKey:
|
|
85
|
+
expect(output).toContain('const getOptions = (enumKey: EnumKey): { value: string; label: string }[] => {');
|
|
81
86
|
expect(output).toContain('return Object.entries(enumData).map(([value, label]) => ({ value, label }));');
|
|
82
87
|
});
|
|
83
88
|
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,oDAAoD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,
|
|
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,oDAAoD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6EAA6E,CAAC,CAAC;YACxG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oEAAoE,CAAC,CAAC;YAC/F,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uEAAuE,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sEAAsE,CAAC,CAAC;YACjG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sDAAsD,CAAC,CAAC;YACjF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAChE,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sFAAsF,CAAC,CAAC;YACjH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAChE,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6EAA6E,CAAC,CAAC;YACxG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qEAAqE,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YAClE,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gFAAgF,CAAC,CAAC;YAC3G,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,8EAA8E,CAAC,CAAC;QAC7G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mEAAmE,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACvC,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,EAAE,CAAC,CAAC;YAE3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -33,8 +33,8 @@ describe('modelGenerator', () => {
|
|
|
33
33
|
},
|
|
34
34
|
},
|
|
35
35
|
};
|
|
36
|
-
const output = (0, modelGenerator_1.generateModelFile)('User', object);
|
|
37
|
-
expect(output).toContain('// Auto-generated by @
|
|
36
|
+
const output = (0, modelGenerator_1.generateModelFile)('User', object, false);
|
|
37
|
+
expect(output).toContain('// Auto-generated by @famgia/omnify');
|
|
38
38
|
expect(output).toContain('export interface User {');
|
|
39
39
|
expect(output).toContain('id: number; // ID');
|
|
40
40
|
expect(output).toContain('name: string; // Name');
|
|
@@ -62,7 +62,7 @@ describe('modelGenerator', () => {
|
|
|
62
62
|
},
|
|
63
63
|
},
|
|
64
64
|
};
|
|
65
|
-
const output = (0, modelGenerator_1.generateModelFile)('User', object);
|
|
65
|
+
const output = (0, modelGenerator_1.generateModelFile)('User', object, false);
|
|
66
66
|
expect(output).toContain('bio?: string | null;');
|
|
67
67
|
});
|
|
68
68
|
it('should handle enum fields', () => {
|
|
@@ -90,7 +90,7 @@ describe('modelGenerator', () => {
|
|
|
90
90
|
},
|
|
91
91
|
},
|
|
92
92
|
};
|
|
93
|
-
const output = (0, modelGenerator_1.generateModelFile)('User', object);
|
|
93
|
+
const output = (0, modelGenerator_1.generateModelFile)('User', object, false);
|
|
94
94
|
expect(output).toContain('status: UserStatus;');
|
|
95
95
|
});
|
|
96
96
|
it('should use PascalCase for enum type names', () => {
|
|
@@ -117,7 +117,7 @@ describe('modelGenerator', () => {
|
|
|
117
117
|
},
|
|
118
118
|
},
|
|
119
119
|
};
|
|
120
|
-
const output = (0, modelGenerator_1.generateModelFile)('ApplicationForm', object);
|
|
120
|
+
const output = (0, modelGenerator_1.generateModelFile)('ApplicationForm', object, false);
|
|
121
121
|
// Should use PascalCase: ApplicationFormEntityType
|
|
122
122
|
expect(output).toContain('entity_type: ApplicationFormEntityType;');
|
|
123
123
|
expect(output).not.toContain('entity_type: ApplicationForm_entity_type;');
|
|
@@ -146,7 +146,7 @@ describe('modelGenerator', () => {
|
|
|
146
146
|
},
|
|
147
147
|
},
|
|
148
148
|
};
|
|
149
|
-
const output = (0, modelGenerator_1.generateModelFile)('MyCustomModel', object);
|
|
149
|
+
const output = (0, modelGenerator_1.generateModelFile)('MyCustomModel', object, false);
|
|
150
150
|
expect(output).toContain('status: MyCustomModelStatus;');
|
|
151
151
|
});
|
|
152
152
|
it('should generate clean output', () => {
|
|
@@ -163,10 +163,54 @@ describe('modelGenerator', () => {
|
|
|
163
163
|
},
|
|
164
164
|
},
|
|
165
165
|
};
|
|
166
|
-
const output = (0, modelGenerator_1.generateModelFile)('TestModel', object);
|
|
166
|
+
const output = (0, modelGenerator_1.generateModelFile)('TestModel', object, false);
|
|
167
167
|
expect(output).not.toContain('undefined');
|
|
168
168
|
expect(output).not.toContain('[object Object]');
|
|
169
169
|
});
|
|
170
|
+
it('should generate base models with Base prefix when useBasePrefix is true', () => {
|
|
171
|
+
const object = {
|
|
172
|
+
name: 'User',
|
|
173
|
+
table: 'users',
|
|
174
|
+
properties: {
|
|
175
|
+
id: {
|
|
176
|
+
type: 'Id',
|
|
177
|
+
objectName: 'User',
|
|
178
|
+
propertyName: 'id',
|
|
179
|
+
displayName: 'ID',
|
|
180
|
+
description: null,
|
|
181
|
+
},
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
const output = (0, modelGenerator_1.generateModelFile)('User', object, true);
|
|
185
|
+
expect(output).toContain('export interface BaseUser {');
|
|
186
|
+
expect(output).not.toContain('export interface User {');
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
describe('generateExtendedModelFile', () => {
|
|
190
|
+
it('should generate extended model file that extends base model', () => {
|
|
191
|
+
const output = (0, modelGenerator_1.generateExtendedModelFile)('User');
|
|
192
|
+
expect(output).toContain('// Extended model for User');
|
|
193
|
+
expect(output).toContain('// You can customize this file - it will not be overwritten');
|
|
194
|
+
expect(output).toContain("import { BaseUser } from '../types/models';");
|
|
195
|
+
expect(output).toContain('export interface User extends BaseUser {');
|
|
196
|
+
expect(output).toContain('// Add your custom fields here');
|
|
197
|
+
});
|
|
198
|
+
it('should include example usage comments', () => {
|
|
199
|
+
const output = (0, modelGenerator_1.generateExtendedModelFile)('Company');
|
|
200
|
+
expect(output).toContain('// Example:');
|
|
201
|
+
expect(output).toContain('// customField?: string;');
|
|
202
|
+
expect(output).toContain('// export function createCompany');
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
describe('generateModelsIndexFile', () => {
|
|
206
|
+
it('should generate index file that exports all models', () => {
|
|
207
|
+
const objectNames = ['User', 'Company', 'Shop'];
|
|
208
|
+
const output = (0, modelGenerator_1.generateModelsIndexFile)(objectNames);
|
|
209
|
+
expect(output).toContain('// Auto-generated by @famgia/omnify');
|
|
210
|
+
expect(output).toContain("export * from './User';");
|
|
211
|
+
expect(output).toContain("export * from './Company';");
|
|
212
|
+
expect(output).toContain("export * from './Shop';");
|
|
213
|
+
});
|
|
170
214
|
});
|
|
171
215
|
});
|
|
172
216
|
//# sourceMappingURL=modelGenerator.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelGenerator.test.js","sourceRoot":"","sources":["../../../src/__tests__/generators/modelGenerator.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"modelGenerator.test.js","sourceRoot":"","sources":["../../../src/__tests__/generators/modelGenerator.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -56,7 +56,8 @@ function build(options) {
|
|
|
56
56
|
// Create output directories
|
|
57
57
|
const typesDir = path.join(outputDir, 'types');
|
|
58
58
|
const contextsDir = path.join(outputDir, 'contexts');
|
|
59
|
-
|
|
59
|
+
const modelsDir = path.join(outputDir, 'models');
|
|
60
|
+
[typesDir, contextsDir, modelsDir].forEach(dir => {
|
|
60
61
|
if (!fs.existsSync(dir)) {
|
|
61
62
|
fs.mkdirSync(dir, { recursive: true });
|
|
62
63
|
}
|
|
@@ -68,29 +69,55 @@ function build(options) {
|
|
|
68
69
|
const enumsContent = (0, enumGenerator_1.generateEnumsFile)(enums);
|
|
69
70
|
fs.writeFileSync(path.join(typesDir, 'enums.ts'), enumsContent);
|
|
70
71
|
console.log('✅ Generated types/enums.ts');
|
|
71
|
-
// Generate models
|
|
72
|
+
// Generate base models (with Base prefix)
|
|
72
73
|
const modelsContent = (0, modelGenerator_1.generateAllModels)(schema);
|
|
73
74
|
fs.writeFileSync(path.join(typesDir, 'models.ts'), modelsContent);
|
|
74
|
-
console.log('✅ Generated types/models.ts');
|
|
75
|
+
console.log('✅ Generated types/models.ts (base models)');
|
|
76
|
+
// Generate extended models (only if they don't exist)
|
|
77
|
+
const objectNames = Object.keys(schema.objects);
|
|
78
|
+
let newModelsCount = 0;
|
|
79
|
+
let existingModelsCount = 0;
|
|
80
|
+
for (const objectName of objectNames) {
|
|
81
|
+
const modelFilePath = path.join(modelsDir, `${objectName}.ts`);
|
|
82
|
+
if (!fs.existsSync(modelFilePath)) {
|
|
83
|
+
const extendedModelContent = (0, modelGenerator_1.generateExtendedModelFile)(objectName);
|
|
84
|
+
fs.writeFileSync(modelFilePath, extendedModelContent);
|
|
85
|
+
newModelsCount++;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
existingModelsCount++;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (newModelsCount > 0) {
|
|
92
|
+
console.log(`✅ Generated ${newModelsCount} new extended model(s) in models/`);
|
|
93
|
+
}
|
|
94
|
+
if (existingModelsCount > 0) {
|
|
95
|
+
console.log(`ℹ️ Kept ${existingModelsCount} existing extended model(s) (not overwritten)`);
|
|
96
|
+
}
|
|
97
|
+
// Generate models index
|
|
98
|
+
const modelsIndexContent = (0, modelGenerator_1.generateModelsIndexFile)(objectNames);
|
|
99
|
+
fs.writeFileSync(path.join(modelsDir, 'index.ts'), modelsIndexContent);
|
|
100
|
+
console.log('✅ Generated models/index.ts');
|
|
75
101
|
// Generate enum context
|
|
76
102
|
const contextContent = (0, contextGenerator_1.generateEnumContextFile)(enums);
|
|
77
103
|
fs.writeFileSync(path.join(contextsDir, 'EnumsContext.tsx'), contextContent);
|
|
78
104
|
console.log('✅ Generated contexts/EnumsContext.tsx');
|
|
79
105
|
// Generate index files
|
|
80
|
-
const typesIndexContent = `// Auto-generated by @
|
|
106
|
+
const typesIndexContent = `// Auto-generated by @famgia/omnify
|
|
81
107
|
export * from './enums';
|
|
82
108
|
export * from './models';
|
|
83
109
|
`;
|
|
84
110
|
fs.writeFileSync(path.join(typesDir, 'index.ts'), typesIndexContent);
|
|
85
111
|
console.log('✅ Generated types/index.ts');
|
|
86
|
-
const contextsIndexContent = `// Auto-generated by @
|
|
112
|
+
const contextsIndexContent = `// Auto-generated by @famgia/omnify
|
|
87
113
|
export * from './EnumsContext';
|
|
88
114
|
`;
|
|
89
115
|
fs.writeFileSync(path.join(contextsDir, 'index.ts'), contextsIndexContent);
|
|
90
116
|
console.log('✅ Generated contexts/index.ts');
|
|
91
|
-
const mainIndexContent = `// Auto-generated by @
|
|
117
|
+
const mainIndexContent = `// Auto-generated by @famgia/omnify
|
|
92
118
|
export * from './types';
|
|
93
119
|
export * from './contexts';
|
|
120
|
+
export * from './models';
|
|
94
121
|
`;
|
|
95
122
|
fs.writeFileSync(path.join(outputDir, 'index.ts'), mainIndexContent);
|
|
96
123
|
console.log('✅ Generated index.ts');
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAE7B,8DAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.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,CAqLjE"}
|
|
@@ -5,7 +5,7 @@ function generateEnumContextFile(enums) {
|
|
|
5
5
|
const lines = [];
|
|
6
6
|
lines.push("'use client';");
|
|
7
7
|
lines.push('');
|
|
8
|
-
lines.push('// Auto-generated by @
|
|
8
|
+
lines.push('// Auto-generated by @famgia/omnify');
|
|
9
9
|
lines.push('// Do not edit this file manually');
|
|
10
10
|
lines.push('');
|
|
11
11
|
lines.push("import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';");
|
|
@@ -27,6 +27,10 @@ function generateEnumContextFile(enums) {
|
|
|
27
27
|
lines.push(' prefectures: Record<string, string>;');
|
|
28
28
|
lines.push('}');
|
|
29
29
|
lines.push('');
|
|
30
|
+
// Generate EnumKey type for better type safety
|
|
31
|
+
lines.push('// Type-safe enum keys');
|
|
32
|
+
lines.push('export type EnumKey = keyof EnumOptions;');
|
|
33
|
+
lines.push('');
|
|
30
34
|
// Generate static enum data
|
|
31
35
|
lines.push('const STATIC_ENUMS: EnumOptions = {');
|
|
32
36
|
for (const [propertyName, enumInfos] of enumsByProperty.entries()) {
|
|
@@ -95,13 +99,25 @@ function generateEnumContextFile(enums) {
|
|
|
95
99
|
lines.push('};');
|
|
96
100
|
lines.push('');
|
|
97
101
|
// Generate context
|
|
98
|
-
lines.push('interface EnumsContextType {');
|
|
102
|
+
lines.push('export interface EnumsContextType {');
|
|
99
103
|
lines.push(' enums: EnumOptions | null;');
|
|
100
104
|
lines.push(' loading: boolean;');
|
|
101
105
|
lines.push(' error: Error | null;');
|
|
102
|
-
lines.push('
|
|
103
|
-
lines.push('
|
|
104
|
-
lines.push('
|
|
106
|
+
lines.push(' /**');
|
|
107
|
+
lines.push(' * Get label by enum key and value');
|
|
108
|
+
lines.push(' * @example getLabel("account_type", "ORDINARY") // "普通"');
|
|
109
|
+
lines.push(' */');
|
|
110
|
+
lines.push(' getLabel: (enumKey: EnumKey, value: string | number) => string | undefined;');
|
|
111
|
+
lines.push(' /**');
|
|
112
|
+
lines.push(' * Get value by enum key and label');
|
|
113
|
+
lines.push(' * @example getValue("account_type", "普通") // "ORDINARY"');
|
|
114
|
+
lines.push(' */');
|
|
115
|
+
lines.push(' getValue: (enumKey: EnumKey, label: string) => string | undefined;');
|
|
116
|
+
lines.push(' /**');
|
|
117
|
+
lines.push(' * Get select options by enum key');
|
|
118
|
+
lines.push(' * @example getOptions("account_type") // [{ value: "ORDINARY", label: "普通" }, ...]');
|
|
119
|
+
lines.push(' */');
|
|
120
|
+
lines.push(' getOptions: (enumKey: EnumKey) => { value: string; label: string }[];');
|
|
105
121
|
lines.push('}');
|
|
106
122
|
lines.push('');
|
|
107
123
|
lines.push('const EnumsContext = createContext<EnumsContextType | undefined>(undefined);');
|
|
@@ -111,21 +127,21 @@ function generateEnumContextFile(enums) {
|
|
|
111
127
|
lines.push(' const [loading] = useState(false);');
|
|
112
128
|
lines.push(' const [error] = useState<Error | null>(null);');
|
|
113
129
|
lines.push('');
|
|
114
|
-
lines.push(' const getLabel = (enumKey:
|
|
130
|
+
lines.push(' const getLabel = (enumKey: EnumKey, value: string | number): string | undefined => {');
|
|
115
131
|
lines.push(' if (!enums) return undefined;');
|
|
116
132
|
lines.push(' const enumData = enums[enumKey];');
|
|
117
133
|
lines.push(' if (!enumData) return undefined;');
|
|
118
134
|
lines.push(' return enumData[String(value)];');
|
|
119
135
|
lines.push(' };');
|
|
120
136
|
lines.push('');
|
|
121
|
-
lines.push(' const getValue = (enumKey:
|
|
137
|
+
lines.push(' const getValue = (enumKey: EnumKey, label: string): string | undefined => {');
|
|
122
138
|
lines.push(' if (!enums) return undefined;');
|
|
123
139
|
lines.push(' const enumData = enums[enumKey];');
|
|
124
140
|
lines.push(' if (!enumData) return undefined;');
|
|
125
141
|
lines.push(' return Object.entries(enumData).find(([_, l]) => l === label)?.[0];');
|
|
126
142
|
lines.push(' };');
|
|
127
143
|
lines.push('');
|
|
128
|
-
lines.push(' const getOptions = (enumKey:
|
|
144
|
+
lines.push(' const getOptions = (enumKey: EnumKey): { value: string; label: string }[] => {');
|
|
129
145
|
lines.push(' if (!enums) return [];');
|
|
130
146
|
lines.push(' const enumData = enums[enumKey];');
|
|
131
147
|
lines.push(' if (!enumData) return [];');
|
|
@@ -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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1B,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,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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"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { OmnifyObject, SchemaLock } from '../types';
|
|
2
|
-
export declare function generateModelFile(objectName: string, object: OmnifyObject): string;
|
|
2
|
+
export declare function generateModelFile(objectName: string, object: OmnifyObject, useBasePrefix?: boolean): string;
|
|
3
3
|
export declare function generateAllModels(schema: SchemaLock): string;
|
|
4
|
+
/**
|
|
5
|
+
* Generate extended model file that users can customize
|
|
6
|
+
* This file won't be overwritten on rebuild
|
|
7
|
+
*/
|
|
8
|
+
export declare function generateExtendedModelFile(objectName: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Generate models index file that exports all extended models
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateModelsIndexFile(objectNames: string[]): string;
|
|
4
13
|
//# sourceMappingURL=modelGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/modelGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,UAAU,EAAE,MAAM,UAAU,CAAC;AAwC9D,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"modelGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/modelGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,UAAU,EAAE,MAAM,UAAU,CAAC;AAwC9D,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,UAAO,GAAG,MAAM,CA6CxG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA6F5D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAuBpE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAarE"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateModelFile = generateModelFile;
|
|
4
4
|
exports.generateAllModels = generateAllModels;
|
|
5
|
+
exports.generateExtendedModelFile = generateExtendedModelFile;
|
|
6
|
+
exports.generateModelsIndexFile = generateModelsIndexFile;
|
|
5
7
|
const typeMapper_1 = require("../utils/typeMapper");
|
|
6
8
|
function toPascalCase(str) {
|
|
7
9
|
// Preserve case for already uppercase words like "ApplicationForm"
|
|
@@ -35,13 +37,14 @@ function expandCompositeFields(prop) {
|
|
|
35
37
|
}
|
|
36
38
|
return fields;
|
|
37
39
|
}
|
|
38
|
-
function generateModelFile(objectName, object) {
|
|
40
|
+
function generateModelFile(objectName, object, useBasePrefix = true) {
|
|
39
41
|
const lines = [];
|
|
40
|
-
lines.push('// Auto-generated by @
|
|
42
|
+
lines.push('// Auto-generated by @famgia/omnify');
|
|
41
43
|
lines.push('// Do not edit this file manually');
|
|
42
44
|
lines.push('');
|
|
45
|
+
const interfaceName = useBasePrefix ? `Base${objectName}` : objectName;
|
|
43
46
|
// Generate interface
|
|
44
|
-
lines.push(`export interface ${
|
|
47
|
+
lines.push(`export interface ${interfaceName} {`);
|
|
45
48
|
for (const [propName, prop] of Object.entries(object.properties)) {
|
|
46
49
|
// Skip relations for now (they're complex)
|
|
47
50
|
if (prop.type === 'Association' || prop.type === 'Polymorphic') {
|
|
@@ -150,4 +153,44 @@ function generateAllModels(schema) {
|
|
|
150
153
|
}
|
|
151
154
|
return lines.join('\n');
|
|
152
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Generate extended model file that users can customize
|
|
158
|
+
* This file won't be overwritten on rebuild
|
|
159
|
+
*/
|
|
160
|
+
function generateExtendedModelFile(objectName) {
|
|
161
|
+
const lines = [];
|
|
162
|
+
lines.push(`// Extended model for ${objectName}`);
|
|
163
|
+
lines.push('// You can customize this file - it will not be overwritten');
|
|
164
|
+
lines.push('');
|
|
165
|
+
lines.push(`import { Base${objectName} } from '../types/models';`);
|
|
166
|
+
lines.push('');
|
|
167
|
+
lines.push(`// Extend the base model with your custom fields/methods`);
|
|
168
|
+
lines.push(`export interface ${objectName} extends Base${objectName} {`);
|
|
169
|
+
lines.push(' // Add your custom fields here');
|
|
170
|
+
lines.push(' // Example:');
|
|
171
|
+
lines.push(' // customField?: string;');
|
|
172
|
+
lines.push('}');
|
|
173
|
+
lines.push('');
|
|
174
|
+
lines.push('// You can also add helper functions or methods here');
|
|
175
|
+
lines.push(`// Example:`);
|
|
176
|
+
lines.push(`// export function create${objectName}(data: Partial<${objectName}>): ${objectName} {`);
|
|
177
|
+
lines.push(`// return { ...data } as ${objectName};`);
|
|
178
|
+
lines.push(`// }`);
|
|
179
|
+
lines.push('');
|
|
180
|
+
return lines.join('\n');
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Generate models index file that exports all extended models
|
|
184
|
+
*/
|
|
185
|
+
function generateModelsIndexFile(objectNames) {
|
|
186
|
+
const lines = [];
|
|
187
|
+
lines.push('// Auto-generated by @famgia/omnify');
|
|
188
|
+
lines.push('// Extended models for customization');
|
|
189
|
+
lines.push('');
|
|
190
|
+
for (const objectName of objectNames) {
|
|
191
|
+
lines.push(`export * from './${objectName}';`);
|
|
192
|
+
}
|
|
193
|
+
lines.push('');
|
|
194
|
+
return lines.join('\n');
|
|
195
|
+
}
|
|
153
196
|
//# sourceMappingURL=modelGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelGenerator.js","sourceRoot":"","sources":["../../src/generators/modelGenerator.ts"],"names":[],"mappings":";;AAwCA,
|
|
1
|
+
{"version":3,"file":"modelGenerator.js","sourceRoot":"","sources":["../../src/generators/modelGenerator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@famgia/omnify",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Convert Omnify schema-lock.json to TypeScript models and enums",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": {
|
|
8
|
-
"omnify-build": "
|
|
8
|
+
"omnify-build": "dist/cli.js"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|