@daawoonkim/create-arch-app 0.1.0 → 0.2.1

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.
@@ -1,18 +1,25 @@
1
1
  import path from 'path';
2
2
  import { ensureDir, createFile } from '../utils/fileSystem.js';
3
+ import { generateApiFiles, generateEnvFile } from '../utils/apiGenerator.js';
3
4
  export async function generateNextJsProject(config, projectPath) {
5
+ // src 디렉토리 생성
6
+ const srcPath = path.join(projectPath, 'src');
7
+ await ensureDir(srcPath);
4
8
  // next.config.js 생성
5
9
  await generateNextConfig(projectPath);
6
10
  if (config.router === 'app') {
7
- await generateAppRouter(config, projectPath);
11
+ await generateAppRouter(config, srcPath);
8
12
  }
9
13
  else {
10
- await generatePagesRouter(config, projectPath);
14
+ await generatePagesRouter(config, srcPath);
11
15
  }
12
- // 아키텍처별 폴더 구조 생성
13
- await generateArchitectureStructure(config, projectPath);
16
+ // 아키텍처별 폴더 구조 생성 (src 안에)
17
+ await generateArchitectureStructure(config, srcPath);
14
18
  // 공통 설정 파일
15
19
  await generateCommonFiles(config, projectPath);
20
+ // API 관련 파일 생성 (src 안에)
21
+ await generateApiFiles(config, srcPath);
22
+ await generateEnvFile(config, projectPath);
16
23
  }
17
24
  async function generateNextConfig(projectPath) {
18
25
  const content = `/** @type {import('next').NextConfig} */
@@ -24,12 +31,21 @@ module.exports = nextConfig
24
31
  `;
25
32
  await createFile(path.join(projectPath, 'next.config.js'), content);
26
33
  }
27
- async function generateAppRouter(config, projectPath) {
28
- const appPath = path.join(projectPath, 'app');
34
+ async function generateAppRouter(config, srcPath) {
35
+ const appPath = path.join(srcPath, 'app');
29
36
  await ensureDir(appPath);
30
- // layout.tsx
31
- const layoutContent = `import type { Metadata } from 'next'
32
- ${config.styling === 'tailwind' ? "import './globals.css'\n" : ''}
37
+ // layout.tsx with React Query Provider
38
+ let layoutImports = ["import type { Metadata } from 'next'"];
39
+ if (config.styling === 'tailwind') {
40
+ layoutImports.push("import './globals.css'");
41
+ }
42
+ let layoutBody = '{children}';
43
+ if (config.dataFetching === 'react-query') {
44
+ layoutImports.push("import { Providers } from '@/app/providers'");
45
+ layoutBody = '<Providers>{children}</Providers>';
46
+ }
47
+ const layoutContent = `${layoutImports.join('\n')}
48
+
33
49
  export const metadata: Metadata = {
34
50
  title: '${config.projectName}',
35
51
  description: 'Created with create-arch-app',
@@ -42,12 +58,36 @@ export default function RootLayout({
42
58
  }) {
43
59
  return (
44
60
  <html lang="ko">
45
- <body>{children}</body>
61
+ <body>${layoutBody}</body>
46
62
  </html>
47
63
  )
48
64
  }
49
65
  `;
50
66
  await createFile(path.join(appPath, 'layout.tsx'), layoutContent);
67
+ // Generate providers.tsx for React Query
68
+ if (config.dataFetching === 'react-query') {
69
+ const queryClientPath = config.architecture === 'ddd'
70
+ ? '@/infrastructure/api/queryClient'
71
+ : config.architecture === 'clean'
72
+ ? '@/shared/lib/queryClient'
73
+ : '@/lib/queryClient';
74
+ const providersContent = `'use client';
75
+
76
+ import { QueryClientProvider } from '@tanstack/react-query';
77
+ import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
78
+ import { queryClient } from '${queryClientPath}';
79
+
80
+ export function Providers({ children }: { children: React.ReactNode }) {
81
+ return (
82
+ <QueryClientProvider client={queryClient}>
83
+ {children}
84
+ <ReactQueryDevtools initialIsOpen={false} />
85
+ </QueryClientProvider>
86
+ );
87
+ }
88
+ `;
89
+ await createFile(path.join(appPath, 'providers.tsx'), providersContent);
90
+ }
51
91
  // page.tsx
52
92
  const pageContent = `export default function Home() {
53
93
  return (
@@ -94,17 +134,34 @@ body {
94
134
  await createFile(path.join(appPath, 'globals.css'), cssContent);
95
135
  }
96
136
  }
97
- async function generatePagesRouter(config, projectPath) {
98
- const pagesPath = path.join(projectPath, 'pages');
99
- const stylesPath = path.join(projectPath, 'styles');
137
+ async function generatePagesRouter(config, srcPath) {
138
+ const pagesPath = path.join(srcPath, 'pages');
139
+ const stylesPath = path.join(srcPath, 'styles');
100
140
  await ensureDir(pagesPath);
101
141
  await ensureDir(stylesPath);
102
- // _app.tsx
103
- const appContent = `import type { AppProps } from 'next/app'
104
- import '../styles/globals.css'
142
+ // _app.tsx with React Query Provider
143
+ let appImports = ["import type { AppProps } from 'next/app'", "import '@/styles/globals.css'"];
144
+ if (config.dataFetching === 'react-query') {
145
+ appImports.push("import { QueryClientProvider } from '@tanstack/react-query'");
146
+ appImports.push("import { ReactQueryDevtools } from '@tanstack/react-query-devtools'");
147
+ const queryClientPath = config.architecture === 'ddd'
148
+ ? '@/infrastructure/api/queryClient'
149
+ : config.architecture === 'clean'
150
+ ? '@/shared/lib/queryClient'
151
+ : '@/lib/queryClient';
152
+ appImports.push(`import { queryClient } from '${queryClientPath}'`);
153
+ }
154
+ let componentWrapper = '<Component {...pageProps} />';
155
+ if (config.dataFetching === 'react-query') {
156
+ componentWrapper = `<QueryClientProvider client={queryClient}>
157
+ <Component {...pageProps} />
158
+ <ReactQueryDevtools initialIsOpen={false} />
159
+ </QueryClientProvider>`;
160
+ }
161
+ const appContent = `${appImports.join('\n')}
105
162
 
106
163
  export default function App({ Component, pageProps }: AppProps) {
107
- return <Component {...pageProps} />
164
+ return ${componentWrapper}
108
165
  }
109
166
  `;
110
167
  await createFile(path.join(pagesPath, '_app.tsx'), appContent);
@@ -170,40 +227,40 @@ body {
170
227
  await createFile(path.join(stylesPath, 'globals.css'), cssContent);
171
228
  }
172
229
  }
173
- async function generateArchitectureStructure(config, projectPath) {
230
+ async function generateArchitectureStructure(config, srcPath) {
174
231
  switch (config.architecture) {
175
232
  case 'ddd':
176
- await ensureDir(path.join(projectPath, 'domain/entities'));
177
- await ensureDir(path.join(projectPath, 'domain/repositories'));
178
- await ensureDir(path.join(projectPath, 'domain/services'));
179
- await ensureDir(path.join(projectPath, 'application/usecases'));
180
- await ensureDir(path.join(projectPath, 'application/ports'));
181
- await ensureDir(path.join(projectPath, 'infrastructure/api'));
182
- await ensureDir(path.join(projectPath, 'infrastructure/persistence'));
183
- await ensureDir(path.join(projectPath, 'presentation/components'));
184
- await createFile(path.join(projectPath, 'domain/entities/README.md'), '# Domain Entities\n\n비즈니스 엔티티를 정의합니다.');
185
- await createFile(path.join(projectPath, 'application/usecases/README.md'), '# Use Cases\n\n애플리케이션 유스케이스를 구현합니다.');
233
+ await ensureDir(path.join(srcPath, 'domain/entities'));
234
+ await ensureDir(path.join(srcPath, 'domain/repositories'));
235
+ await ensureDir(path.join(srcPath, 'domain/services'));
236
+ await ensureDir(path.join(srcPath, 'application/usecases'));
237
+ await ensureDir(path.join(srcPath, 'application/ports'));
238
+ await ensureDir(path.join(srcPath, 'infrastructure/api'));
239
+ await ensureDir(path.join(srcPath, 'infrastructure/persistence'));
240
+ await ensureDir(path.join(srcPath, 'presentation/components'));
241
+ await createFile(path.join(srcPath, 'domain/entities/README.md'), '# Domain Entities\n\n비즈니스 엔티티를 정의합니다.');
242
+ await createFile(path.join(srcPath, 'application/usecases/README.md'), '# Use Cases\n\n애플리케이션 유스케이스를 구현합니다.');
186
243
  break;
187
244
  case 'clean':
188
- await ensureDir(path.join(projectPath, 'core/entities'));
189
- await ensureDir(path.join(projectPath, 'core/usecases'));
190
- await ensureDir(path.join(projectPath, 'core/interfaces'));
191
- await ensureDir(path.join(projectPath, 'features/example/domain'));
192
- await ensureDir(path.join(projectPath, 'features/example/data'));
193
- await ensureDir(path.join(projectPath, 'features/example/presentation'));
194
- await ensureDir(path.join(projectPath, 'shared/components'));
195
- await ensureDir(path.join(projectPath, 'shared/utils'));
196
- await createFile(path.join(projectPath, 'core/entities/README.md'), '# Core Entities\n\n핵심 비즈니스 엔티티를 정의합니다.');
245
+ await ensureDir(path.join(srcPath, 'core/entities'));
246
+ await ensureDir(path.join(srcPath, 'core/usecases'));
247
+ await ensureDir(path.join(srcPath, 'core/interfaces'));
248
+ await ensureDir(path.join(srcPath, 'features/example/domain'));
249
+ await ensureDir(path.join(srcPath, 'features/example/data'));
250
+ await ensureDir(path.join(srcPath, 'features/example/presentation'));
251
+ await ensureDir(path.join(srcPath, 'shared/components'));
252
+ await ensureDir(path.join(srcPath, 'shared/utils'));
253
+ await createFile(path.join(srcPath, 'core/entities/README.md'), '# Core Entities\n\n핵심 비즈니스 엔티티를 정의합니다.');
197
254
  break;
198
255
  case 'atomic':
199
- await ensureDir(path.join(projectPath, 'components/atoms'));
200
- await ensureDir(path.join(projectPath, 'components/molecules'));
201
- await ensureDir(path.join(projectPath, 'components/organisms'));
202
- await ensureDir(path.join(projectPath, 'components/templates'));
203
- await ensureDir(path.join(projectPath, 'hooks'));
204
- await ensureDir(path.join(projectPath, 'utils'));
256
+ await ensureDir(path.join(srcPath, 'components/atoms'));
257
+ await ensureDir(path.join(srcPath, 'components/molecules'));
258
+ await ensureDir(path.join(srcPath, 'components/organisms'));
259
+ await ensureDir(path.join(srcPath, 'components/templates'));
260
+ await ensureDir(path.join(srcPath, 'hooks'));
261
+ await ensureDir(path.join(srcPath, 'utils'));
205
262
  // Example Button component
206
- await createFile(path.join(projectPath, 'components/atoms/Button.tsx'), `interface ButtonProps {
263
+ await createFile(path.join(srcPath, 'components/atoms/Button.tsx'), `interface ButtonProps {
207
264
  children: React.ReactNode;
208
265
  onClick?: () => void;
209
266
  variant?: 'primary' | 'secondary';
@@ -229,15 +286,15 @@ export const Button: React.FC<ButtonProps> = ({
229
286
  );
230
287
  };
231
288
  `);
232
- await createFile(path.join(projectPath, 'components/atoms/README.md'), '# Atoms\n\n가장 작은 UI 컴포넌트 단위입니다.');
289
+ await createFile(path.join(srcPath, 'components/atoms/README.md'), '# Atoms\n\n가장 작은 UI 컴포넌트 단위입니다.');
233
290
  break;
234
291
  case 'default':
235
292
  default:
236
- await ensureDir(path.join(projectPath, 'components'));
237
- await ensureDir(path.join(projectPath, 'hooks'));
238
- await ensureDir(path.join(projectPath, 'utils'));
239
- await ensureDir(path.join(projectPath, 'types'));
240
- await createFile(path.join(projectPath, 'components/README.md'), '# Components\n\nReact 컴포넌트를 작성합니다.');
293
+ await ensureDir(path.join(srcPath, 'components'));
294
+ await ensureDir(path.join(srcPath, 'hooks'));
295
+ await ensureDir(path.join(srcPath, 'utils'));
296
+ await ensureDir(path.join(srcPath, 'types'));
297
+ await createFile(path.join(srcPath, 'components/README.md'), '# Components\n\nReact 컴포넌트를 작성합니다.');
241
298
  break;
242
299
  }
243
300
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nextjs.js","sourceRoot":"","sources":["../../src/generators/nextjs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nextjs.js","sourceRoot":"","sources":["../../src/generators/nextjs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/generators/react.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAsBf"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/generators/react.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -1,5 +1,6 @@
1
1
  import path from 'path';
2
2
  import { ensureDir, createFile } from '../utils/fileSystem.js';
3
+ import { generateApiFiles, generateEnvFile } from '../utils/apiGenerator.js';
3
4
  export async function generateReactProject(config, projectPath) {
4
5
  // src 디렉토리 생성
5
6
  const srcPath = path.join(projectPath, 'src');
@@ -16,6 +17,9 @@ export async function generateReactProject(config, projectPath) {
16
17
  await generateViteConfig(projectPath);
17
18
  // 스타일 파일 생성
18
19
  await generateStyles(config, srcPath);
20
+ // API 관련 파일 생성
21
+ await generateApiFiles(config, srcPath);
22
+ await generateEnvFile(config, projectPath);
19
23
  }
20
24
  async function generateArchitectureStructure(config, srcPath) {
21
25
  switch (config.architecture) {
@@ -120,11 +124,29 @@ async function generateMainTsx(config, srcPath) {
120
124
  imports.push("import './index.css'");
121
125
  }
122
126
  imports.push("import App from './App'");
127
+ // React Query Provider
128
+ if (config.dataFetching === 'react-query') {
129
+ imports.push("import { QueryClientProvider } from '@tanstack/react-query'");
130
+ imports.push("import { ReactQueryDevtools } from '@tanstack/react-query-devtools'");
131
+ const queryClientPath = config.architecture === 'ddd'
132
+ ? './infrastructure/api/queryClient'
133
+ : config.architecture === 'clean'
134
+ ? './shared/lib/queryClient'
135
+ : './lib/queryClient';
136
+ imports.push(`import { queryClient } from '${queryClientPath}'`);
137
+ }
138
+ let appWrapper = '<App />';
139
+ if (config.dataFetching === 'react-query') {
140
+ appWrapper = `<QueryClientProvider client={queryClient}>
141
+ <App />
142
+ <ReactQueryDevtools initialIsOpen={false} />
143
+ </QueryClientProvider>`;
144
+ }
123
145
  const content = `${imports.join('\n')}
124
146
 
125
147
  ReactDOM.createRoot(document.getElementById('root')!).render(
126
148
  <React.StrictMode>
127
- <App />
149
+ ${appWrapper}
128
150
  </React.StrictMode>,
129
151
  )
130
152
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/generators/react.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/generators/react.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectSetup.d.ts","sourceRoot":"","sources":["../../src/prompts/projectSetup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAA+F,MAAM,aAAa,CAAC;AAczI,wBAAsB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA4GrF"}
1
+ {"version":3,"file":"projectSetup.d.ts","sourceRoot":"","sources":["../../src/prompts/projectSetup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAwH,MAAM,aAAa,CAAC;AAgBlK,wBAAsB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAkIrF"}
@@ -88,6 +88,26 @@ export async function promptProjectSetup(projectName) {
88
88
  { name: 'None', value: 'none' }
89
89
  ]
90
90
  },
91
+ {
92
+ type: 'list',
93
+ name: 'apiClient',
94
+ message: 'HTTP 클라이언트를 선택하세요:',
95
+ choices: [
96
+ { name: 'Axios (권장)', value: 'axios' },
97
+ { name: 'Fetch (네이티브)', value: 'fetch' },
98
+ { name: 'None', value: 'none' }
99
+ ]
100
+ },
101
+ {
102
+ type: 'list',
103
+ name: 'dataFetching',
104
+ message: '데이터 페칭 라이브러리를 선택하세요:',
105
+ choices: [
106
+ { name: 'TanStack Query (React Query) - 권장', value: 'react-query' },
107
+ { name: 'SWR (Next.js 최적화)', value: 'swr' },
108
+ { name: 'None', value: 'none' }
109
+ ]
110
+ },
91
111
  {
92
112
  type: 'confirm',
93
113
  name: 'testing',
@@ -104,6 +124,8 @@ export async function promptProjectSetup(projectName) {
104
124
  styling: answers.styling,
105
125
  stateManagement: answers.stateManagement,
106
126
  formLibrary: answers.formLibrary,
127
+ apiClient: answers.apiClient,
128
+ dataFetching: answers.dataFetching,
107
129
  testing: answers.testing,
108
130
  };
109
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projectSetup.js","sourceRoot":"","sources":["../../src/prompts/projectSetup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectSetup.js","sourceRoot":"","sources":["../../src/prompts/projectSetup.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -5,6 +5,8 @@ export type Architecture = 'ddd' | 'clean' | 'atomic' | 'default';
5
5
  export type Styling = 'tailwind' | 'css-modules';
6
6
  export type StateManagement = 'zustand' | 'context' | 'none';
7
7
  export type FormLibrary = 'react-hook-form' | 'none';
8
+ export type ApiClient = 'axios' | 'fetch' | 'none';
9
+ export type DataFetching = 'react-query' | 'swr' | 'none';
8
10
  export interface ProjectConfig {
9
11
  projectName: string;
10
12
  framework: Framework;
@@ -14,6 +16,8 @@ export interface ProjectConfig {
14
16
  styling: Styling;
15
17
  stateManagement: StateManagement;
16
18
  formLibrary: FormLibrary;
19
+ apiClient: ApiClient;
20
+ dataFetching: DataFetching;
17
21
  testing: boolean;
18
22
  }
19
23
  export interface TemplateData extends ProjectConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC3C,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC;AAC3C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAClE,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC3C,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC;AAC3C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAClE,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,MAAM,CAAC;AACrD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,4 @@
1
+ import { ProjectConfig } from '../types.js';
2
+ export declare function generateApiFiles(config: ProjectConfig, basePath: string): Promise<void>;
3
+ export declare function generateEnvFile(config: ProjectConfig, projectPath: string): Promise<void>;
4
+ //# sourceMappingURL=apiGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/apiGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAoBf;AA8cD,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAkBf"}