@common-stack/generate-plugin 6.0.1-alpha.9 → 6.0.2-alpha.10
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/.eslintrc.json +1 -1
- package/CHANGELOG.md +44 -0
- package/README.md +280 -10
- package/cde-config.json +86 -0
- package/executors.json +14 -0
- package/generators.json +15 -0
- package/lib/constants/index.cjs +2 -1
- package/lib/constants/index.cjs.map +1 -1
- package/lib/constants/index.d.ts +1 -0
- package/lib/constants/index.mjs +2 -1
- package/lib/constants/index.mjs.map +1 -1
- package/lib/executors/sort-package-json/executor.cjs +46 -0
- package/lib/executors/sort-package-json/executor.cjs.map +1 -0
- package/lib/executors/sort-package-json/executor.d.ts +4 -0
- package/lib/executors/sort-package-json/executor.mjs +46 -0
- package/lib/executors/sort-package-json/executor.mjs.map +1 -0
- package/lib/executors/sort-package-json/executor.spec.d.ts +1 -0
- package/lib/executors/sort-package-json/schema.json +9 -0
- package/lib/executors/update-deploy-version/executor.cjs +22 -0
- package/lib/executors/update-deploy-version/executor.cjs.map +1 -0
- package/lib/executors/update-deploy-version/executor.d.ts +4 -0
- package/lib/executors/update-deploy-version/executor.mjs +22 -0
- package/lib/executors/update-deploy-version/executor.mjs.map +1 -0
- package/lib/executors/update-deploy-version/executor.spec.d.ts +1 -0
- package/lib/executors/update-deploy-version/schema.json +14 -0
- package/lib/generators/add-backend/files/CHANGELOG.md +0 -0
- package/lib/generators/add-backend/files/Dockerfile +1 -1
- package/lib/generators/add-backend/files/config.json +0 -1
- package/lib/generators/add-backend/files/package.json +1 -53
- package/lib/generators/add-backend/files/src/api/root-schema.graphqls +9 -0
- package/lib/generators/add-backend/files/src/config/env-config.ts.template +2 -24
- package/lib/generators/add-backend/files/src/service.ts.template +4 -5
- package/lib/generators/add-backend/files/tsconfig.json +1 -1
- package/lib/generators/add-backend/files/webpack.config.js +6 -10
- package/lib/generators/add-backend/generator.cjs +21 -17
- package/lib/generators/add-backend/generator.cjs.map +1 -1
- package/lib/generators/add-backend/generator.d.ts +1 -0
- package/lib/generators/add-backend/generator.mjs +21 -17
- package/lib/generators/add-backend/generator.mjs.map +1 -1
- package/lib/generators/add-browser-package/files/package.json +2 -2
- package/lib/generators/add-browser-package/generator.cjs +14 -16
- package/lib/generators/add-browser-package/generator.cjs.map +1 -1
- package/lib/generators/add-browser-package/generator.d.ts +1 -0
- package/lib/generators/add-browser-package/generator.mjs +14 -16
- package/lib/generators/add-browser-package/generator.mjs.map +1 -1
- package/lib/generators/add-client-package/files/CHANGELOG.md +807 -0
- package/lib/generators/add-client-package/files/LICENSE +674 -0
- package/lib/generators/add-client-package/files/jest.config.js +13 -0
- package/lib/generators/add-client-package/files/package.json +30 -0
- package/lib/generators/add-client-package/files/rollup.config.mjs +29 -0
- package/lib/generators/add-client-package/files/src/components/index.tsx.template +1 -0
- package/lib/generators/add-client-package/files/src/index.ts.template +1 -0
- package/lib/generators/add-client-package/files/tsconfig.json +27 -0
- package/lib/generators/add-client-package/files/webpack.config.js +72 -0
- package/lib/generators/add-client-package/generator.cjs +17 -0
- package/lib/generators/add-client-package/generator.cjs.map +1 -0
- package/lib/generators/add-client-package/generator.d.ts +5 -0
- package/lib/generators/add-client-package/generator.mjs +17 -0
- package/lib/generators/add-client-package/generator.mjs.map +1 -0
- package/lib/generators/add-client-package/generator.spec.d.ts +1 -0
- package/lib/generators/add-client-package/schema.json +19 -0
- package/lib/generators/add-core-package/files/CHANGELOG.md +1076 -0
- package/lib/generators/add-core-package/files/LICENSE +39 -0
- package/lib/generators/add-core-package/files/jest.config.js +3 -0
- package/lib/generators/add-core-package/files/package.json +30 -0
- package/lib/generators/add-core-package/files/rollup.config.mjs +65 -0
- package/lib/generators/add-core-package/files/src/constants/index.ts.template +1 -0
- package/lib/generators/add-core-package/files/src/constants/types.ts.template +3 -0
- package/lib/generators/add-core-package/files/src/index.ts.template +2 -0
- package/lib/generators/add-core-package/files/src/types/index.ts.template +1 -0
- package/lib/generators/add-core-package/files/src/types/types.ts.template +17 -0
- package/lib/generators/add-core-package/files/tsconfig.json +22 -0
- package/lib/generators/add-core-package/files/webpack.config.js +53 -0
- package/lib/generators/add-core-package/generator.cjs +17 -0
- package/lib/generators/add-core-package/generator.cjs.map +1 -0
- package/lib/generators/add-core-package/generator.d.ts +5 -0
- package/lib/generators/add-core-package/generator.mjs +17 -0
- package/lib/generators/add-core-package/generator.mjs.map +1 -0
- package/lib/generators/add-core-package/generator.spec.d.ts +1 -0
- package/lib/generators/add-core-package/schema.json +19 -0
- package/lib/generators/add-frontend/frameworks/chakraui/entry.client.tsx.template +30 -24
- package/lib/generators/add-frontend/frameworks/chakraui/entry.server.tsx.template +5 -8
- package/lib/generators/add-frontend/frameworks/chakraui/root.tsx.template +3 -3
- package/lib/generators/add-frontend/frameworks/tailwindui/entry.client.tsx.template +90 -0
- package/lib/generators/add-frontend/frameworks/tailwindui/entry.server.tsx.template +238 -0
- package/lib/generators/add-frontend/frameworks/tailwindui/root.tsx.template +117 -0
- package/lib/generators/add-frontend/frameworks/tailwindui/tailwind.css +3 -0
- package/lib/generators/add-frontend/generator.cjs +60 -42
- package/lib/generators/add-frontend/generator.cjs.map +1 -1
- package/lib/generators/add-frontend/generator.d.ts +1 -0
- package/lib/generators/add-frontend/generator.mjs +60 -42
- package/lib/generators/add-frontend/generator.mjs.map +1 -1
- package/lib/generators/add-frontend/schema.json +1 -1
- package/lib/generators/add-frontend/templates/Dockerfile +1 -1
- package/lib/generators/add-frontend/templates/package.json +4 -80
- package/lib/generators/add-frontend/templates/postcss.config.js +6 -0
- package/lib/generators/add-frontend/templates/src/config/public-config.ts.template +6 -0
- package/lib/generators/add-frontend/templates/tailwind.config.ts.template +12 -0
- package/lib/generators/add-fullstack/files/Jenkinsfile +4 -7
- package/lib/generators/add-fullstack/files/jest-mongodb-config.js +3 -2
- package/lib/generators/add-fullstack/files/jest.config.base.js +43 -4
- package/lib/generators/add-fullstack/files/jest.config.base.mjs +99 -0
- package/lib/generators/add-fullstack/files/jest.config.mongodb.mjs +3 -0
- package/lib/generators/add-fullstack/files/lint-staged.config.js +4 -1
- package/lib/generators/add-fullstack/files/nx.json +18 -13
- package/lib/generators/add-fullstack/files/package.json +12 -24
- package/lib/generators/add-fullstack/files/tools/cli/helpers/util.js +1 -1
- package/lib/generators/add-fullstack/files/tools/deploy-cli/updateLernaVersion.js +1 -1
- package/lib/generators/add-fullstack/files/tools/deploy-cli/updateYamlSettings.js +14 -15
- package/lib/generators/add-fullstack/files/tools/prettier.config.js +8 -0
- package/lib/generators/add-fullstack/files/tools/rollup/rollupPluginGenerateJson.mjs +48 -0
- package/lib/generators/add-fullstack/files/tools/rollup/rollupPluginModifyLibFiles.mjs +410 -0
- package/lib/generators/add-fullstack/files/tools/runLint.mjs +15 -0
- package/lib/generators/add-fullstack/files/tools/sortPackageJson.mjs +8 -2
- package/lib/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -0
- package/lib/generators/add-fullstack/files/tools/update-dependency-link.mjs +138 -0
- package/lib/generators/add-fullstack/files/tools/update-dependency-version.js +104 -89
- package/lib/generators/add-fullstack/files/tools/updateUtils.mjs +77 -0
- package/lib/generators/add-fullstack/generator.cjs +71 -13
- package/lib/generators/add-fullstack/generator.cjs.map +1 -1
- package/lib/generators/add-fullstack/generator.mjs +71 -13
- package/lib/generators/add-fullstack/generator.mjs.map +1 -1
- package/lib/generators/add-fullstack/schema.json +9 -0
- package/lib/generators/add-fullstack/updates/index.d.ts +2 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs +36 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.d.ts +1 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs +36 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs +8 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.d.ts +2 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs +8 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs.map +1 -0
- package/lib/generators/add-moleculer/files/Dockerfile +1 -1
- package/lib/generators/add-moleculer/files/package.json +6 -25
- package/lib/generators/add-moleculer/generator.cjs +14 -16
- package/lib/generators/add-moleculer/generator.cjs.map +1 -1
- package/lib/generators/add-moleculer/generator.d.ts +1 -0
- package/lib/generators/add-moleculer/generator.mjs +14 -16
- package/lib/generators/add-moleculer/generator.mjs.map +1 -1
- package/lib/generators/add-server-package/files/CHANGELOG.md +2599 -0
- package/lib/generators/add-server-package/files/LICENSE +674 -0
- package/lib/generators/add-server-package/files/jest.config.js +32 -0
- package/lib/generators/add-server-package/files/package.json +78 -0
- package/lib/generators/add-server-package/files/rollup.config.mjs +30 -0
- package/lib/generators/add-server-package/files/src/constants/constants.ts.template +62 -0
- package/lib/generators/add-server-package/files/src/constants/index.ts.template +1 -0
- package/lib/generators/add-server-package/files/src/constants/types.ts.template +21 -0
- package/lib/generators/add-server-package/files/src/index.ts.template +6 -0
- package/lib/generators/add-server-package/files/src/module.ts.template +6 -0
- package/lib/generators/add-server-package/files/tsconfig.json +27 -0
- package/lib/generators/add-server-package/generator.cjs +17 -0
- package/lib/generators/add-server-package/generator.cjs.map +1 -0
- package/lib/generators/add-server-package/generator.d.ts +5 -0
- package/lib/generators/add-server-package/generator.mjs +17 -0
- package/lib/generators/add-server-package/generator.mjs.map +1 -0
- package/lib/generators/add-server-package/generator.spec.d.ts +1 -0
- package/lib/generators/add-server-package/schema.json +19 -0
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +5 -0
- package/lib/index.mjs +1 -1
- package/package.json +4 -2
- package/project.json +12 -1
- package/rollup.config.mjs +8 -0
- package/src/constants/index.ts +2 -1
- package/src/executors/sort-package-json/executor.spec.ts +18 -0
- package/src/executors/sort-package-json/executor.ts +53 -0
- package/src/executors/sort-package-json/schema.d.ts +1 -0
- package/src/executors/sort-package-json/schema.json +9 -0
- package/src/executors/update-deploy-version/executor.spec.ts +18 -0
- package/src/executors/update-deploy-version/executor.ts +36 -0
- package/src/executors/update-deploy-version/schema.d.ts +3 -0
- package/src/executors/update-deploy-version/schema.json +14 -0
- package/src/generators/add-backend/generator.ts +8 -4
- package/src/generators/add-browser-package/generator.ts +7 -6
- package/src/generators/add-client-package/generator.spec.ts +20 -0
- package/src/generators/add-client-package/generator.ts +24 -0
- package/src/generators/add-client-package/schema.d.ts +4 -0
- package/src/generators/add-client-package/schema.json +19 -0
- package/src/generators/add-core-package/generator.spec.ts +20 -0
- package/src/generators/add-core-package/generator.ts +24 -0
- package/src/generators/add-core-package/schema.d.ts +4 -0
- package/src/generators/add-core-package/schema.json +19 -0
- package/src/generators/add-frontend/frameworks/chakraui/entry.client.tsx.template +30 -24
- package/src/generators/add-frontend/frameworks/chakraui/entry.server.tsx.template +5 -8
- package/src/generators/add-frontend/frameworks/chakraui/root.tsx.template +3 -3
- package/src/generators/add-frontend/frameworks/tailwindui/entry.client.tsx.template +90 -0
- package/src/generators/add-frontend/frameworks/tailwindui/entry.server.tsx.template +238 -0
- package/src/generators/add-frontend/frameworks/tailwindui/root.tsx.template +117 -0
- package/src/generators/add-frontend/frameworks/tailwindui/tailwind.css +3 -0
- package/src/generators/add-frontend/generator.ts +24 -2
- package/src/generators/add-frontend/schema.json +1 -1
- package/src/generators/add-fullstack/files/Jenkinsfile +4 -7
- package/src/generators/add-fullstack/files/jest-mongodb-config.js +3 -2
- package/src/generators/add-fullstack/files/jest.config.base.js +43 -4
- package/src/generators/add-fullstack/files/jest.config.base.mjs +99 -0
- package/src/generators/add-fullstack/files/jest.config.mongodb.mjs +3 -0
- package/src/generators/add-fullstack/files/lint-staged.config.js +4 -1
- package/src/generators/add-fullstack/files/nx.json +18 -13
- package/src/generators/add-fullstack/files/package.json +12 -24
- package/src/generators/add-fullstack/files/tools/cli/helpers/util.js +1 -1
- package/src/generators/add-fullstack/files/tools/deploy-cli/updateLernaVersion.js +1 -1
- package/src/generators/add-fullstack/files/tools/deploy-cli/updateYamlSettings.js +14 -15
- package/src/generators/add-fullstack/files/tools/prettier.config.js +8 -0
- package/src/generators/add-fullstack/files/tools/rollup/rollupPluginGenerateJson.mjs +48 -0
- package/src/generators/add-fullstack/files/tools/rollup/rollupPluginModifyLibFiles.mjs +410 -0
- package/src/generators/add-fullstack/files/tools/runLint.mjs +15 -0
- package/src/generators/add-fullstack/files/tools/sortPackageJson.mjs +8 -2
- package/src/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -0
- package/src/generators/add-fullstack/files/tools/update-dependency-link.mjs +138 -0
- package/src/generators/add-fullstack/files/tools/update-dependency-version.js +104 -89
- package/src/generators/add-fullstack/files/tools/updateUtils.mjs +77 -0
- package/src/generators/add-fullstack/generator.ts +101 -13
- package/src/generators/add-fullstack/schema.d.ts +3 -1
- package/src/generators/add-fullstack/schema.json +9 -0
- package/src/generators/add-fullstack/updates/index.ts +2 -0
- package/src/generators/add-fullstack/updates/jenkinsfileUpdate.ts +47 -0
- package/src/generators/add-fullstack/updates/packageJsonUpdate.ts +11 -0
- package/src/generators/add-moleculer/files/Dockerfile +1 -1
- package/src/generators/add-moleculer/files/package.json +6 -25
- package/src/generators/add-moleculer/generator.ts +7 -6
- package/src/generators/add-server-package/generator.spec.ts +20 -0
- package/src/generators/add-server-package/generator.ts +24 -0
- package/src/generators/add-server-package/schema.d.ts +4 -0
- package/src/generators/add-server-package/schema.json +19 -0
- package/src/index.ts +5 -0
- package/lib/generators/add-backend/files/generated-schema.graphql +0 -235
- package/lib/generators/add-backend/files/knexfile.js +0 -63
- package/lib/generators/add-backend/files/src/api/remote-config.ts.template +0 -11
- package/lib/generators/add-backend/files/src/api/resolver.ts.template +0 -15
- package/lib/generators/add-backend/files/src/api/scalar.ts.template +0 -16
- package/lib/generators/add-backend/files/src/api/schema-builder.ts.template +0 -189
- package/lib/generators/add-backend/files/src/api/utils.ts.template +0 -44
- package/lib/generators/add-backend/files/src/config/moleculer.config.ts.template +0 -228
- package/lib/generators/add-backend/files/src/connectors/connection-broker.ts.template +0 -80
- package/lib/generators/add-backend/files/src/connectors/graphql-pubsub-connector.ts.template +0 -43
- package/lib/generators/add-backend/files/src/connectors/mongo-connector.ts.template +0 -78
- package/lib/generators/add-backend/files/src/connectors/nats-connector.ts.template +0 -82
- package/lib/generators/add-backend/files/src/connectors/redis-connector.ts.template +0 -73
- package/lib/generators/add-backend/files/src/express-app.ts.template +0 -67
- package/lib/generators/add-backend/files/src/interfaces/index.ts.template +0 -1
- package/lib/generators/add-backend/files/src/interfaces/module-interface.ts.template +0 -16
- package/lib/generators/add-backend/files/src/main.spec.ts.template +0 -129
- package/lib/generators/add-backend/files/src/middleware/__tests__/cors.test.ts.template +0 -12
- package/lib/generators/add-backend/files/src/middleware/cors.ts.template +0 -31
- package/lib/generators/add-backend/files/src/middleware/error.ts.template +0 -63
- package/lib/generators/add-backend/files/src/middleware/moleculer-inter-namespace.ts.template +0 -60
- package/lib/generators/add-backend/files/src/middleware/persistedQuery.ts.template +0 -40
- package/lib/generators/add-backend/files/src/middleware/sentry.ts.template +0 -9
- package/lib/generators/add-backend/files/src/middleware/services.ts.template +0 -16
- package/lib/generators/add-backend/files/src/middleware/tracer.ts.template +0 -24
- package/lib/generators/add-backend/files/src/modules/auth/schema/auth-schema.graphql +0 -25
- package/lib/generators/add-backend/files/src/server-setup/graphql-server.ts.template +0 -185
- package/lib/generators/add-backend/files/src/server-setup/graphql-subscription-server.ts.template +0 -113
- package/lib/generators/add-backend/files/src/server-setup/graphql-ws.ts.template +0 -158
- package/lib/generators/add-backend/files/src/server-setup/mongodb-migration-update.ts.template +0 -47
- package/lib/generators/add-backend/files/src/server-setup/utils.ts.template +0 -43
- package/lib/generators/add-backend/files/src/server-setup/websocket-multipath-update.ts.template +0 -88
- package/lib/generators/add-backend/files/src/stack-server.ts.template +0 -277
- package/lib/generators/add-backend/files/src/utils/migrations.ts.template +0 -32
- package/lib/generators/add-backend/files/uploads/3986781.ppt +0 -0
- package/lib/generators/add-frontend/templates/public/css/dashboard.css +0 -491
- package/lib/generators/add-fullstack/files/tools/update-dependency-link.js +0 -107
- package/src/generators/add-fullstack/files/tools/update-dependency-link.js +0 -107
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* By default, Remix will handle generating the HTTP Response for you.
|
|
3
|
+
* You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨
|
|
4
|
+
* For more information, see https://remix.run/file-conventions/entry.server
|
|
5
|
+
*/
|
|
6
|
+
import * as React from 'react';
|
|
7
|
+
(global as any).__CLIENT__ = false;
|
|
8
|
+
(global as any).__SERVER__ = true;
|
|
9
|
+
import { PassThrough, Transform } from 'node:stream';
|
|
10
|
+
import type { EntryContext } from '@remix-run/node';
|
|
11
|
+
import { createReadableStreamFromReadable } from '@remix-run/node';
|
|
12
|
+
import { RemixServer } from '@remix-run/react';
|
|
13
|
+
import { isbot } from 'isbot';
|
|
14
|
+
import { ApolloProvider } from '@apollo/client/index.js';
|
|
15
|
+
import { SlotFillProvider } from '@common-stack/components-pro';
|
|
16
|
+
import { InversifyProvider } from '@common-stack/client-react';
|
|
17
|
+
import { renderToPipeableStream } from 'react-dom/server';
|
|
18
|
+
import { Provider as ReduxProvider } from 'react-redux';
|
|
19
|
+
import { LOCATION_CHANGE } from '@common-stack/remix-router-redux';
|
|
20
|
+
import serialize from 'serialize-javascript';
|
|
21
|
+
import { createInstance } from 'i18next';
|
|
22
|
+
import { I18nextProvider, initReactI18next } from 'react-i18next';
|
|
23
|
+
import Backend from 'i18next-fs-backend';
|
|
24
|
+
import { resolve } from 'node:path';
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
import { i18nextInstance as i18next } from '@app/frontend-stack-react/i18n-localization/i18next.server.js';
|
|
27
|
+
import config from '@app/cde-webconfig.json';
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
import type { IAppLoadContext } from '@common-stack/client-core';
|
|
30
|
+
|
|
31
|
+
const ABORT_DELAY = 5_000;
|
|
32
|
+
|
|
33
|
+
class ConstantsTransform extends Transform {
|
|
34
|
+
_fills: string[];
|
|
35
|
+
_apolloState: any;
|
|
36
|
+
_reduxState: any;
|
|
37
|
+
_styleSheet: string;
|
|
38
|
+
|
|
39
|
+
constructor(fills: string[], apolloState: any, reduxState: any, styleSheet: any) {
|
|
40
|
+
super();
|
|
41
|
+
this._fills = fills;
|
|
42
|
+
this._apolloState = apolloState;
|
|
43
|
+
this._reduxState = reduxState;
|
|
44
|
+
this._styleSheet = styleSheet;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
_transform(chunk, encoding, callback) {
|
|
48
|
+
let transformedChunk = chunk.toString();
|
|
49
|
+
|
|
50
|
+
if (transformedChunk.includes('[__APOLLO_STATE__]')) {
|
|
51
|
+
transformedChunk = transformedChunk.replace(
|
|
52
|
+
'[__APOLLO_STATE__]',
|
|
53
|
+
serialize(this._apolloState, { isJSON: true }),
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
if (transformedChunk.includes('[__PRELOADED_STATE__]')) {
|
|
57
|
+
transformedChunk = transformedChunk.replace(
|
|
58
|
+
'[__PRELOADED_STATE__]',
|
|
59
|
+
serialize(this._reduxState, { isJSON: true }),
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
if (transformedChunk.includes('[__SLOT_FILLS__]')) {
|
|
63
|
+
transformedChunk = transformedChunk.replace('[__SLOT_FILLS__]', serialize(this._fills, { isJSON: true }));
|
|
64
|
+
}
|
|
65
|
+
if (transformedChunk.includes('[__STYLESHEET__]')) {
|
|
66
|
+
transformedChunk = transformedChunk.replace('[__STYLESHEET__]', this._styleSheet);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
callback(null, transformedChunk);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export default async function handleRequest(
|
|
74
|
+
request: Request,
|
|
75
|
+
responseStatusCode: number,
|
|
76
|
+
responseHeaders: Headers,
|
|
77
|
+
remixContext: EntryContext,
|
|
78
|
+
// This is ignored so we can keep it in the template for visibility. Feel
|
|
79
|
+
// free to delete this parameter in your app if you're not using it!
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
81
|
+
loadContext: IAppLoadContext,
|
|
82
|
+
) {
|
|
83
|
+
const instance = createInstance();
|
|
84
|
+
const lng = await i18next.getLocale(request);
|
|
85
|
+
const ns = i18next.getRouteNamespaces(remixContext);
|
|
86
|
+
|
|
87
|
+
// First, we create a new instance of i18next so every request will have a
|
|
88
|
+
// completely unique instance and not share any state.
|
|
89
|
+
if (config.i18n.enabled) {
|
|
90
|
+
await instance
|
|
91
|
+
.use(initReactI18next) // Tell our instance to use react-i18next
|
|
92
|
+
.use(Backend) // Setup our backend.init({
|
|
93
|
+
.init({
|
|
94
|
+
fallbackLng: config.i18n.fallbackLng,
|
|
95
|
+
defaultNS: config.i18n.defaultNS,
|
|
96
|
+
react: config.i18n.react,
|
|
97
|
+
supportedLngs: config.i18n.supportedLngs,
|
|
98
|
+
lng, // The locale we detected above
|
|
99
|
+
ns, // The namespaces the routes about to render want to use
|
|
100
|
+
backend: {
|
|
101
|
+
loadPath: resolve(config.i18n.backend.loadServerPath),
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return isbot(request.headers.get('user-agent') || '')
|
|
107
|
+
? handleBotRequest(request, responseStatusCode, responseHeaders, remixContext, loadContext, instance)
|
|
108
|
+
: handleBrowserRequest(request, responseStatusCode, responseHeaders, remixContext, loadContext, instance);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function handleBotRequest(
|
|
112
|
+
request: Request,
|
|
113
|
+
responseStatusCode: number,
|
|
114
|
+
responseHeaders: Headers,
|
|
115
|
+
remixContext: EntryContext,
|
|
116
|
+
loadContext: IAppLoadContext,
|
|
117
|
+
i18nInstance: i18next,
|
|
118
|
+
) {
|
|
119
|
+
return new Promise((resolve, reject) => {
|
|
120
|
+
let shellRendered = false;
|
|
121
|
+
const { pipe, abort } = renderToPipeableStream(
|
|
122
|
+
<I18nextProvider i18n={i18nInstance}>
|
|
123
|
+
<RemixServer context={remixContext} url={request.url} abortDelay={ABORT_DELAY} />
|
|
124
|
+
</I18nextProvider>,
|
|
125
|
+
{
|
|
126
|
+
onAllReady() {
|
|
127
|
+
shellRendered = true;
|
|
128
|
+
const body = new PassThrough();
|
|
129
|
+
const stream = createReadableStreamFromReadable(body);
|
|
130
|
+
|
|
131
|
+
responseHeaders.set('Content-Type', 'text/html');
|
|
132
|
+
|
|
133
|
+
resolve(
|
|
134
|
+
new Response(stream, {
|
|
135
|
+
headers: responseHeaders,
|
|
136
|
+
status: responseStatusCode,
|
|
137
|
+
}),
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
pipe(body);
|
|
141
|
+
},
|
|
142
|
+
onShellError(error: unknown) {
|
|
143
|
+
reject(error);
|
|
144
|
+
},
|
|
145
|
+
onError(error: unknown) {
|
|
146
|
+
responseStatusCode = 500;
|
|
147
|
+
// Log streaming rendering errors from inside the shell. Don't log
|
|
148
|
+
// errors encountered during initial shell rendering since they'll
|
|
149
|
+
// reject and get logged in handleDocumentRequest.
|
|
150
|
+
if (shellRendered) {
|
|
151
|
+
console.error(error);
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
);
|
|
156
|
+
|
|
157
|
+
setTimeout(abort, ABORT_DELAY);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function handleBrowserRequest(
|
|
162
|
+
request: Request,
|
|
163
|
+
responseStatusCode: number,
|
|
164
|
+
responseHeaders: Headers,
|
|
165
|
+
remixContext: EntryContext,
|
|
166
|
+
loadContext: IAppLoadContext,
|
|
167
|
+
i18nInstance: i18next,
|
|
168
|
+
) {
|
|
169
|
+
return new Promise((resolve, reject) => {
|
|
170
|
+
let shellRendered = false;
|
|
171
|
+
const slotFillContext = { fills: {} };
|
|
172
|
+
const { modules: clientModules, container, apolloClient: client, store } = loadContext;
|
|
173
|
+
|
|
174
|
+
const { pathname, search, hash } = new URL(request.url);
|
|
175
|
+
store.dispatch({
|
|
176
|
+
type: LOCATION_CHANGE,
|
|
177
|
+
payload: { location: { pathname, search, hash }, action: 'POP' },
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
const { pipe, abort } = renderToPipeableStream(
|
|
181
|
+
(
|
|
182
|
+
<I18nextProvider i18n={i18nInstance}>
|
|
183
|
+
<ReduxProvider store={store}>
|
|
184
|
+
<SlotFillProvider context={slotFillContext}>
|
|
185
|
+
<InversifyProvider container={container} modules={clientModules as any}>
|
|
186
|
+
<ApolloProvider client={client}>
|
|
187
|
+
<RemixServer
|
|
188
|
+
context={remixContext}
|
|
189
|
+
url={request.url}
|
|
190
|
+
abortDelay={ABORT_DELAY}
|
|
191
|
+
/>
|
|
192
|
+
</ApolloProvider>
|
|
193
|
+
</InversifyProvider>
|
|
194
|
+
</SlotFillProvider>
|
|
195
|
+
</ReduxProvider>
|
|
196
|
+
</I18nextProvider>
|
|
197
|
+
) as any,
|
|
198
|
+
{
|
|
199
|
+
onShellReady() {
|
|
200
|
+
shellRendered = true;
|
|
201
|
+
const body = new PassThrough();
|
|
202
|
+
const stream = createReadableStreamFromReadable(body);
|
|
203
|
+
const apolloState = { ...client.extract() };
|
|
204
|
+
const reduxState = { ...store.getState() };
|
|
205
|
+
const fills = Object.keys(slotFillContext.fills);
|
|
206
|
+
|
|
207
|
+
const transform = new ConstantsTransform(fills, apolloState, reduxState, []);
|
|
208
|
+
|
|
209
|
+
responseHeaders.set('Content-Type', 'text/html');
|
|
210
|
+
|
|
211
|
+
resolve(
|
|
212
|
+
new Response(stream, {
|
|
213
|
+
headers: responseHeaders,
|
|
214
|
+
status: responseStatusCode,
|
|
215
|
+
}),
|
|
216
|
+
);
|
|
217
|
+
|
|
218
|
+
pipe(transform).pipe(body);
|
|
219
|
+
},
|
|
220
|
+
onShellError(error: unknown) {
|
|
221
|
+
reject(error);
|
|
222
|
+
},
|
|
223
|
+
onError(error: unknown) {
|
|
224
|
+
responseStatusCode = 500;
|
|
225
|
+
// Log streaming rendering errors from inside the shell. Don't log
|
|
226
|
+
// errors encountered during initial shell rendering since they'll
|
|
227
|
+
// reject and get logged in handleDocumentRequest.
|
|
228
|
+
if (shellRendered) {
|
|
229
|
+
console.error(error);
|
|
230
|
+
}
|
|
231
|
+
reject(error);
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
);
|
|
235
|
+
|
|
236
|
+
setTimeout(abort, ABORT_DELAY);
|
|
237
|
+
});
|
|
238
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Links, Meta, Outlet, Scripts, ScrollRestoration, useLoaderData, useRouteError, json } from '@remix-run/react';
|
|
4
|
+
import type { LinksFunction } from "@remix-run/node";
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
import publicEnv from '@src/config/public-config';
|
|
7
|
+
import { PluginArea } from '@common-stack/client-react';
|
|
8
|
+
import { subscribeReduxRouter } from '@common-stack/remix-router-redux';
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
import clientModules, { plugins } from '@app/frontend-stack-react/modules.js';
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
import { useChangeLanguage } from 'remix-i18next/react';
|
|
13
|
+
import { useTranslation } from 'react-i18next';
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
import { i18nextInstance as i18next } from '@app/frontend-stack-react/i18n-localization/i18next.server.js';
|
|
16
|
+
import stylesheet from "./tailwind.css?url";
|
|
17
|
+
|
|
18
|
+
export const links: LinksFunction = () => [
|
|
19
|
+
{ rel: "stylesheet", href: stylesheet },
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
export const loader = async ({ request }) => {
|
|
23
|
+
const locale = await i18next.getLocale(request);
|
|
24
|
+
return json({
|
|
25
|
+
__ENV__: publicEnv,
|
|
26
|
+
locale,
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const handle = {
|
|
31
|
+
i18n: 'common',
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export function shouldRevalidate(params: any) {
|
|
35
|
+
return params.defaultShouldRevalidate && params.currentUrl.pathname !== params.nextUrl.pathname;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function Layout({ children }: { children: React.ReactNode }) {
|
|
39
|
+
const data = useLoaderData<{ locale: any }>();
|
|
40
|
+
const locale = data?.locale;
|
|
41
|
+
|
|
42
|
+
const { i18n } = useTranslation();
|
|
43
|
+
|
|
44
|
+
useChangeLanguage(locale);
|
|
45
|
+
|
|
46
|
+
React.useEffect(() => {
|
|
47
|
+
subscribeReduxRouter({ store: (window as any).__remixStore, router: window.__remixRouter } as any);
|
|
48
|
+
}, []);
|
|
49
|
+
|
|
50
|
+
const getConstants = () => {
|
|
51
|
+
if (typeof window === 'undefined') {
|
|
52
|
+
return (
|
|
53
|
+
<>
|
|
54
|
+
<script
|
|
55
|
+
dangerouslySetInnerHTML={{
|
|
56
|
+
__html: `window.__ENV__ = ${JSON.stringify((data as any)?.__ENV__)}`,
|
|
57
|
+
}}
|
|
58
|
+
/>
|
|
59
|
+
<script
|
|
60
|
+
src="https://cdnjs.cloudflare.com/ajax/libs/reflect-metadata/0.1.13/Reflect.min.js"
|
|
61
|
+
integrity="sha512-jvbPH2TH5BSZumEfOJZn9IV+5bSwwN+qG4dvthYe3KCGC3/9HmxZ4phADbt9Pfcp+XSyyfc2vGZ/RMsSUZ9tbQ=="
|
|
62
|
+
crossOrigin="anonymous"
|
|
63
|
+
referrerPolicy="no-referrer"
|
|
64
|
+
></script>
|
|
65
|
+
<script>window.__APOLLO_STATE__=[__APOLLO_STATE__]</script>
|
|
66
|
+
<script>window.__PRELOADED_STATE__=[__PRELOADED_STATE__]</script>
|
|
67
|
+
<script>window.__SLOT_FILLS__=[__SLOT_FILLS__]</script>
|
|
68
|
+
<script
|
|
69
|
+
dangerouslySetInnerHTML={{
|
|
70
|
+
__html: `if (global === undefined) { var global = window; }`,
|
|
71
|
+
}}
|
|
72
|
+
/>
|
|
73
|
+
</>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<html lang={locale} dir={i18n.dir()}>
|
|
81
|
+
<head>
|
|
82
|
+
<meta charSet="utf-8" />
|
|
83
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
84
|
+
<Meta />
|
|
85
|
+
<Links />
|
|
86
|
+
{typeof window === 'undefined' ? `[__STYLESHEET__]` : ''}
|
|
87
|
+
</head>
|
|
88
|
+
<body>
|
|
89
|
+
<PluginArea />
|
|
90
|
+
{clientModules.getWrappedRoot(children)}
|
|
91
|
+
<ScrollRestoration />
|
|
92
|
+
<Scripts />
|
|
93
|
+
{getConstants()}
|
|
94
|
+
</body>
|
|
95
|
+
</html>
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const TestComponent = () => {
|
|
100
|
+
return (
|
|
101
|
+
<div className="min-h-screen flex items-center justify-center bg-gray-100">
|
|
102
|
+
<div className="p-6 max-w-sm mx-auto bg-white rounded-xl shadow-md space-y-4">
|
|
103
|
+
<h1 className="text-2xl font-bold text-center">Hello, Tailwind CSS!</h1>
|
|
104
|
+
<p className="text-gray-500 text-center">This is a test page using React and Tailwind CSS.</p>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export default function App() {
|
|
111
|
+
return (
|
|
112
|
+
// <Outlet />
|
|
113
|
+
<TestComponent />
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// export { ErrorBoundary };
|
|
@@ -1,46 +1,64 @@
|
|
|
1
|
-
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),devkit=require('@nx/devkit'),path=require('path'),index=require('../../utils/index.cjs'),index$1=require('../../constants/index.cjs');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);const DEFAULT_FRAMEWORK = index$1.FRAMEWORK_ANTUI;
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),devkit=require('@nx/devkit'),path=require('path'),setupConfig_cjs=require('@common-stack/rollup-vite-utils/lib/utils/setupConfig.cjs'),index=require('../../utils/index.cjs'),index$1=require('../../constants/index.cjs');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);const DEFAULT_FRAMEWORK = index$1.FRAMEWORK_ANTUI;
|
|
2
2
|
function addFrontendGenerator(tree, options) {
|
|
3
3
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
4
|
-
var _a;
|
|
5
|
-
// const basePath = process.cwd();
|
|
6
4
|
const projectName = index.isValid(options.ns) ? `frontend-${index.getValid(options.ns)}-server` : 'frontend-server';
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
const framework = (_a = index.getValid(options.framework)) !== null && _a !== void 0 ? _a : DEFAULT_FRAMEWORK;
|
|
10
|
-
console.log('UI framework specified: ', framework);
|
|
11
|
-
// resetProject(`${basePath}/${projectRoot}`);
|
|
12
|
-
// addProjectConfiguration(tree, framework, {
|
|
13
|
-
// root: projectRoot,
|
|
14
|
-
// projectType: 'library',
|
|
15
|
-
// sourceRoot: projectSrc,
|
|
16
|
-
// targets: {},
|
|
17
|
-
// });
|
|
18
|
-
devkit.generateFiles(tree, path__namespace.join(__dirname, 'templates'), projectRoot, {});
|
|
19
|
-
devkit.generateFiles(tree, path__namespace.join(__dirname, 'frameworks', framework), projectSrc, options);
|
|
20
|
-
devkit.updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
|
|
21
|
-
packageJson['name'] = projectName;
|
|
22
|
-
if (framework === index$1.FRAMEWORK_ANTUI) {
|
|
23
|
-
packageJson['dependencies']["@admin-layout/ant-design-pro"] = "latest";
|
|
24
|
-
packageJson['dependencies']["@admin-layout/ant-ui"] = "latest";
|
|
25
|
-
packageJson['dependencies']["@adminide-stack/user-auth0-browser-ant"] = "latest";
|
|
26
|
-
}
|
|
27
|
-
else if (framework === index$1.FRAMEWORK_CHAKRAUI) {
|
|
28
|
-
packageJson['dependencies']["@admin-layout/chakra-design-pro"] = "latest";
|
|
29
|
-
packageJson['dependencies']["@admin-layout/chakra-ui"] = "latest";
|
|
30
|
-
packageJson['dependencies']["@adminide-stack/user-auth0-browser-chakra"] = "latest";
|
|
31
|
-
}
|
|
32
|
-
return packageJson;
|
|
33
|
-
});
|
|
34
|
-
devkit.updateJson(tree, `${projectRoot}/config.json`, (configJson) => {
|
|
35
|
-
configJson['uiFramework'] = framework;
|
|
36
|
-
if (framework === index$1.FRAMEWORK_ANTUI) {
|
|
37
|
-
configJson['modules'].push("@admin-layout/ant-design-pro");
|
|
38
|
-
}
|
|
39
|
-
else if (framework === index$1.FRAMEWORK_CHAKRAUI) {
|
|
40
|
-
configJson['modules'].push("@admin-layout/chakra-design-pro");
|
|
41
|
-
}
|
|
42
|
-
return configJson;
|
|
43
|
-
});
|
|
44
|
-
yield devkit.formatFiles(tree);
|
|
5
|
+
const configs = Object.assign(Object.assign({}, options), { name: projectName });
|
|
6
|
+
return yield generateFrontend(tree, configs);
|
|
45
7
|
});
|
|
46
|
-
}
|
|
8
|
+
}
|
|
9
|
+
const generateFrontend = (tree, options) => tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
const projectName = (_a = index.getValid(options.name)) !== null && _a !== void 0 ? _a : 'frontend-server';
|
|
12
|
+
const projectRoot = index.isValid(options.directory) ? `${index.getValid(options.directory)}/${projectName}` : projectName;
|
|
13
|
+
const projectSrc = `${projectRoot}/src`;
|
|
14
|
+
const framework = (_b = index.getValid(options.framework)) !== null && _b !== void 0 ? _b : DEFAULT_FRAMEWORK;
|
|
15
|
+
console.log('UI framework specified: ', framework);
|
|
16
|
+
// resetProject(`${basePath}/${projectRoot}`);
|
|
17
|
+
// addProjectConfiguration(tree, framework, {
|
|
18
|
+
// root: projectRoot,
|
|
19
|
+
// projectType: 'library',
|
|
20
|
+
// sourceRoot: projectSrc,
|
|
21
|
+
// targets: {},
|
|
22
|
+
// });
|
|
23
|
+
devkit.generateFiles(tree, path__namespace.join(__dirname, 'templates'), projectRoot, {});
|
|
24
|
+
devkit.generateFiles(tree, path__namespace.join(__dirname, 'frameworks', framework), projectSrc, options);
|
|
25
|
+
devkit.updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
|
|
26
|
+
packageJson['name'] = projectName;
|
|
27
|
+
if (framework === index$1.FRAMEWORK_ANTUI) {
|
|
28
|
+
packageJson['dependencies']["@admin-layout/ant-design-pro"] = "latest";
|
|
29
|
+
packageJson['dependencies']["@admin-layout/ant-ui"] = "latest";
|
|
30
|
+
packageJson['dependencies']["@adminide-stack/user-auth0-browser-ant"] = "latest";
|
|
31
|
+
packageJson['dependencies']["@ant-design/pro-layout"] = "^7.6.1";
|
|
32
|
+
packageJson['dependencies']["@ant-design/static-style-extract"] = "^1.0.2";
|
|
33
|
+
packageJson['dependencies']["antd"] = "^5.14.0";
|
|
34
|
+
}
|
|
35
|
+
else if (framework === index$1.FRAMEWORK_CHAKRAUI) {
|
|
36
|
+
packageJson['dependencies']["@admin-layout/chakra-design-pro"] = "latest";
|
|
37
|
+
packageJson['dependencies']["@admin-layout/chakra-ui"] = "latest";
|
|
38
|
+
packageJson['dependencies']["@adminide-stack/user-auth0-browser-chakra"] = "latest";
|
|
39
|
+
packageJson['dependencies']["@emotion/css"] = "^11.10.0";
|
|
40
|
+
packageJson['dependencies']["@emotion/styled"] = "^11.10.4";
|
|
41
|
+
}
|
|
42
|
+
else if (framework === index$1.FRAMEWORK_TAILWINDUI) {
|
|
43
|
+
packageJson['devDependencies']["tailwindcss"] = "^3.4.10";
|
|
44
|
+
packageJson['devDependencies']["postcss"] = "^8.4.41";
|
|
45
|
+
packageJson['devDependencies']["autoprefixer"] = "^10.4.20";
|
|
46
|
+
}
|
|
47
|
+
return packageJson;
|
|
48
|
+
});
|
|
49
|
+
devkit.updateJson(tree, `${projectRoot}/config.json`, (configJson) => {
|
|
50
|
+
configJson['uiFramework'] = framework;
|
|
51
|
+
if (framework === index$1.FRAMEWORK_ANTUI) {
|
|
52
|
+
configJson['modules'].push("@admin-layout/ant-design-pro");
|
|
53
|
+
}
|
|
54
|
+
else if (framework === index$1.FRAMEWORK_CHAKRAUI) {
|
|
55
|
+
configJson['modules'].push("@admin-layout/chakra-design-pro");
|
|
56
|
+
}
|
|
57
|
+
if (options['config.json']) {
|
|
58
|
+
const addtionalConfigs = options['config.json'];
|
|
59
|
+
configJson = setupConfig_cjs.deepMerge(configJson, addtionalConfigs);
|
|
60
|
+
}
|
|
61
|
+
return configJson;
|
|
62
|
+
});
|
|
63
|
+
yield devkit.formatFiles(tree);
|
|
64
|
+
});exports.addFrontendGenerator=addFrontendGenerator;exports.default=addFrontendGenerator;exports.generateFrontend=generateFrontend;//# sourceMappingURL=generator.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.cjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":["FRAMEWORK_ANTUI","isValid","getValid","generateFiles","path","updateJson","FRAMEWORK_CHAKRAUI","formatFiles"],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.cjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":["FRAMEWORK_ANTUI","isValid","getValid","__awaiter","generateFiles","path","updateJson","FRAMEWORK_CHAKRAUI","FRAMEWORK_TAILWINDUI","deepMerge","formatFiles"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Tree } from '@nx/devkit';
|
|
2
2
|
import { AddFrontendGeneratorSchema } from './schema';
|
|
3
3
|
export declare function addFrontendGenerator(tree: Tree, options: AddFrontendGeneratorSchema): Promise<void>;
|
|
4
|
+
export declare const generateFrontend: (tree: Tree, options: any) => Promise<void>;
|
|
4
5
|
export default addFrontendGenerator;
|
|
@@ -1,46 +1,64 @@
|
|
|
1
|
-
import {__awaiter}from'tslib';import {generateFiles,updateJson,formatFiles}from'@nx/devkit';import*as path from'path';import {isValid,getValid}from'../../utils/index.mjs';import {FRAMEWORK_ANTUI,FRAMEWORK_CHAKRAUI}from'../../constants/index.mjs';const DEFAULT_FRAMEWORK = FRAMEWORK_ANTUI;
|
|
1
|
+
import {__awaiter}from'tslib';import {generateFiles,updateJson,formatFiles}from'@nx/devkit';import*as path from'path';import {deepMerge}from'@common-stack/rollup-vite-utils/lib/utils/setupConfig.cjs';import {isValid,getValid}from'../../utils/index.mjs';import {FRAMEWORK_ANTUI,FRAMEWORK_CHAKRAUI,FRAMEWORK_TAILWINDUI}from'../../constants/index.mjs';const DEFAULT_FRAMEWORK = FRAMEWORK_ANTUI;
|
|
2
2
|
function addFrontendGenerator(tree, options) {
|
|
3
3
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4
|
-
var _a;
|
|
5
|
-
// const basePath = process.cwd();
|
|
6
4
|
const projectName = isValid(options.ns) ? `frontend-${getValid(options.ns)}-server` : 'frontend-server';
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
const framework = (_a = getValid(options.framework)) !== null && _a !== void 0 ? _a : DEFAULT_FRAMEWORK;
|
|
10
|
-
console.log('UI framework specified: ', framework);
|
|
11
|
-
// resetProject(`${basePath}/${projectRoot}`);
|
|
12
|
-
// addProjectConfiguration(tree, framework, {
|
|
13
|
-
// root: projectRoot,
|
|
14
|
-
// projectType: 'library',
|
|
15
|
-
// sourceRoot: projectSrc,
|
|
16
|
-
// targets: {},
|
|
17
|
-
// });
|
|
18
|
-
generateFiles(tree, path.join(__dirname, 'templates'), projectRoot, {});
|
|
19
|
-
generateFiles(tree, path.join(__dirname, 'frameworks', framework), projectSrc, options);
|
|
20
|
-
updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
|
|
21
|
-
packageJson['name'] = projectName;
|
|
22
|
-
if (framework === FRAMEWORK_ANTUI) {
|
|
23
|
-
packageJson['dependencies']["@admin-layout/ant-design-pro"] = "latest";
|
|
24
|
-
packageJson['dependencies']["@admin-layout/ant-ui"] = "latest";
|
|
25
|
-
packageJson['dependencies']["@adminide-stack/user-auth0-browser-ant"] = "latest";
|
|
26
|
-
}
|
|
27
|
-
else if (framework === FRAMEWORK_CHAKRAUI) {
|
|
28
|
-
packageJson['dependencies']["@admin-layout/chakra-design-pro"] = "latest";
|
|
29
|
-
packageJson['dependencies']["@admin-layout/chakra-ui"] = "latest";
|
|
30
|
-
packageJson['dependencies']["@adminide-stack/user-auth0-browser-chakra"] = "latest";
|
|
31
|
-
}
|
|
32
|
-
return packageJson;
|
|
33
|
-
});
|
|
34
|
-
updateJson(tree, `${projectRoot}/config.json`, (configJson) => {
|
|
35
|
-
configJson['uiFramework'] = framework;
|
|
36
|
-
if (framework === FRAMEWORK_ANTUI) {
|
|
37
|
-
configJson['modules'].push("@admin-layout/ant-design-pro");
|
|
38
|
-
}
|
|
39
|
-
else if (framework === FRAMEWORK_CHAKRAUI) {
|
|
40
|
-
configJson['modules'].push("@admin-layout/chakra-design-pro");
|
|
41
|
-
}
|
|
42
|
-
return configJson;
|
|
43
|
-
});
|
|
44
|
-
yield formatFiles(tree);
|
|
5
|
+
const configs = Object.assign(Object.assign({}, options), { name: projectName });
|
|
6
|
+
return yield generateFrontend(tree, configs);
|
|
45
7
|
});
|
|
46
|
-
}
|
|
8
|
+
}
|
|
9
|
+
const generateFrontend = (tree, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
const projectName = (_a = getValid(options.name)) !== null && _a !== void 0 ? _a : 'frontend-server';
|
|
12
|
+
const projectRoot = isValid(options.directory) ? `${getValid(options.directory)}/${projectName}` : projectName;
|
|
13
|
+
const projectSrc = `${projectRoot}/src`;
|
|
14
|
+
const framework = (_b = getValid(options.framework)) !== null && _b !== void 0 ? _b : DEFAULT_FRAMEWORK;
|
|
15
|
+
console.log('UI framework specified: ', framework);
|
|
16
|
+
// resetProject(`${basePath}/${projectRoot}`);
|
|
17
|
+
// addProjectConfiguration(tree, framework, {
|
|
18
|
+
// root: projectRoot,
|
|
19
|
+
// projectType: 'library',
|
|
20
|
+
// sourceRoot: projectSrc,
|
|
21
|
+
// targets: {},
|
|
22
|
+
// });
|
|
23
|
+
generateFiles(tree, path.join(__dirname, 'templates'), projectRoot, {});
|
|
24
|
+
generateFiles(tree, path.join(__dirname, 'frameworks', framework), projectSrc, options);
|
|
25
|
+
updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
|
|
26
|
+
packageJson['name'] = projectName;
|
|
27
|
+
if (framework === FRAMEWORK_ANTUI) {
|
|
28
|
+
packageJson['dependencies']["@admin-layout/ant-design-pro"] = "latest";
|
|
29
|
+
packageJson['dependencies']["@admin-layout/ant-ui"] = "latest";
|
|
30
|
+
packageJson['dependencies']["@adminide-stack/user-auth0-browser-ant"] = "latest";
|
|
31
|
+
packageJson['dependencies']["@ant-design/pro-layout"] = "^7.6.1";
|
|
32
|
+
packageJson['dependencies']["@ant-design/static-style-extract"] = "^1.0.2";
|
|
33
|
+
packageJson['dependencies']["antd"] = "^5.14.0";
|
|
34
|
+
}
|
|
35
|
+
else if (framework === FRAMEWORK_CHAKRAUI) {
|
|
36
|
+
packageJson['dependencies']["@admin-layout/chakra-design-pro"] = "latest";
|
|
37
|
+
packageJson['dependencies']["@admin-layout/chakra-ui"] = "latest";
|
|
38
|
+
packageJson['dependencies']["@adminide-stack/user-auth0-browser-chakra"] = "latest";
|
|
39
|
+
packageJson['dependencies']["@emotion/css"] = "^11.10.0";
|
|
40
|
+
packageJson['dependencies']["@emotion/styled"] = "^11.10.4";
|
|
41
|
+
}
|
|
42
|
+
else if (framework === FRAMEWORK_TAILWINDUI) {
|
|
43
|
+
packageJson['devDependencies']["tailwindcss"] = "^3.4.10";
|
|
44
|
+
packageJson['devDependencies']["postcss"] = "^8.4.41";
|
|
45
|
+
packageJson['devDependencies']["autoprefixer"] = "^10.4.20";
|
|
46
|
+
}
|
|
47
|
+
return packageJson;
|
|
48
|
+
});
|
|
49
|
+
updateJson(tree, `${projectRoot}/config.json`, (configJson) => {
|
|
50
|
+
configJson['uiFramework'] = framework;
|
|
51
|
+
if (framework === FRAMEWORK_ANTUI) {
|
|
52
|
+
configJson['modules'].push("@admin-layout/ant-design-pro");
|
|
53
|
+
}
|
|
54
|
+
else if (framework === FRAMEWORK_CHAKRAUI) {
|
|
55
|
+
configJson['modules'].push("@admin-layout/chakra-design-pro");
|
|
56
|
+
}
|
|
57
|
+
if (options['config.json']) {
|
|
58
|
+
const addtionalConfigs = options['config.json'];
|
|
59
|
+
configJson = deepMerge(configJson, addtionalConfigs);
|
|
60
|
+
}
|
|
61
|
+
return configJson;
|
|
62
|
+
});
|
|
63
|
+
yield formatFiles(tree);
|
|
64
|
+
});export{addFrontendGenerator,addFrontendGenerator as default,generateFrontend};//# sourceMappingURL=generator.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.mjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.mjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"framework": {
|
|
18
18
|
"type": "string",
|
|
19
19
|
"description": "",
|
|
20
|
-
"x-prompt": "What UI framework would you like to use in [antui, chakraui]?"
|
|
20
|
+
"x-prompt": "What UI framework would you like to use in [antui, chakraui, tailwindui]?"
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"required": ["ns", "directory", "framework"]
|