@famgia/omnify 0.12.8 → 1.0.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.
Files changed (78) hide show
  1. package/README.md +68 -102
  2. package/dist/index.cjs +101 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +4 -0
  5. package/dist/index.d.ts +4 -7
  6. package/dist/index.js +78 -22
  7. package/dist/index.js.map +1 -1
  8. package/package.json +34 -65
  9. package/CHANGELOG.md +0 -129
  10. package/dist/__tests__/generators/contextGenerator.test.d.ts +0 -2
  11. package/dist/__tests__/generators/contextGenerator.test.d.ts.map +0 -1
  12. package/dist/__tests__/generators/contextGenerator.test.js +0 -109
  13. package/dist/__tests__/generators/contextGenerator.test.js.map +0 -1
  14. package/dist/__tests__/generators/enumGenerator.test.d.ts +0 -2
  15. package/dist/__tests__/generators/enumGenerator.test.d.ts.map +0 -1
  16. package/dist/__tests__/generators/enumGenerator.test.js +0 -151
  17. package/dist/__tests__/generators/enumGenerator.test.js.map +0 -1
  18. package/dist/__tests__/generators/modelGenerator.test.d.ts +0 -2
  19. package/dist/__tests__/generators/modelGenerator.test.d.ts.map +0 -1
  20. package/dist/__tests__/generators/modelGenerator.test.js +0 -329
  21. package/dist/__tests__/generators/modelGenerator.test.js.map +0 -1
  22. package/dist/__tests__/utils/pascalCase.test.d.ts +0 -1
  23. package/dist/__tests__/utils/pascalCase.test.d.ts.map +0 -1
  24. package/dist/__tests__/utils/pascalCase.test.js +0 -75
  25. package/dist/__tests__/utils/pascalCase.test.js.map +0 -1
  26. package/dist/__tests__/utils/typeMapper.test.d.ts +0 -2
  27. package/dist/__tests__/utils/typeMapper.test.d.ts.map +0 -1
  28. package/dist/__tests__/utils/typeMapper.test.js +0 -41
  29. package/dist/__tests__/utils/typeMapper.test.js.map +0 -1
  30. package/dist/cli.d.ts +0 -3
  31. package/dist/cli.d.ts.map +0 -1
  32. package/dist/cli.js +0 -248
  33. package/dist/cli.js.map +0 -1
  34. package/dist/generators/commonTypesGenerator.d.ts +0 -5
  35. package/dist/generators/commonTypesGenerator.d.ts.map +0 -1
  36. package/dist/generators/commonTypesGenerator.js +0 -37
  37. package/dist/generators/commonTypesGenerator.js.map +0 -1
  38. package/dist/generators/contextGenerator.d.ts +0 -3
  39. package/dist/generators/contextGenerator.d.ts.map +0 -1
  40. package/dist/generators/contextGenerator.js +0 -248
  41. package/dist/generators/contextGenerator.js.map +0 -1
  42. package/dist/generators/enumGenerator.d.ts +0 -13
  43. package/dist/generators/enumGenerator.d.ts.map +0 -1
  44. package/dist/generators/enumGenerator.js +0 -83
  45. package/dist/generators/enumGenerator.js.map +0 -1
  46. package/dist/generators/hooksGenerator.d.ts +0 -4
  47. package/dist/generators/hooksGenerator.d.ts.map +0 -1
  48. package/dist/generators/hooksGenerator.js +0 -265
  49. package/dist/generators/hooksGenerator.js.map +0 -1
  50. package/dist/generators/modelGenerator.d.ts +0 -13
  51. package/dist/generators/modelGenerator.d.ts.map +0 -1
  52. package/dist/generators/modelGenerator.js +0 -208
  53. package/dist/generators/modelGenerator.js.map +0 -1
  54. package/dist/index.d.ts.map +0 -1
  55. package/dist/runtime/hooks/useFormSubmit.d.ts +0 -36
  56. package/dist/runtime/hooks/useFormSubmit.d.ts.map +0 -1
  57. package/dist/runtime/hooks/useFormSubmit.js +0 -86
  58. package/dist/runtime/hooks/useFormSubmit.js.map +0 -1
  59. package/dist/runtime/index.d.ts +0 -5
  60. package/dist/runtime/index.d.ts.map +0 -1
  61. package/dist/runtime/index.js +0 -21
  62. package/dist/runtime/index.js.map +0 -1
  63. package/dist/runtime/lib/axios.d.ts +0 -7
  64. package/dist/runtime/lib/axios.d.ts.map +0 -1
  65. package/dist/runtime/lib/axios.js +0 -54
  66. package/dist/runtime/lib/axios.js.map +0 -1
  67. package/dist/runtime/lib/validation.d.ts +0 -50
  68. package/dist/runtime/lib/validation.d.ts.map +0 -1
  69. package/dist/runtime/lib/validation.js +0 -85
  70. package/dist/runtime/lib/validation.js.map +0 -1
  71. package/dist/types.d.ts +0 -40
  72. package/dist/types.d.ts.map +0 -1
  73. package/dist/types.js +0 -3
  74. package/dist/types.js.map +0 -1
  75. package/dist/utils/typeMapper.d.ts +0 -6
  76. package/dist/utils/typeMapper.d.ts.map +0 -1
  77. package/dist/utils/typeMapper.js +0 -85
  78. package/dist/utils/typeMapper.js.map +0 -1
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractEnums = extractEnums;
4
- exports.generateEnumsFile = generateEnumsFile;
5
- exports.generateEnumOptionsFile = generateEnumOptionsFile;
6
- const typeMapper_1 = require("../utils/typeMapper");
7
- function extractEnums(schema) {
8
- const enums = [];
9
- for (const [objectName, object] of Object.entries(schema)) {
10
- for (const [propertyName, property] of Object.entries(object.properties)) {
11
- if (property.type === 'Enum' && property.enum) {
12
- const values = (0, typeMapper_1.normalizeEnumArray)(property.enum);
13
- if (values.length > 0) {
14
- enums.push({
15
- objectName,
16
- propertyName,
17
- values,
18
- });
19
- }
20
- }
21
- }
22
- }
23
- return enums;
24
- }
25
- function toPascalCase(str) {
26
- // Preserve case for already uppercase words like "ApplicationForm"
27
- // Just capitalize first letter of each underscore-separated part
28
- return str
29
- .split('_')
30
- .map(word => {
31
- // If word is already mixed case (e.g. "ApplicationForm"), keep it
32
- if (word !== word.toUpperCase() && word !== word.toLowerCase()) {
33
- return word;
34
- }
35
- // Otherwise capitalize first letter
36
- return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
37
- })
38
- .join('');
39
- }
40
- function generateEnumsFile(enums) {
41
- const lines = [];
42
- lines.push('// Auto-generated by @omnifyjp/omnify');
43
- lines.push('// Do not edit this file manually');
44
- lines.push('');
45
- // Use full key pattern: ObjectName_propertyName
46
- const enumsByKey = new Map();
47
- for (const enumInfo of enums) {
48
- const key = `${enumInfo.objectName}_${enumInfo.propertyName}`;
49
- enumsByKey.set(key, enumInfo);
50
- }
51
- // SECTION 1: Generate TypeScript types
52
- lines.push('// ============================================');
53
- lines.push('// Enum Types');
54
- lines.push('// ============================================');
55
- lines.push('');
56
- for (const [key, enumInfo] of enumsByKey.entries()) {
57
- const enumTypeName = toPascalCase(key);
58
- lines.push(`export type ${enumTypeName} =`);
59
- const values = enumInfo.values.map(v => ` | '${v.value}'`);
60
- lines.push(values.join('\n') + ';');
61
- lines.push('');
62
- }
63
- // SECTION 2: Generate value-label mappings
64
- lines.push('// ============================================');
65
- lines.push('// Enum Options (Value -> Label mappings)');
66
- lines.push('// ============================================');
67
- lines.push('');
68
- for (const [key, enumInfo] of enumsByKey.entries()) {
69
- const optionName = `${key}Options`;
70
- lines.push(`export const ${optionName} = {`);
71
- for (const { value, label } of enumInfo.values) {
72
- lines.push(` ${value}: '${label}',`);
73
- }
74
- lines.push('} as const;');
75
- lines.push('');
76
- }
77
- return lines.join('\n');
78
- }
79
- // Deprecated: Use generateEnumsFile instead
80
- function generateEnumOptionsFile(enums) {
81
- return ''; // No longer needed, merged into generateEnumsFile
82
- }
83
- //# sourceMappingURL=enumGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enumGenerator.js","sourceRoot":"","sources":["../../src/generators/enumGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare function generateUseFormSubmitHook(): string;
2
- export declare function generateAxiosLib(): string;
3
- export declare function generateHooksAndLib(outputDir: string): void;
4
- //# sourceMappingURL=hooksGenerator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooksGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/hooksGenerator.ts"],"names":[],"mappings":"AAGA,wBAAgB,yBAAyB,IAAI,MAAM,CA+HlD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAgEzC;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAuC3D"}
@@ -1,265 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.generateUseFormSubmitHook = generateUseFormSubmitHook;
37
- exports.generateAxiosLib = generateAxiosLib;
38
- exports.generateHooksAndLib = generateHooksAndLib;
39
- const fs = __importStar(require("fs"));
40
- const path = __importStar(require("path"));
41
- function generateUseFormSubmitHook() {
42
- const lines = [];
43
- lines.push("'use client';");
44
- lines.push('');
45
- lines.push('// Auto-generated by @famgia/omnify');
46
- lines.push('// Do not edit this file manually');
47
- lines.push('');
48
- lines.push("import { useState } from 'react';");
49
- lines.push("import { FormInstance, App } from 'antd';");
50
- lines.push("import { getCsrfCookie } from '../lib/axios';");
51
- lines.push('');
52
- lines.push('export interface UseFormSubmitOptions<TResponse = any> {');
53
- lines.push(' form: FormInstance;');
54
- lines.push(' submitFn: (values: any) => Promise<TResponse>;');
55
- lines.push(' onSuccess?: (response: TResponse, values: any) => void | Promise<void>;');
56
- lines.push(' onError?: (error: any, values: any) => void | Promise<void>;');
57
- lines.push(' withCsrf?: boolean;');
58
- lines.push(' errorMessages?: {');
59
- lines.push(' 500?: string;');
60
- lines.push(' 401?: string;');
61
- lines.push(' 403?: string;');
62
- lines.push(' default?: string;');
63
- lines.push(' };');
64
- lines.push('}');
65
- lines.push('');
66
- lines.push('export interface UseFormSubmitResult {');
67
- lines.push(' handleSubmit: (values: any) => Promise<void>;');
68
- lines.push(' loading: boolean;');
69
- lines.push(' setLoading: (loading: boolean) => void;');
70
- lines.push('}');
71
- lines.push('');
72
- lines.push('/**');
73
- lines.push(' * Custom hook for handling form submission with automatic Laravel validation error mapping');
74
- lines.push(' */');
75
- lines.push('export function useFormSubmit<TResponse = any>(');
76
- lines.push(' options: UseFormSubmitOptions<TResponse>');
77
- lines.push('): UseFormSubmitResult {');
78
- lines.push(' const {');
79
- lines.push(' form,');
80
- lines.push(' submitFn,');
81
- lines.push(' onSuccess,');
82
- lines.push(' onError,');
83
- lines.push(' withCsrf = true,');
84
- lines.push(' errorMessages = {},');
85
- lines.push(' } = options;');
86
- lines.push('');
87
- lines.push(' const [loading, setLoading] = useState(false);');
88
- lines.push(' const { message: messageApi } = App.useApp();');
89
- lines.push('');
90
- lines.push(' const handleSubmit = async (values: any): Promise<void> => {');
91
- lines.push(' setLoading(true);');
92
- lines.push(' try {');
93
- lines.push(' if (withCsrf) {');
94
- lines.push(' await getCsrfCookie();');
95
- lines.push(' }');
96
- lines.push('');
97
- lines.push(' const response = await submitFn(values);');
98
- lines.push('');
99
- lines.push(' if (onSuccess) {');
100
- lines.push(' await onSuccess(response, values);');
101
- lines.push(' }');
102
- lines.push(' } catch (error: any) {');
103
- lines.push(" console.error('Form submission error:', error);");
104
- lines.push('');
105
- lines.push(' if (onError) {');
106
- lines.push(' await onError(error, values);');
107
- lines.push(' return;');
108
- lines.push(' }');
109
- lines.push('');
110
- lines.push(' // Handle validation errors (422)');
111
- lines.push(' if (error.response?.status === 422 && error.response?.data?.errors) {');
112
- lines.push(' const errors = error.response.data.errors;');
113
- lines.push('');
114
- lines.push(' // Set field errors');
115
- lines.push(' const formErrors = Object.keys(errors).map((field) => ({');
116
- lines.push(' name: field,');
117
- lines.push(' errors: errors[field],');
118
- lines.push(' }));');
119
- lines.push(' form.setFields(formErrors);');
120
- lines.push('');
121
- lines.push(' // Show error message');
122
- lines.push(' const errorCount = Object.keys(errors).length;');
123
- lines.push(' const errorList = Object.values(errors)');
124
- lines.push(' .map((msgs: any) => msgs[0])');
125
- lines.push(" .join(' / ');");
126
- lines.push('');
127
- lines.push(' messageApi.error({');
128
- lines.push(' content: `入力内容にエラーがあります(${errorCount}件): ${errorList}`,');
129
- lines.push(' duration: 8,');
130
- lines.push(' });');
131
- lines.push('');
132
- lines.push(" console.error('Validation errors:', errors);");
133
- lines.push(' }');
134
- lines.push(' // Handle server errors');
135
- lines.push(' else if (error.response?.status >= 500) {');
136
- lines.push(' messageApi.error(');
137
- lines.push(" errorMessages[500] || 'サーバーエラーが発生しました。しばらくしてから再度お試しください。'");
138
- lines.push(' );');
139
- lines.push(' }');
140
- lines.push(' // Handle auth errors');
141
- lines.push(' else if (error.response?.status === 401 || error.response?.status === 403) {');
142
- lines.push(' const status = error.response.status as 401 | 403;');
143
- lines.push(' messageApi.error(');
144
- lines.push(" errorMessages[status] || '認証エラーが発生しました。再度ログインしてください。'");
145
- lines.push(' );');
146
- lines.push(' }');
147
- lines.push(' // Handle generic errors');
148
- lines.push(' else {');
149
- lines.push(' messageApi.error(');
150
- lines.push(" error.response?.data?.message || errorMessages.default || '送信に失敗しました'");
151
- lines.push(' );');
152
- lines.push(' }');
153
- lines.push(' } finally {');
154
- lines.push(' setLoading(false);');
155
- lines.push(' }');
156
- lines.push(' };');
157
- lines.push('');
158
- lines.push(' return {');
159
- lines.push(' handleSubmit,');
160
- lines.push(' loading,');
161
- lines.push(' setLoading,');
162
- lines.push(' };');
163
- lines.push('}');
164
- lines.push('');
165
- return lines.join('\n');
166
- }
167
- function generateAxiosLib() {
168
- const lines = [];
169
- lines.push('// Auto-generated by @famgia/omnify');
170
- lines.push('// Do not edit this file manually');
171
- lines.push('');
172
- lines.push("import axios, { AxiosError, InternalAxiosRequestConfig } from 'axios';");
173
- lines.push('');
174
- lines.push('// Validate required environment variable');
175
- lines.push('if (!process.env.NEXT_PUBLIC_API_URL) {');
176
- lines.push(" throw new Error('NEXT_PUBLIC_API_URL environment variable is required');");
177
- lines.push('}');
178
- lines.push('');
179
- lines.push('// Create axios instance');
180
- lines.push('const axiosInstance = axios.create({');
181
- lines.push(' baseURL: process.env.NEXT_PUBLIC_API_URL,');
182
- lines.push(' timeout: 30000,');
183
- lines.push(' withCredentials: true,');
184
- lines.push(' headers: {');
185
- lines.push(" 'Accept': 'application/json',");
186
- lines.push(" 'Content-Type': 'application/json',");
187
- lines.push(' },');
188
- lines.push(" xsrfCookieName: 'XSRF-TOKEN',");
189
- lines.push(" xsrfHeaderName: 'X-XSRF-TOKEN',");
190
- lines.push('});');
191
- lines.push('');
192
- lines.push('// Helper to get cookie value by name');
193
- lines.push('function getCookie(name: string): string | null {');
194
- lines.push(" if (typeof document === 'undefined') return null;");
195
- lines.push(' const value = `; ${document.cookie}`;');
196
- lines.push(' const parts = value.split(`; ${name}=`);');
197
- lines.push(" if (parts.length === 2) return parts.pop()?.split(';').shift() || null;");
198
- lines.push(' return null;');
199
- lines.push('}');
200
- lines.push('');
201
- lines.push('// Request interceptor');
202
- lines.push('axiosInstance.interceptors.request.use(');
203
- lines.push(' (config: InternalAxiosRequestConfig) => {');
204
- lines.push(" const token = getCookie('XSRF-TOKEN');");
205
- lines.push(' if (token) {');
206
- lines.push(" config.headers['X-XSRF-TOKEN'] = decodeURIComponent(token);");
207
- lines.push(' }');
208
- lines.push(' return config;');
209
- lines.push(' },');
210
- lines.push(' (error: AxiosError) => {');
211
- lines.push(' return Promise.reject(error);');
212
- lines.push(' }');
213
- lines.push(');');
214
- lines.push('');
215
- lines.push('/**');
216
- lines.push(' * Get CSRF cookie before making authenticated requests');
217
- lines.push(' * Required for Laravel Sanctum cookie-based authentication');
218
- lines.push(' */');
219
- lines.push('export const getCsrfCookie = async (): Promise<void> => {');
220
- lines.push(' if (!process.env.NEXT_PUBLIC_API_URL) {');
221
- lines.push(" throw new Error('NEXT_PUBLIC_API_URL environment variable is required');");
222
- lines.push(' }');
223
- lines.push(' await axiosInstance.get(`${process.env.NEXT_PUBLIC_API_URL}/sanctum/csrf-cookie`);');
224
- lines.push('};');
225
- lines.push('');
226
- lines.push('export default axiosInstance;');
227
- lines.push('');
228
- return lines.join('\n');
229
- }
230
- function generateHooksAndLib(outputDir) {
231
- const hooksDir = path.join(outputDir, 'hooks');
232
- const libDir = path.join(outputDir, 'lib');
233
- // Create directories
234
- if (!fs.existsSync(hooksDir)) {
235
- fs.mkdirSync(hooksDir, { recursive: true });
236
- }
237
- if (!fs.existsSync(libDir)) {
238
- fs.mkdirSync(libDir, { recursive: true });
239
- }
240
- // Generate useFormSubmit hook
241
- const useFormSubmitContent = generateUseFormSubmitHook();
242
- fs.writeFileSync(path.join(hooksDir, 'useFormSubmit.tsx'), useFormSubmitContent);
243
- console.log('✅ Generated hooks/useFormSubmit.tsx');
244
- // Generate hooks index
245
- const hooksIndexContent = [
246
- '// Auto-generated by @famgia/omnify',
247
- "export * from './useFormSubmit';",
248
- '',
249
- ].join('\n');
250
- fs.writeFileSync(path.join(hooksDir, 'index.ts'), hooksIndexContent);
251
- console.log('✅ Generated hooks/index.ts');
252
- // Generate axios lib
253
- const axiosContent = generateAxiosLib();
254
- fs.writeFileSync(path.join(libDir, 'axios.ts'), axiosContent);
255
- console.log('✅ Generated lib/axios.ts');
256
- // Generate lib index
257
- const libIndexContent = [
258
- '// Auto-generated by @famgia/omnify',
259
- "export { default as axios, getCsrfCookie } from './axios';",
260
- '',
261
- ].join('\n');
262
- fs.writeFileSync(path.join(libDir, 'index.ts'), libIndexContent);
263
- console.log('✅ Generated lib/index.ts');
264
- }
265
- //# sourceMappingURL=hooksGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooksGenerator.js","sourceRoot":"","sources":["../../src/generators/hooksGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,8DA+HC;AAED,4CAgEC;AAED,kDAuCC;AA7OD,uCAAyB;AACzB,2CAA6B;AAE7B,SAAgB,yBAAyB;IACrC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACxF,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;IAC1G,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;IAC1F,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IAC/E,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAClF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;IACjG,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IACzE,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;IAC9F,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,gBAAgB;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACrF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACxF,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IACxE,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAC3F,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACnG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,mBAAmB,CAAC,SAAiB;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE3C,qBAAqB;IACrB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,8BAA8B;IAC9B,MAAM,oBAAoB,GAAG,yBAAyB,EAAE,CAAC;IACzD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEnD,uBAAuB;IACvB,MAAM,iBAAiB,GAAG;QACtB,qCAAqC;QACrC,kCAAkC;QAClC,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAE1C,qBAAqB;IACrB,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAExC,qBAAqB;IACrB,MAAM,eAAe,GAAG;QACpB,qCAAqC;QACrC,4DAA4D;QAC5D,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,13 +0,0 @@
1
- import { OmnifyObject, SchemaLock } from '../types';
2
- export declare function generateModelFile(objectName: string, object: OmnifyObject, useBasePrefix?: boolean): string;
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;
13
- //# sourceMappingURL=modelGenerator.d.ts.map
@@ -1 +0,0 @@
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,CA6G5D;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"}
@@ -1,208 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateModelFile = generateModelFile;
4
- exports.generateAllModels = generateAllModels;
5
- exports.generateExtendedModelFile = generateExtendedModelFile;
6
- exports.generateModelsIndexFile = generateModelsIndexFile;
7
- const typeMapper_1 = require("../utils/typeMapper");
8
- function toPascalCase(str) {
9
- // Preserve case for already uppercase words like "ApplicationForm"
10
- // Just capitalize first letter of each underscore-separated part
11
- return str
12
- .split('_')
13
- .map(word => {
14
- // If word is already mixed case (e.g. "ApplicationForm"), keep it
15
- if (word !== word.toUpperCase() && word !== word.toLowerCase()) {
16
- return word;
17
- }
18
- // Otherwise capitalize first letter
19
- return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
20
- })
21
- .join('');
22
- }
23
- function expandCompositeFields(prop) {
24
- if (!prop.fields)
25
- return [];
26
- const fields = [];
27
- for (const [fieldName, field] of Object.entries(prop.fields)) {
28
- const tsType = (0, typeMapper_1.mapOmnifyTypeToTypeScript)(field.type, field.nullable);
29
- const optional = field.nullable ? '?' : '';
30
- const comment = field.displayName ? ` // ${field.displayName}` : '';
31
- fields.push({
32
- name: field.propertyName,
33
- type: tsType,
34
- optional,
35
- comment,
36
- });
37
- }
38
- return fields;
39
- }
40
- function generateModelFile(objectName, object, useBasePrefix = true) {
41
- const lines = [];
42
- lines.push('// Auto-generated by @famgia/omnify');
43
- lines.push('// Do not edit this file manually');
44
- lines.push('');
45
- const interfaceName = useBasePrefix ? `Base${objectName}` : objectName;
46
- // Generate interface
47
- lines.push(`export interface ${interfaceName} {`);
48
- for (const [propName, prop] of Object.entries(object.properties)) {
49
- // Skip relations for now (they're complex)
50
- if (prop.type === 'Association' || prop.type === 'Polymorphic') {
51
- continue;
52
- }
53
- // Handle composite types - expand fields
54
- if (prop.fields) {
55
- const expandedFields = expandCompositeFields(prop);
56
- for (const field of expandedFields) {
57
- lines.push(` ${field.name}${field.optional}: ${field.type};${field.comment}`);
58
- }
59
- continue;
60
- }
61
- let propType;
62
- if (prop.type === 'Enum' && prop.enum) {
63
- propType = `${toPascalCase(objectName)}${toPascalCase(propName)}`;
64
- }
65
- else {
66
- propType = (0, typeMapper_1.mapOmnifyTypeToTypeScript)(prop.type, prop.nullable);
67
- }
68
- const optional = prop.nullable ? '?' : '';
69
- const comment = prop.displayName ? ` // ${prop.displayName}` : '';
70
- lines.push(` ${propName}${optional}: ${propType};${comment}`);
71
- }
72
- lines.push('}');
73
- lines.push('');
74
- return lines.join('\n');
75
- }
76
- function generateAllModels(schema) {
77
- const lines = [];
78
- lines.push('// Auto-generated by @famgia/omnify');
79
- lines.push('// Do not edit this file manually');
80
- lines.push('// These are BASE models - DO NOT EDIT');
81
- lines.push('// Use models/ directory for customizable extended models');
82
- lines.push('');
83
- lines.push('import * as Enums from \'./enums\';');
84
- lines.push('');
85
- // Collect all model names for import
86
- const modelNames = Object.keys(schema).filter(key => schema[key] && typeof schema[key] === 'object' && schema[key].objectName);
87
- // Import extended models from ../models
88
- if (modelNames.length > 0) {
89
- lines.push('// Import extended models for relations');
90
- lines.push(`import type { ${modelNames.join(', ')} } from '../models';`);
91
- lines.push('');
92
- }
93
- // Generate models
94
- for (const [objectName, object] of Object.entries(schema)) {
95
- lines.push(`// ${object.displayName}`);
96
- lines.push(`export interface Base${objectName} {`);
97
- // Track processed properties to avoid duplicates from composite fields
98
- const processedProps = new Set();
99
- // PHASE 1: Add foreign keys for ManyToOne associations first
100
- for (const [propName, prop] of Object.entries(object.properties)) {
101
- if (prop.type === 'Association' && prop.relation === 'ManyToOne') {
102
- const foreignKeyName = prop.foreignKey || `${propName}_id`;
103
- if (!processedProps.has(foreignKeyName)) {
104
- const comment = ` // Foreign key for ${prop.displayName || propName}`;
105
- lines.push(` ${foreignKeyName}?: number | null;${comment}`);
106
- processedProps.add(foreignKeyName);
107
- }
108
- }
109
- }
110
- // PHASE 2: Add all other properties
111
- for (const [propName, prop] of Object.entries(object.properties)) {
112
- // Skip if already processed
113
- if (processedProps.has(propName)) {
114
- continue;
115
- }
116
- // Handle Association types
117
- if (prop.type === 'Association') {
118
- const comment = prop.displayName ? ` // ${prop.displayName}` : '';
119
- // Use extended models (imported from ../models) for relations
120
- const target = prop.target;
121
- switch (prop.relation) {
122
- case 'ManyToOne':
123
- lines.push(` ${propName}?: ${target} | null;${comment}`);
124
- break;
125
- case 'OneToOne':
126
- lines.push(` ${propName}?: ${target} | null;${comment}`);
127
- break;
128
- case 'OneToMany':
129
- case 'ManyToMany':
130
- lines.push(` ${propName}?: ${target}[];${comment}`);
131
- break;
132
- }
133
- processedProps.add(propName);
134
- continue;
135
- }
136
- // Skip Polymorphic for now (too complex)
137
- if (prop.type === 'Polymorphic') {
138
- continue;
139
- }
140
- // Handle composite types - expand fields and mark them as processed
141
- if (prop.fields) {
142
- const expandedFields = expandCompositeFields(prop);
143
- for (const field of expandedFields) {
144
- if (!processedProps.has(field.name)) {
145
- lines.push(` ${field.name}${field.optional}: ${field.type};${field.comment}`);
146
- processedProps.add(field.name);
147
- }
148
- }
149
- continue;
150
- }
151
- let propType;
152
- if (prop.type === 'Enum' && prop.enum) {
153
- propType = `Enums.${toPascalCase(objectName)}${toPascalCase(propName)}`;
154
- }
155
- else {
156
- propType = (0, typeMapper_1.mapOmnifyTypeToTypeScript)(prop.type, prop.nullable);
157
- }
158
- const optional = prop.nullable ? '?' : '';
159
- const comment = prop.displayName ? ` // ${prop.displayName}` : '';
160
- lines.push(` ${propName}${optional}: ${propType};${comment}`);
161
- processedProps.add(propName);
162
- }
163
- lines.push('}');
164
- lines.push('');
165
- }
166
- return lines.join('\n');
167
- }
168
- /**
169
- * Generate extended model file that users can customize
170
- * This file won't be overwritten on rebuild
171
- */
172
- function generateExtendedModelFile(objectName) {
173
- const lines = [];
174
- lines.push(`// Extended model for ${objectName}`);
175
- lines.push('// You can customize this file - it will not be overwritten');
176
- lines.push('');
177
- lines.push(`import { Base${objectName} } from '../types/models';`);
178
- lines.push('');
179
- lines.push(`// Extend the base model with your custom fields/methods`);
180
- lines.push(`export interface ${objectName} extends Base${objectName} {`);
181
- lines.push(' // Add your custom fields here');
182
- lines.push(' // Example:');
183
- lines.push(' // customField?: string;');
184
- lines.push('}');
185
- lines.push('');
186
- lines.push('// You can also add helper functions or methods here');
187
- lines.push(`// Example:`);
188
- lines.push(`// export function create${objectName}(data: Partial<${objectName}>): ${objectName} {`);
189
- lines.push(`// return { ...data } as ${objectName};`);
190
- lines.push(`// }`);
191
- lines.push('');
192
- return lines.join('\n');
193
- }
194
- /**
195
- * Generate models index file that exports all extended models
196
- */
197
- function generateModelsIndexFile(objectNames) {
198
- const lines = [];
199
- lines.push('// Auto-generated by @famgia/omnify');
200
- lines.push('// Extended models for customization');
201
- lines.push('');
202
- for (const objectName of objectNames) {
203
- lines.push(`export * from './${objectName}';`);
204
- }
205
- lines.push('');
206
- return lines.join('\n');
207
- }
208
- //# sourceMappingURL=modelGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modelGenerator.js","sourceRoot":"","sources":["../../src/generators/modelGenerator.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}