@idealyst/cli 1.2.1 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/add.js +2 -2
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/info.js +25 -26
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +2 -2
- package/dist/constants.js +13 -4
- package/dist/constants.js.map +1 -1
- package/dist/generators/core/mobile.js +35 -69
- package/dist/generators/core/mobile.js.map +1 -1
- package/dist/generators/core/shared.js +283 -16
- package/dist/generators/core/shared.js.map +1 -1
- package/dist/generators/core/web.js +30 -76
- package/dist/generators/core/web.js.map +1 -1
- package/dist/generators/extensions/devcontainer.js +90 -25
- package/dist/generators/extensions/devcontainer.js.map +1 -1
- package/dist/generators/index.js +23 -7
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/reactNative.js +111 -35
- package/dist/generators/reactNative.js.map +1 -1
- package/dist/generators/workspace.js +31 -0
- package/dist/generators/workspace.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/types/commands/add.d.ts +1 -1
- package/dist/types/commands/info.d.ts +1 -1
- package/dist/types/commands/init.d.ts +1 -1
- package/dist/types/constants.d.ts +16 -7
- package/dist/types/generators/core/mobile.d.ts +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types.d.ts +32 -1
- package/dist/types/utils/filesystem.d.ts +1 -1
- package/dist/types/utils/logger.d.ts +6 -0
- package/dist/types.js +35 -2
- package/dist/types.js.map +1 -1
- package/dist/utils/filesystem.js +1 -1
- package/dist/utils/logger.js +11 -0
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/shell.js +1 -1
- package/dist/utils/shell.js.map +1 -1
- package/dist/wizard/steps/devcontainerExtension.js +61 -8
- package/dist/wizard/steps/devcontainerExtension.js.map +1 -1
- package/dist/wizard/steps/summary.js +12 -0
- package/dist/wizard/steps/summary.js.map +1 -1
- package/package.json +1 -1
|
@@ -36,19 +36,41 @@ async function generateSharedPackage(projectPath, data) {
|
|
|
36
36
|
async function generateSharedFiles(sharedDir, data) {
|
|
37
37
|
// Create directory structure
|
|
38
38
|
await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'components'));
|
|
39
|
-
await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', '
|
|
39
|
+
await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'screens'));
|
|
40
|
+
await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'navigation'));
|
|
41
|
+
// Create utils directory for tRPC client if enabled
|
|
42
|
+
if (data.hasTrpc) {
|
|
43
|
+
await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'utils'));
|
|
44
|
+
}
|
|
40
45
|
// Create package.json
|
|
41
46
|
await fs_extra_1.default.writeJson(path_1.default.join(sharedDir, 'package.json'), createSharedPackageJson(data), { spaces: 2 });
|
|
42
47
|
// Create tsconfig.json
|
|
43
48
|
await fs_extra_1.default.writeJson(path_1.default.join(sharedDir, 'tsconfig.json'), createSharedTsConfig(), { spaces: 2 });
|
|
44
49
|
// Create src/index.ts
|
|
45
|
-
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'index.ts'), createSharedIndex());
|
|
50
|
+
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'index.ts'), createSharedIndex(data));
|
|
46
51
|
// Create src/theme.ts
|
|
47
52
|
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'theme.ts'), createThemeConfig());
|
|
48
53
|
// Create src/components/HelloWorld.tsx
|
|
49
54
|
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'components', 'HelloWorld.tsx'), createHelloWorldComponent());
|
|
50
55
|
// Create src/components/index.ts
|
|
51
56
|
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'components', 'index.ts'), `export * from './HelloWorld';\n`);
|
|
57
|
+
// Create src/screens/Home.tsx
|
|
58
|
+
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'screens', 'Home.tsx'), createHomeScreen(data));
|
|
59
|
+
// Create src/screens/About.tsx
|
|
60
|
+
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'screens', 'About.tsx'), createAboutScreen());
|
|
61
|
+
// Create src/screens/index.ts
|
|
62
|
+
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'screens', 'index.ts'), `export { default as Home } from './Home';\nexport { default as About } from './About';\n`);
|
|
63
|
+
// Create src/navigation/AppRouter.ts
|
|
64
|
+
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'navigation', 'AppRouter.ts'), createAppRouter(data));
|
|
65
|
+
// Create src/navigation/index.ts
|
|
66
|
+
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'navigation', 'index.ts'), `export { AppRouter } from './AppRouter';\n`);
|
|
67
|
+
// Create src/App.tsx - main app with all providers
|
|
68
|
+
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'App.tsx'), createAppComponent(data));
|
|
69
|
+
// Create tRPC client if enabled
|
|
70
|
+
if (data.hasTrpc) {
|
|
71
|
+
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'utils', 'trpc.ts'), createTrpcClient(data));
|
|
72
|
+
await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'utils', 'index.ts'), `export * from './trpc';\n`);
|
|
73
|
+
}
|
|
52
74
|
}
|
|
53
75
|
/**
|
|
54
76
|
* Create shared package.json
|
|
@@ -107,17 +129,22 @@ function createSharedTsConfig() {
|
|
|
107
129
|
/**
|
|
108
130
|
* Create shared index.ts
|
|
109
131
|
*/
|
|
110
|
-
function createSharedIndex() {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
export * from '
|
|
119
|
-
export * from '
|
|
120
|
-
|
|
132
|
+
function createSharedIndex(data) {
|
|
133
|
+
const exports = [
|
|
134
|
+
`/**`,
|
|
135
|
+
` * Shared package exports`,
|
|
136
|
+
` */`,
|
|
137
|
+
``,
|
|
138
|
+
`export { default as App } from './App';`,
|
|
139
|
+
`export * from './components';`,
|
|
140
|
+
`export * from './screens';`,
|
|
141
|
+
`export * from './navigation';`,
|
|
142
|
+
];
|
|
143
|
+
if (data.hasTrpc) {
|
|
144
|
+
exports.push(`export * from './utils';`);
|
|
145
|
+
}
|
|
146
|
+
exports.push(``, `// Re-export Idealyst components for convenience`, `export * from '@idealyst/components';`, `export * from '@idealyst/theme';`);
|
|
147
|
+
return exports.join('\n') + '\n';
|
|
121
148
|
}
|
|
122
149
|
/**
|
|
123
150
|
* Create theme configuration
|
|
@@ -130,12 +157,15 @@ function createThemeConfig() {
|
|
|
130
157
|
import { StyleSheet } from 'react-native-unistyles';
|
|
131
158
|
import { fromTheme, lightTheme, darkTheme } from '@idealyst/theme';
|
|
132
159
|
|
|
160
|
+
// Build themes as separate variables for babel plugin compatibility
|
|
161
|
+
const light = fromTheme(lightTheme).build();
|
|
162
|
+
const dark = fromTheme(darkTheme).build();
|
|
163
|
+
|
|
133
164
|
// Configure unistyles with the Idealyst themes
|
|
134
|
-
// fromTheme().build() is required for babel transpilation
|
|
135
165
|
StyleSheet.configure({
|
|
136
166
|
themes: {
|
|
137
|
-
light
|
|
138
|
-
dark
|
|
167
|
+
light,
|
|
168
|
+
dark,
|
|
139
169
|
},
|
|
140
170
|
settings: {
|
|
141
171
|
initialTheme: 'light',
|
|
@@ -204,4 +234,241 @@ export function HelloWorld({ name = 'World', onPress }: HelloWorldProps) {
|
|
|
204
234
|
}
|
|
205
235
|
`;
|
|
206
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Create Home screen
|
|
239
|
+
*/
|
|
240
|
+
function createHomeScreen(data) {
|
|
241
|
+
return `/**
|
|
242
|
+
* Home screen - shared between web and mobile
|
|
243
|
+
*/
|
|
244
|
+
|
|
245
|
+
import React from 'react';
|
|
246
|
+
import { useNavigator } from '@idealyst/navigation';
|
|
247
|
+
import { HelloWorld } from '../components';
|
|
248
|
+
|
|
249
|
+
export default function Home() {
|
|
250
|
+
const { navigate } = useNavigator();
|
|
251
|
+
|
|
252
|
+
return (
|
|
253
|
+
<HelloWorld
|
|
254
|
+
name="${data.appDisplayName}"
|
|
255
|
+
onPress={() => navigate('/about')}
|
|
256
|
+
/>
|
|
257
|
+
);
|
|
258
|
+
}
|
|
259
|
+
`;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Create AppRouter - shared navigation configuration
|
|
263
|
+
*/
|
|
264
|
+
function createAppRouter(data) {
|
|
265
|
+
return `/**
|
|
266
|
+
* Application navigation router
|
|
267
|
+
* Shared between web and mobile platforms
|
|
268
|
+
*/
|
|
269
|
+
|
|
270
|
+
import { NavigatorParam } from '@idealyst/navigation';
|
|
271
|
+
import Home from '../screens/Home';
|
|
272
|
+
import About from '../screens/About';
|
|
273
|
+
|
|
274
|
+
export const AppRouter: NavigatorParam = {
|
|
275
|
+
path: '/',
|
|
276
|
+
type: 'navigator',
|
|
277
|
+
layout: 'stack',
|
|
278
|
+
options: {
|
|
279
|
+
headerShown: false,
|
|
280
|
+
},
|
|
281
|
+
routes: [
|
|
282
|
+
{
|
|
283
|
+
path: '/',
|
|
284
|
+
type: 'screen',
|
|
285
|
+
component: Home,
|
|
286
|
+
options: { title: '${data.appDisplayName}' },
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
path: '/about',
|
|
290
|
+
type: 'screen',
|
|
291
|
+
component: About,
|
|
292
|
+
options: { title: 'About Idealyst' },
|
|
293
|
+
},
|
|
294
|
+
],
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
export default AppRouter;
|
|
298
|
+
`;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Create About screen
|
|
302
|
+
*/
|
|
303
|
+
function createAboutScreen() {
|
|
304
|
+
return `/**
|
|
305
|
+
* About screen - explains what Idealyst is
|
|
306
|
+
*/
|
|
307
|
+
|
|
308
|
+
import React from 'react';
|
|
309
|
+
import { View, Text, Button } from '@idealyst/components';
|
|
310
|
+
import { useNavigator } from '@idealyst/navigation';
|
|
311
|
+
import { useUnistyles } from 'react-native-unistyles';
|
|
312
|
+
|
|
313
|
+
export default function About() {
|
|
314
|
+
const { theme } = useUnistyles();
|
|
315
|
+
const { goBack } = useNavigator();
|
|
316
|
+
|
|
317
|
+
return (
|
|
318
|
+
<View
|
|
319
|
+
style={{
|
|
320
|
+
flex: 1,
|
|
321
|
+
padding: 24,
|
|
322
|
+
backgroundColor: theme.colors.surface.primary,
|
|
323
|
+
}}
|
|
324
|
+
>
|
|
325
|
+
<Text
|
|
326
|
+
style={{
|
|
327
|
+
fontSize: 28,
|
|
328
|
+
fontWeight: 'bold',
|
|
329
|
+
color: theme.colors.text.primary,
|
|
330
|
+
marginBottom: 16,
|
|
331
|
+
}}
|
|
332
|
+
>
|
|
333
|
+
What is Idealyst?
|
|
334
|
+
</Text>
|
|
335
|
+
|
|
336
|
+
<Text
|
|
337
|
+
style={{
|
|
338
|
+
fontSize: 16,
|
|
339
|
+
color: theme.colors.text.secondary,
|
|
340
|
+
marginBottom: 16,
|
|
341
|
+
lineHeight: 24,
|
|
342
|
+
}}
|
|
343
|
+
>
|
|
344
|
+
Idealyst is a cross-platform framework for building React applications that run on both web and mobile from a single codebase.
|
|
345
|
+
</Text>
|
|
346
|
+
|
|
347
|
+
<Text
|
|
348
|
+
style={{
|
|
349
|
+
fontSize: 16,
|
|
350
|
+
color: theme.colors.text.secondary,
|
|
351
|
+
marginBottom: 16,
|
|
352
|
+
lineHeight: 24,
|
|
353
|
+
}}
|
|
354
|
+
>
|
|
355
|
+
Key features:
|
|
356
|
+
</Text>
|
|
357
|
+
|
|
358
|
+
<View style={{ marginLeft: 16, marginBottom: 16 }}>
|
|
359
|
+
<Text style={{ fontSize: 16, color: theme.colors.text.secondary, marginBottom: 8 }}>
|
|
360
|
+
• Unified component library for web and mobile
|
|
361
|
+
</Text>
|
|
362
|
+
<Text style={{ fontSize: 16, color: theme.colors.text.secondary, marginBottom: 8 }}>
|
|
363
|
+
• Shared navigation system across platforms
|
|
364
|
+
</Text>
|
|
365
|
+
<Text style={{ fontSize: 16, color: theme.colors.text.secondary, marginBottom: 8 }}>
|
|
366
|
+
• Theme system with light/dark mode support
|
|
367
|
+
</Text>
|
|
368
|
+
<Text style={{ fontSize: 16, color: theme.colors.text.secondary, marginBottom: 8 }}>
|
|
369
|
+
• Type-safe API integration with tRPC
|
|
370
|
+
</Text>
|
|
371
|
+
<Text style={{ fontSize: 16, color: theme.colors.text.secondary, marginBottom: 8 }}>
|
|
372
|
+
• Monorepo structure for code sharing
|
|
373
|
+
</Text>
|
|
374
|
+
</View>
|
|
375
|
+
|
|
376
|
+
<Text
|
|
377
|
+
style={{
|
|
378
|
+
fontSize: 16,
|
|
379
|
+
color: theme.colors.text.secondary,
|
|
380
|
+
marginBottom: 24,
|
|
381
|
+
lineHeight: 24,
|
|
382
|
+
}}
|
|
383
|
+
>
|
|
384
|
+
Write once, run everywhere - with native performance and consistent design.
|
|
385
|
+
</Text>
|
|
386
|
+
|
|
387
|
+
<Button onPress={goBack} intent="secondary">
|
|
388
|
+
Go Back
|
|
389
|
+
</Button>
|
|
390
|
+
</View>
|
|
391
|
+
);
|
|
392
|
+
}
|
|
393
|
+
`;
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Create App component with all providers
|
|
397
|
+
*/
|
|
398
|
+
function createAppComponent(data) {
|
|
399
|
+
if (data.hasTrpc) {
|
|
400
|
+
return `/**
|
|
401
|
+
* Main App component with all providers
|
|
402
|
+
* Platform packages wrap this with their specific router (e.g., BrowserRouter for web)
|
|
403
|
+
*/
|
|
404
|
+
|
|
405
|
+
import React, { useMemo } from 'react';
|
|
406
|
+
import { NavigatorProvider } from '@idealyst/navigation';
|
|
407
|
+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
408
|
+
import { AppRouter } from './navigation';
|
|
409
|
+
import { trpc, createTrpcClient } from './utils/trpc';
|
|
410
|
+
|
|
411
|
+
export interface AppProps {
|
|
412
|
+
/** Base URL for the API server (e.g., 'http://localhost:3001') */
|
|
413
|
+
apiBaseUrl: string;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
export default function App({ apiBaseUrl }: AppProps) {
|
|
417
|
+
const queryClient = useMemo(() => new QueryClient(), []);
|
|
418
|
+
const trpcClient = useMemo(() => createTrpcClient(apiBaseUrl), [apiBaseUrl]);
|
|
419
|
+
|
|
420
|
+
return (
|
|
421
|
+
<trpc.Provider client={trpcClient} queryClient={queryClient}>
|
|
422
|
+
<QueryClientProvider client={queryClient}>
|
|
423
|
+
<NavigatorProvider route={AppRouter} />
|
|
424
|
+
</QueryClientProvider>
|
|
425
|
+
</trpc.Provider>
|
|
426
|
+
);
|
|
427
|
+
}
|
|
428
|
+
`;
|
|
429
|
+
}
|
|
430
|
+
return `/**
|
|
431
|
+
* Main App component with all providers
|
|
432
|
+
* Platform packages wrap this with their specific router (e.g., BrowserRouter for web)
|
|
433
|
+
*/
|
|
434
|
+
|
|
435
|
+
import React from 'react';
|
|
436
|
+
import { NavigatorProvider } from '@idealyst/navigation';
|
|
437
|
+
import { AppRouter } from './navigation';
|
|
438
|
+
|
|
439
|
+
export default function App() {
|
|
440
|
+
return <NavigatorProvider route={AppRouter} />;
|
|
441
|
+
}
|
|
442
|
+
`;
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Create tRPC client for shared package
|
|
446
|
+
*/
|
|
447
|
+
function createTrpcClient(data) {
|
|
448
|
+
return `/**
|
|
449
|
+
* tRPC client configuration
|
|
450
|
+
* Shared between web and mobile platforms
|
|
451
|
+
*/
|
|
452
|
+
|
|
453
|
+
import { createTRPCReact } from '@trpc/react-query';
|
|
454
|
+
import { httpBatchLink } from '@trpc/client';
|
|
455
|
+
import type { AppRouter } from '@${data.workspaceScope}/api';
|
|
456
|
+
|
|
457
|
+
export const trpc = createTRPCReact<AppRouter>();
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* Create a tRPC client with the specified base URL
|
|
461
|
+
* @param baseUrl - The API server base URL (e.g., 'http://localhost:3001')
|
|
462
|
+
*/
|
|
463
|
+
export function createTrpcClient(baseUrl: string) {
|
|
464
|
+
return trpc.createClient({
|
|
465
|
+
links: [
|
|
466
|
+
httpBatchLink({
|
|
467
|
+
url: \`\${baseUrl}/trpc\`,
|
|
468
|
+
}),
|
|
469
|
+
],
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
`;
|
|
473
|
+
}
|
|
207
474
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/generators/core/shared.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAYH,sDAqBC;AA/BD,wDAA0B;AAC1B,gDAAwB;AAExB,mDAAoG;AACpG,+CAAiE;AACjE,+CAA4C;AAE5C;;GAEG;AACI,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,IAAkB;IAElB,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE/D,eAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAE1C,MAAM,kBAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9B,0DAA0D;IAC1D,MAAM,YAAY,GAAG,IAAA,wBAAe,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEvD,IAAI,MAAM,IAAA,2BAAkB,EAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAA,8BAAqB,EAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,4BAA4B;QAC5B,MAAM,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,SAAiB,EACjB,IAAkB;IAElB,6BAA6B;IAC7B,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9D,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/generators/core/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,8 +35,7 @@ async function generateWebPackage(projectPath, data) {
|
|
|
35
35
|
*/
|
|
36
36
|
async function generateWebFiles(webDir, data) {
|
|
37
37
|
// Create directory structure
|
|
38
|
-
await fs_extra_1.default.ensureDir(path_1.default.join(webDir, 'src'
|
|
39
|
-
await fs_extra_1.default.ensureDir(path_1.default.join(webDir, 'src', 'navigation'));
|
|
38
|
+
await fs_extra_1.default.ensureDir(path_1.default.join(webDir, 'src'));
|
|
40
39
|
await fs_extra_1.default.ensureDir(path_1.default.join(webDir, 'public'));
|
|
41
40
|
// Create package.json
|
|
42
41
|
await fs_extra_1.default.writeJson(path_1.default.join(webDir, 'package.json'), createWebPackageJson(data), { spaces: 2 });
|
|
@@ -52,10 +51,6 @@ async function generateWebFiles(webDir, data) {
|
|
|
52
51
|
await fs_extra_1.default.writeFile(path_1.default.join(webDir, 'src', 'main.tsx'), createMainTsx(data));
|
|
53
52
|
// Create src/App.tsx
|
|
54
53
|
await fs_extra_1.default.writeFile(path_1.default.join(webDir, 'src', 'App.tsx'), createAppTsx(data));
|
|
55
|
-
// Create src/pages/Home.tsx
|
|
56
|
-
await fs_extra_1.default.writeFile(path_1.default.join(webDir, 'src', 'pages', 'Home.tsx'), createHomePage(data));
|
|
57
|
-
// Create src/navigation/AppRouter.tsx
|
|
58
|
-
await fs_extra_1.default.writeFile(path_1.default.join(webDir, 'src', 'navigation', 'AppRouter.tsx'), createAppRouter(data));
|
|
59
54
|
}
|
|
60
55
|
/**
|
|
61
56
|
* Create web package.json
|
|
@@ -86,6 +81,7 @@ function createWebPackageJson(data) {
|
|
|
86
81
|
},
|
|
87
82
|
dependencies,
|
|
88
83
|
devDependencies: {
|
|
84
|
+
...constants_1.DEPENDENCIES.tooling,
|
|
89
85
|
'@babel/core': '^7.24.0',
|
|
90
86
|
'@babel/preset-react': '^7.24.0',
|
|
91
87
|
'@babel/preset-typescript': '^7.24.0',
|
|
@@ -287,91 +283,49 @@ ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
|
287
283
|
}
|
|
288
284
|
/**
|
|
289
285
|
* Create App.tsx
|
|
286
|
+
* Web just wraps the shared App with BrowserRouter for web routing
|
|
290
287
|
*/
|
|
291
288
|
function createAppTsx(data) {
|
|
292
|
-
const imports = [
|
|
293
|
-
`import React from 'react';`,
|
|
294
|
-
`import { BrowserRouter } from 'react-router-dom';`,
|
|
295
|
-
`import { NavigatorProvider } from '@idealyst/navigation';`,
|
|
296
|
-
`import { AppRouter } from './navigation/AppRouter';`,
|
|
297
|
-
];
|
|
298
289
|
if (data.hasTrpc) {
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
290
|
+
return `/**
|
|
291
|
+
* Web App entry point
|
|
292
|
+
* Wraps the shared App with BrowserRouter for web routing
|
|
293
|
+
*/
|
|
294
|
+
|
|
295
|
+
import React from 'react';
|
|
296
|
+
import { BrowserRouter } from 'react-router-dom';
|
|
297
|
+
import { App } from '@${data.workspaceScope}/shared';
|
|
298
|
+
|
|
299
|
+
// API base URL for web - uses same origin in production, localhost in development
|
|
300
|
+
const API_BASE_URL = window.location.hostname === 'localhost'
|
|
301
|
+
? 'http://localhost:3001'
|
|
302
|
+
: window.location.origin;
|
|
303
|
+
|
|
304
|
+
export default function WebApp() {
|
|
304
305
|
return (
|
|
305
306
|
<BrowserRouter>
|
|
306
|
-
<
|
|
307
|
+
<App apiBaseUrl={API_BASE_URL} />
|
|
307
308
|
</BrowserRouter>
|
|
308
309
|
);
|
|
309
310
|
}
|
|
310
|
-
`;
|
|
311
|
-
if (data.hasTrpc) {
|
|
312
|
-
appContent = `
|
|
313
|
-
const queryClient = new QueryClient();
|
|
314
|
-
|
|
315
|
-
export default function App() {
|
|
316
|
-
return (
|
|
317
|
-
<trpc.Provider client={trpcClient} queryClient={queryClient}>
|
|
318
|
-
<QueryClientProvider client={queryClient}>
|
|
319
|
-
<BrowserRouter>
|
|
320
|
-
<NavigatorProvider route={AppRouter} />
|
|
321
|
-
</BrowserRouter>
|
|
322
|
-
</QueryClientProvider>
|
|
323
|
-
</trpc.Provider>
|
|
324
|
-
);
|
|
325
|
-
}
|
|
326
311
|
`;
|
|
327
312
|
}
|
|
328
|
-
return
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
* Create Home page
|
|
313
|
+
return `/**
|
|
314
|
+
* Web App entry point
|
|
315
|
+
* Wraps the shared App with BrowserRouter for web routing
|
|
332
316
|
*/
|
|
333
|
-
function createHomePage(data) {
|
|
334
|
-
return `import React from 'react';
|
|
335
|
-
import { HelloWorld } from '@${data.workspaceScope}/shared';
|
|
336
317
|
|
|
337
|
-
|
|
318
|
+
import React from 'react';
|
|
319
|
+
import { BrowserRouter } from 'react-router-dom';
|
|
320
|
+
import { App } from '@${data.workspaceScope}/shared';
|
|
321
|
+
|
|
322
|
+
export default function WebApp() {
|
|
338
323
|
return (
|
|
339
|
-
<
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
/>
|
|
324
|
+
<BrowserRouter>
|
|
325
|
+
<App />
|
|
326
|
+
</BrowserRouter>
|
|
343
327
|
);
|
|
344
328
|
}
|
|
345
329
|
`;
|
|
346
330
|
}
|
|
347
|
-
/**
|
|
348
|
-
* Create AppRouter
|
|
349
|
-
*/
|
|
350
|
-
function createAppRouter(data) {
|
|
351
|
-
return `import { NavigatorParam } from '@idealyst/navigation';
|
|
352
|
-
import Home from '../pages/Home';
|
|
353
|
-
|
|
354
|
-
/**
|
|
355
|
-
* Application navigation router
|
|
356
|
-
*/
|
|
357
|
-
export const AppRouter: NavigatorParam = {
|
|
358
|
-
path: '/',
|
|
359
|
-
type: 'navigator',
|
|
360
|
-
layout: 'stack',
|
|
361
|
-
options: {
|
|
362
|
-
headerShown: false,
|
|
363
|
-
},
|
|
364
|
-
routes: [
|
|
365
|
-
{
|
|
366
|
-
path: '/',
|
|
367
|
-
type: 'screen',
|
|
368
|
-
component: Home,
|
|
369
|
-
options: { title: 'Home' },
|
|
370
|
-
},
|
|
371
|
-
],
|
|
372
|
-
};
|
|
373
|
-
|
|
374
|
-
export default AppRouter;
|
|
375
|
-
`;
|
|
376
|
-
}
|
|
377
331
|
//# sourceMappingURL=web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/generators/core/web.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAYH,gDAqBC;AA/BD,wDAA0B;AAC1B,gDAAwB;AAExB,mDAAoG;AACpG,+CAAiE;AACjE,+CAA4C;AAE5C;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,IAAkB;IAElB,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEzD,eAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAEvC,MAAM,kBAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE3B,0DAA0D;IAC1D,MAAM,YAAY,GAAG,IAAA,wBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEpD,IAAI,MAAM,IAAA,2BAAkB,EAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAA,8BAAqB,EAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,4BAA4B;QAC5B,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,MAAc,EACd,IAAkB;IAElB,6BAA6B;IAC7B,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/generators/core/web.ts"],"names":[],"mappings":"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"}
|