@nx/remix 23.3.0-rc.1 → 24.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +10 -7
  2. package/dist/generators.d.ts +1 -13
  3. package/dist/generators.js +3 -28
  4. package/dist/plugin.d.ts +1 -1
  5. package/dist/plugin.js +1 -2
  6. package/dist/plugins/component-testing/index.d.ts +1 -0
  7. package/dist/plugins/component-testing/index.js +1 -0
  8. package/dist/readme-template.md +10 -4
  9. package/dist/src/generators/convert-to-inferred/convert-to-inferred.js +2 -0
  10. package/dist/src/migrations/update-24-0-0/convert-to-inferred.d.ts +2 -0
  11. package/dist/src/migrations/update-24-0-0/convert-to-inferred.js +26 -0
  12. package/dist/src/migrations/update-24-0-0/migrate-to-react-router.md +50 -0
  13. package/dist/src/plugins/plugin.d.ts +5 -3
  14. package/dist/src/plugins/plugin.js +8 -7
  15. package/dist/src/utils/create-watch-paths.d.ts +1 -0
  16. package/dist/src/utils/create-watch-paths.js +1 -0
  17. package/dist/src/utils/deprecation.d.ts +2 -4
  18. package/dist/src/utils/deprecation.js +11 -13
  19. package/dist/src/utils/versions.d.ts +1 -19
  20. package/dist/src/utils/versions.js +1 -28
  21. package/generators.json +2 -79
  22. package/migrations.json +10 -0
  23. package/package.json +8 -19
  24. package/readme-template.md +10 -4
  25. package/dist/src/executors/build/build.impl.d.ts +0 -5
  26. package/dist/src/executors/build/build.impl.js +0 -121
  27. package/dist/src/executors/build/schema.d.ts +0 -8
  28. package/dist/src/executors/build/schema.json +0 -47
  29. package/dist/src/executors/serve/schema.d.ts +0 -9
  30. package/dist/src/executors/serve/schema.json +0 -43
  31. package/dist/src/executors/serve/serve.impl.d.ts +0 -6
  32. package/dist/src/executors/serve/serve.impl.js +0 -79
  33. package/dist/src/generators/action/action.impl.d.ts +0 -3
  34. package/dist/src/generators/action/action.impl.js +0 -37
  35. package/dist/src/generators/action/schema.d.ts +0 -3
  36. package/dist/src/generators/action/schema.json +0 -18
  37. package/dist/src/generators/application/application.impl.d.ts +0 -5
  38. package/dist/src/generators/application/application.impl.js +0 -239
  39. package/dist/src/generators/application/files/common/app/entry.client.tsx__tmpl__ +0 -18
  40. package/dist/src/generators/application/files/common/app/entry.server.tsx__tmpl__ +0 -139
  41. package/dist/src/generators/application/files/common/app/root.tsx__tmpl__ +0 -47
  42. package/dist/src/generators/application/files/common/app/routes/_index.tsx__tmpl__ +0 -9
  43. package/dist/src/generators/application/files/common/public/favicon.ico +0 -0
  44. package/dist/src/generators/application/files/common/tests/routes/_index.spec.tsx__tmpl__ +0 -17
  45. package/dist/src/generators/application/files/common/tsconfig.app.json__tmpl__ +0 -25
  46. package/dist/src/generators/application/files/common/tsconfig.json__tmpl__ +0 -27
  47. package/dist/src/generators/application/files/common/vite.config.mts__tmpl__ +0 -25
  48. package/dist/src/generators/application/files/non-root/.gitignore__tmpl__ +0 -4
  49. package/dist/src/generators/application/files/non-root/package.json__tmpl__ +0 -20
  50. package/dist/src/generators/application/files/nx-welcome/claimed/app/nx-welcome.tsx__tmpl__ +0 -868
  51. package/dist/src/generators/application/files/nx-welcome/not-configured/app/nx-welcome.tsx__tmpl__ +0 -868
  52. package/dist/src/generators/application/files/nx-welcome/unclaimed/app/nx-welcome.tsx__tmpl__ +0 -866
  53. package/dist/src/generators/application/files/ts-solution/package.json__tmpl__ +0 -20
  54. package/dist/src/generators/application/files/ts-solution/tsconfig.app.json__tmpl__ +0 -41
  55. package/dist/src/generators/application/files/ts-solution/tsconfig.json__tmpl__ +0 -10
  56. package/dist/src/generators/application/lib/add-e2e.d.ts +0 -3
  57. package/dist/src/generators/application/lib/add-e2e.js +0 -117
  58. package/dist/src/generators/application/lib/ignore-vite-temp-files.d.ts +0 -2
  59. package/dist/src/generators/application/lib/ignore-vite-temp-files.js +0 -50
  60. package/dist/src/generators/application/lib/index.d.ts +0 -4
  61. package/dist/src/generators/application/lib/index.js +0 -7
  62. package/dist/src/generators/application/lib/normalize-options.d.ts +0 -12
  63. package/dist/src/generators/application/lib/normalize-options.js +0 -40
  64. package/dist/src/generators/application/lib/update-unit-test-config.d.ts +0 -2
  65. package/dist/src/generators/application/lib/update-unit-test-config.js +0 -57
  66. package/dist/src/generators/application/schema.d.ts +0 -18
  67. package/dist/src/generators/application/schema.json +0 -70
  68. package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.impl.d.ts +0 -5
  69. package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.impl.js +0 -35
  70. package/dist/src/generators/cypress-component-configuration/files/cypress.config.ts__tmpl__ +0 -6
  71. package/dist/src/generators/cypress-component-configuration/schema.d.ts +0 -6
  72. package/dist/src/generators/cypress-component-configuration/schema.json +0 -41
  73. package/dist/src/generators/error-boundary/error-boundary.impl.d.ts +0 -3
  74. package/dist/src/generators/error-boundary/error-boundary.impl.js +0 -14
  75. package/dist/src/generators/error-boundary/lib/add-v2-error-boundary.d.ts +0 -3
  76. package/dist/src/generators/error-boundary/lib/add-v2-error-boundary.js +0 -37
  77. package/dist/src/generators/error-boundary/lib/index.d.ts +0 -2
  78. package/dist/src/generators/error-boundary/lib/index.js +0 -5
  79. package/dist/src/generators/error-boundary/lib/normalize-options.d.ts +0 -3
  80. package/dist/src/generators/error-boundary/lib/normalize-options.js +0 -13
  81. package/dist/src/generators/error-boundary/schema.d.ts +0 -4
  82. package/dist/src/generators/error-boundary/schema.json +0 -26
  83. package/dist/src/generators/init/init.d.ts +0 -5
  84. package/dist/src/generators/init/init.js +0 -67
  85. package/dist/src/generators/init/schema.d.ts +0 -7
  86. package/dist/src/generators/init/schema.json +0 -33
  87. package/dist/src/generators/library/lib/add-tsconfig-entry-points.d.ts +0 -3
  88. package/dist/src/generators/library/lib/add-tsconfig-entry-points.js +0 -20
  89. package/dist/src/generators/library/lib/add-unit-testing.d.ts +0 -3
  90. package/dist/src/generators/library/lib/add-unit-testing.js +0 -31
  91. package/dist/src/generators/library/lib/index.d.ts +0 -4
  92. package/dist/src/generators/library/lib/index.js +0 -7
  93. package/dist/src/generators/library/lib/normalize-options.d.ts +0 -8
  94. package/dist/src/generators/library/lib/normalize-options.js +0 -31
  95. package/dist/src/generators/library/lib/update-buildable-config.d.ts +0 -3
  96. package/dist/src/generators/library/lib/update-buildable-config.js +0 -23
  97. package/dist/src/generators/library/library.impl.d.ts +0 -6
  98. package/dist/src/generators/library/library.impl.js +0 -78
  99. package/dist/src/generators/library/schema.d.ts +0 -19
  100. package/dist/src/generators/library/schema.json +0 -89
  101. package/dist/src/generators/loader/loader.impl.d.ts +0 -3
  102. package/dist/src/generators/loader/loader.impl.js +0 -37
  103. package/dist/src/generators/loader/schema.d.ts +0 -3
  104. package/dist/src/generators/loader/schema.json +0 -18
  105. package/dist/src/generators/meta/lib/v2.impl.d.ts +0 -3
  106. package/dist/src/generators/meta/lib/v2.impl.js +0 -24
  107. package/dist/src/generators/meta/meta.impl.d.ts +0 -3
  108. package/dist/src/generators/meta/meta.impl.js +0 -9
  109. package/dist/src/generators/meta/schema.d.ts +0 -3
  110. package/dist/src/generators/meta/schema.json +0 -18
  111. package/dist/src/generators/preset/lib/normalize-options.d.ts +0 -10
  112. package/dist/src/generators/preset/lib/normalize-options.js +0 -19
  113. package/dist/src/generators/preset/preset.impl.d.ts +0 -3
  114. package/dist/src/generators/preset/preset.impl.js +0 -34
  115. package/dist/src/generators/preset/schema.d.ts +0 -4
  116. package/dist/src/generators/preset/schema.json +0 -14
  117. package/dist/src/generators/resource-route/resource-route.impl.d.ts +0 -3
  118. package/dist/src/generators/resource-route/resource-route.impl.js +0 -37
  119. package/dist/src/generators/resource-route/schema.d.ts +0 -6
  120. package/dist/src/generators/resource-route/schema.json +0 -44
  121. package/dist/src/generators/route/route.impl.d.ts +0 -3
  122. package/dist/src/generators/route/route.impl.js +0 -62
  123. package/dist/src/generators/route/schema.d.ts +0 -8
  124. package/dist/src/generators/route/schema.json +0 -55
  125. package/dist/src/generators/setup/schema.json +0 -14
  126. package/dist/src/generators/setup/setup.impl.d.ts +0 -2
  127. package/dist/src/generators/setup/setup.impl.js +0 -38
  128. package/dist/src/generators/storybook-configuration/files/vite.config.mts__tpl__ +0 -15
  129. package/dist/src/generators/storybook-configuration/schema.d.ts +0 -14
  130. package/dist/src/generators/storybook-configuration/schema.json +0 -78
  131. package/dist/src/generators/storybook-configuration/storybook-configuration.impl.d.ts +0 -4
  132. package/dist/src/generators/storybook-configuration/storybook-configuration.impl.js +0 -33
  133. package/dist/src/generators/style/schema.d.ts +0 -3
  134. package/dist/src/generators/style/schema.json +0 -25
  135. package/dist/src/generators/style/style.impl.d.ts +0 -3
  136. package/dist/src/generators/style/style.impl.js +0 -55
  137. package/dist/src/generators/utils/update-dependencies.d.ts +0 -2
  138. package/dist/src/generators/utils/update-dependencies.js +0 -32
  139. package/dist/src/utils/assert-and-pin-remix-typescript.d.ts +0 -21
  140. package/dist/src/utils/assert-and-pin-remix-typescript.js +0 -36
  141. package/dist/src/utils/get-default-export-name.d.ts +0 -2
  142. package/dist/src/utils/get-default-export-name.js +0 -7
  143. package/dist/src/utils/get-default-export.d.ts +0 -2
  144. package/dist/src/utils/get-default-export.js +0 -14
  145. package/dist/src/utils/insert-import.d.ts +0 -4
  146. package/dist/src/utils/insert-import.js +0 -53
  147. package/dist/src/utils/insert-statement-after-imports.d.ts +0 -5
  148. package/dist/src/utils/insert-statement-after-imports.js +0 -27
  149. package/dist/src/utils/insert-statement-in-default-function.d.ts +0 -2
  150. package/dist/src/utils/insert-statement-in-default-function.js +0 -22
  151. package/dist/src/utils/remix-config.d.ts +0 -6
  152. package/dist/src/utils/remix-config.js +0 -75
  153. package/dist/src/utils/remix-route-utils.d.ts +0 -4
  154. package/dist/src/utils/remix-route-utils.js +0 -26
  155. package/dist/src/utils/testing-config-utils.d.ts +0 -5
  156. package/dist/src/utils/testing-config-utils.js +0 -83
  157. package/executors.json +0 -14
@@ -1,18 +0,0 @@
1
- /**
2
- * By default, Remix will handle hydrating your app on the client 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.client
5
- */
6
-
7
- import { RemixBrowser } from "@remix-run/react";
8
- import { startTransition, StrictMode } from "react";
9
- import { hydrateRoot } from "react-dom/client";
10
-
11
- startTransition(() => {
12
- hydrateRoot(
13
- document,
14
- <StrictMode>
15
- <RemixBrowser />
16
- </StrictMode>
17
- );
18
- });
@@ -1,139 +0,0 @@
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
-
7
- import { PassThrough } from "node:stream";
8
-
9
- import type { AppLoadContext, EntryContext } from "@remix-run/node";
10
- import { createReadableStreamFromReadable } from "@remix-run/node";
11
- import { RemixServer } from "@remix-run/react";
12
- import { isbot } from "isbot";
13
- import { renderToPipeableStream } from "react-dom/server";
14
-
15
- const ABORT_DELAY = 5_000;
16
-
17
- export default function handleRequest(
18
- request: Request,
19
- responseStatusCode: number,
20
- responseHeaders: Headers,
21
- remixContext: EntryContext,
22
- // This is ignored so we can keep it in the template for visibility. Feel
23
- // free to delete this parameter in your app if you're not using it!
24
- _loadContext: AppLoadContext
25
- ) {
26
- return isbot(request.headers.get("user-agent") || "")
27
- ? handleBotRequest(
28
- request,
29
- responseStatusCode,
30
- responseHeaders,
31
- remixContext
32
- )
33
- : handleBrowserRequest(
34
- request,
35
- responseStatusCode,
36
- responseHeaders,
37
- remixContext
38
- );
39
- }
40
-
41
- function handleBotRequest(
42
- request: Request,
43
- responseStatusCode: number,
44
- responseHeaders: Headers,
45
- remixContext: EntryContext
46
- ) {
47
- return new Promise((resolve, reject) => {
48
- let shellRendered = false;
49
- const { pipe, abort } = renderToPipeableStream(
50
- <RemixServer
51
- context={remixContext}
52
- url={request.url}
53
- abortDelay={ABORT_DELAY}
54
- />,
55
- {
56
- onAllReady() {
57
- shellRendered = true;
58
- const body = new PassThrough();
59
- const stream = createReadableStreamFromReadable(body);
60
-
61
- responseHeaders.set("Content-Type", "text/html");
62
-
63
- resolve(
64
- new Response(stream, {
65
- headers: responseHeaders,
66
- status: responseStatusCode,
67
- })
68
- );
69
-
70
- pipe(body);
71
- },
72
- onShellError(error: unknown) {
73
- reject(error);
74
- },
75
- onError(error: unknown) {
76
- responseStatusCode = 500;
77
- // Log streaming rendering errors from inside the shell. Don't log
78
- // errors encountered during initial shell rendering since they'll
79
- // reject and get logged in handleDocumentRequest.
80
- if (shellRendered) {
81
- console.error(error);
82
- }
83
- },
84
- }
85
- );
86
-
87
- setTimeout(abort, ABORT_DELAY);
88
- });
89
- }
90
-
91
- function handleBrowserRequest(
92
- request: Request,
93
- responseStatusCode: number,
94
- responseHeaders: Headers,
95
- remixContext: EntryContext
96
- ) {
97
- return new Promise((resolve, reject) => {
98
- let shellRendered = false;
99
- const { pipe, abort } = renderToPipeableStream(
100
- <RemixServer
101
- context={remixContext}
102
- url={request.url}
103
- abortDelay={ABORT_DELAY}
104
- />,
105
- {
106
- onShellReady() {
107
- shellRendered = true;
108
- const body = new PassThrough();
109
- const stream = createReadableStreamFromReadable(body);
110
-
111
- responseHeaders.set("Content-Type", "text/html");
112
-
113
- resolve(
114
- new Response(stream, {
115
- headers: responseHeaders,
116
- status: responseStatusCode,
117
- })
118
- );
119
-
120
- pipe(body);
121
- },
122
- onShellError(error: unknown) {
123
- reject(error);
124
- },
125
- onError(error: unknown) {
126
- responseStatusCode = 500;
127
- // Log streaming rendering errors from inside the shell. Don't log
128
- // errors encountered during initial shell rendering since they'll
129
- // reject and get logged in handleDocumentRequest.
130
- if (shellRendered) {
131
- console.error(error);
132
- }
133
- },
134
- }
135
- );
136
-
137
- setTimeout(abort, ABORT_DELAY);
138
- });
139
- }
@@ -1,47 +0,0 @@
1
- import {
2
- Links,
3
- Meta,
4
- Outlet,
5
- Scripts,
6
- ScrollRestoration,
7
- } from "@remix-run/react";
8
- import type { MetaFunction, LinksFunction } from "@remix-run/node";
9
-
10
- export const meta: MetaFunction = () => ([{
11
- title: "New Remix App",
12
- }]);
13
-
14
- export const links: LinksFunction = () => [
15
- { rel: "preconnect", href: "https://fonts.googleapis.com" },
16
- {
17
- rel: "preconnect",
18
- href: "https://fonts.gstatic.com",
19
- crossOrigin: "anonymous",
20
- },
21
- {
22
- rel: "stylesheet",
23
- href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap",
24
- },
25
- ];
26
-
27
- export function Layout({ children }: { children: React.ReactNode }) {
28
- return (
29
- <html lang="en">
30
- <head>
31
- <meta charSet="utf-8" />
32
- <meta name="viewport" content="width=device-width, initial-scale=1" />
33
- <Meta />
34
- <Links />
35
- </head>
36
- <body>
37
- {children}
38
- <ScrollRestoration />
39
- <Scripts />
40
- </body>
41
- </html>
42
- );
43
- }
44
-
45
- export default function App() {
46
- return <Outlet />;
47
- }
@@ -1,9 +0,0 @@
1
- import NxWelcome from "../nx-welcome";
2
-
3
- export default function Index() {
4
- return (
5
- <div>
6
- <NxWelcome title={"<%= projectName %>"} />
7
- </div>
8
- );
9
- }
@@ -1,17 +0,0 @@
1
- import { createRemixStub } from '@remix-run/testing';
2
- import { render } from '@testing-library/react';
3
- import { screen } from '@testing-library/dom';
4
- import Index from '../../app/routes/_index';
5
-
6
- test('renders loader data', async () => {
7
- const RemixStub = createRemixStub([
8
- {
9
- path: '/',
10
- Component: Index,
11
- },
12
- ]);
13
-
14
- render(<RemixStub />);
15
-
16
- expect(await screen.findByText('Hello there,')).toBeTruthy();
17
- });
@@ -1,25 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "include": [
4
- "app/**/*.ts",
5
- "app/**/*.tsx",
6
- "app/**/*.js",
7
- "app/**/*.jsx",
8
- "**/.server/**/*.ts",
9
- "**/.server/**/*.tsx",
10
- "**/.client/**/*.ts",
11
- "**/.client/**/*.tsx"
12
- ],
13
- "exclude": [
14
- "jest.config.ts",
15
- "jest.config.cts",
16
- "tests/**/*.spec.ts",
17
- "tests/**/*.test.ts",
18
- "tests/**/*.spec.tsx",
19
- "tests/**/*.test.tsx",
20
- "tests/**/*.spec.js",
21
- "tests/**/*.test.js",
22
- "tests/**/*.spec.jsx",
23
- "tests/**/*.test.jsx"
24
- ]
25
- }
@@ -1,27 +0,0 @@
1
- {
2
- "extends": "<%= offsetFromRoot %>tsconfig.base.json",
3
- "compilerOptions": {
4
- "lib": ["DOM", "DOM.Iterable", "ES2019"],
5
- "types": ["@remix-run/node", "vite/client"],
6
- "isolatedModules": true,
7
- "esModuleInterop": true,
8
- "jsx": "react-jsx",
9
- "module": "ESNext",
10
- "moduleResolution": "Bundler",
11
- "resolveJsonModule": true,
12
- "target": "ES2022",
13
- "strict": true,
14
- "allowJs": true,
15
- "skipLibCheck": true,
16
- "forceConsistentCasingInFileNames": true,
17
- // Vite takes care of building everything.
18
- "noEmit": true
19
- },
20
- "include": [],
21
- "files": [],
22
- "references": [
23
- {
24
- "path": "./tsconfig.app.json"
25
- }
26
- ]
27
- }
@@ -1,25 +0,0 @@
1
- import { vitePlugin as remix } from '@remix-run/dev';
2
- import { defineConfig } from 'vite';
3
- import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
4
-
5
- declare module '@remix-run/node' {
6
- interface Future {
7
- v3_singleFetch: true;
8
- }
9
- }
10
-
11
- export default defineConfig({
12
- root: import.meta.dirname,
13
- plugins: [
14
- remix({
15
- future: {
16
- v3_fetcherPersist: true,
17
- v3_relativeSplatPath: true,
18
- v3_throwAbortReason: true,
19
- v3_singleFetch: true,
20
- v3_lazyRouteDiscovery: true,
21
- },
22
- }),
23
- nxViteTsPaths(),
24
- ],
25
- });
@@ -1,4 +0,0 @@
1
- .cache
2
- build
3
- public/build
4
- .env
@@ -1,20 +0,0 @@
1
- {
2
- "private": true,
3
- "name": "<%= projectName %>",
4
- "scripts": {},
5
- "type": "module",
6
- "dependencies": {
7
- "@remix-run/node": "<%= remixVersion %>",
8
- "@remix-run/react": "<%= remixVersion %>",
9
- "@remix-run/serve": "<%= remixVersion %>",
10
- "isbot": "<%= isbotVersion %>",
11
- "react": "<%= reactVersion %>",
12
- "react-dom": "<%= reactDomVersion %>"
13
- },
14
- "devDependencies": {
15
- "@remix-run/dev": "<%= remixVersion %>",
16
- "@types/react": "<%= typesReactVersion %>",
17
- "@types/react-dom": "<%= typesReactDomVersion %>"
18
- },
19
- "sideEffects": false
20
- }