@nx/remix 16.4.0 → 16.7.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/executors.json +26 -0
  2. package/package.json +9 -7
  3. package/src/executors/build/build.impl.d.ts +5 -0
  4. package/src/executors/build/build.impl.js +84 -0
  5. package/src/executors/build/build.impl.js.map +1 -0
  6. package/src/executors/build/compat.d.ts +2 -0
  7. package/src/executors/build/compat.js +6 -0
  8. package/src/executors/build/compat.js.map +1 -0
  9. package/src/executors/build/schema.d.ts +5 -0
  10. package/src/executors/build/schema.json +31 -0
  11. package/src/executors/serve/compat.d.ts +2 -0
  12. package/src/executors/serve/compat.js +6 -0
  13. package/src/executors/serve/compat.js.map +1 -0
  14. package/src/executors/serve/schema.d.ts +9 -0
  15. package/src/executors/serve/schema.json +41 -0
  16. package/src/executors/serve/serve.impl.d.ts +6 -0
  17. package/src/executors/serve/serve.impl.js +77 -0
  18. package/src/executors/serve/serve.impl.js.map +1 -0
  19. package/src/generators/application/__snapshots__/application.impl.spec.ts.snap +6 -24
  20. package/src/generators/application/application.impl.js +5 -4
  21. package/src/generators/application/application.impl.js.map +1 -1
  22. package/src/generators/cypress/cypress.impl.d.ts +3 -2
  23. package/src/generators/cypress/cypress.impl.js +26 -4
  24. package/src/generators/cypress/cypress.impl.js.map +1 -1
  25. package/src/generators/cypress/schema.d.ts +10 -0
  26. package/src/generators/preset/lib/normalize-options.d.ts +3 -0
  27. package/src/generators/preset/lib/normalize-options.js.map +1 -1
  28. package/src/generators/preset/preset.impl.js +4 -0
  29. package/src/generators/preset/preset.impl.js.map +1 -1
  30. package/src/generators/storybook-configuration/__snapshots__/storybook-configuration.impl.spec.ts.snap +12 -6
package/executors.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "executors": {
3
+ "serve": {
4
+ "implementation": "./src/executors/serve/serve.impl",
5
+ "schema": "./src/executors/serve/schema.json",
6
+ "description": "Serve a Remix application."
7
+ },
8
+ "build": {
9
+ "implementation": "./src/executors/build/build.impl",
10
+ "schema": "./src/executors/build/schema.json",
11
+ "description": "Build a Remix application."
12
+ }
13
+ },
14
+ "builders": {
15
+ "serve": {
16
+ "implementation": "./src/executors/serve/compat",
17
+ "schema": "./src/executors/serve/schema.json",
18
+ "description": "Serve a Remix application."
19
+ },
20
+ "build": {
21
+ "implementation": "./src/executors/build/build.impl",
22
+ "schema": "./src/executors/build/schema.json",
23
+ "description": "Build a Remix application."
24
+ }
25
+ }
26
+ }
package/package.json CHANGED
@@ -1,20 +1,22 @@
1
1
  {
2
2
  "name": "@nx/remix",
3
- "version": "16.4.0",
4
- "main": "src/index.js",
3
+ "version": "16.7.0-beta.1",
4
+ "main": "./src/index.js",
5
5
  "generators": "./generators.json",
6
+ "executors": "./executors.json",
6
7
  "dependencies": {
7
- "@nx/devkit": "^16.0.3",
8
- "@nx/js": "^16.0.3",
9
- "@nx/react": "^16.0.3",
8
+ "@nx/devkit": "^16.7.0-rc.1",
9
+ "@nx/js": "^16.7.0-rc.1",
10
+ "@nx/react": "^16.7.0-rc.1",
11
+ "@nx/web": "16.7.1",
10
12
  "@phenomnomnominal/tsquery": "^5.0.1",
11
13
  "tslib": "^2.3.1",
12
14
  "vite": "4.3.9",
13
- "@nrwl/remix": "16.4.0"
15
+ "@nrwl/remix": "16.7.0-beta.1"
14
16
  },
15
17
  "ng-update": {
16
18
  "requirements": {},
17
19
  "migrations": "./migrations.json"
18
20
  },
19
- "types": "./src/index.d.ts"
21
+ "type": "commonjs"
20
22
  }
@@ -0,0 +1,5 @@
1
+ import { type ExecutorContext } from '@nx/devkit';
2
+ import { type RemixBuildSchema } from './schema';
3
+ export default function buildExecutor(options: RemixBuildSchema, context: ExecutorContext): Promise<{
4
+ success: boolean;
5
+ }>;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const devkit_1 = require("@nx/devkit");
5
+ const js_1 = require("@nx/js");
6
+ const fileutils_1 = require("@nx/workspace/src/utilities/fileutils");
7
+ const dev_1 = require("@remix-run/dev");
8
+ const fs_extra_1 = require("fs-extra");
9
+ const path_1 = require("path");
10
+ function buildExecutor(options, context) {
11
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
12
+ const projectRoot = context.projectGraph.nodes[context.projectName].data.root;
13
+ try {
14
+ yield dev_1.cli.run(['build', projectRoot]);
15
+ }
16
+ catch (error) {
17
+ devkit_1.logger.error(`Error occurred while trying to build application.`);
18
+ devkit_1.logger.error(error.toString());
19
+ return { success: false };
20
+ }
21
+ if (!(0, fileutils_1.directoryExists)(options.outputPath)) {
22
+ (0, fs_extra_1.mkdir)(options.outputPath);
23
+ }
24
+ const builtPackageJson = (0, js_1.createPackageJson)(context.projectName, context.projectGraph, {
25
+ target: context.targetName,
26
+ root: context.root,
27
+ isProduction: !options.includeDevDependenciesInPackageJson, // By default we remove devDependencies since this is a production build.
28
+ });
29
+ // Update `package.json` to reflect how users should run the build artifacts
30
+ builtPackageJson.scripts = {
31
+ start: 'remix-serve build',
32
+ };
33
+ updatePackageJson(builtPackageJson, context);
34
+ (0, devkit_1.writeJsonFile)(`${options.outputPath}/package.json`, builtPackageJson);
35
+ if (options.generateLockfile) {
36
+ const lockFile = (0, js_1.createLockFile)(builtPackageJson);
37
+ (0, fs_extra_1.writeFileSync)(`${options.outputPath}/${(0, js_1.getLockFileName)()}`, lockFile, {
38
+ encoding: 'utf-8',
39
+ });
40
+ }
41
+ // If output path is different from source path, then copy over the config and public files.
42
+ // This is the default behavior when running `nx build <app>`.
43
+ if (options.outputPath.replace(/\/$/, '') !== projectRoot) {
44
+ (0, fs_extra_1.copySync)((0, path_1.join)(projectRoot, 'public'), (0, path_1.join)(options.outputPath, 'public'), {
45
+ dereference: true,
46
+ });
47
+ (0, fs_extra_1.copySync)((0, path_1.join)(projectRoot, 'build'), (0, path_1.join)(options.outputPath, 'build'), {
48
+ dereference: true,
49
+ });
50
+ }
51
+ return { success: true };
52
+ });
53
+ }
54
+ exports.default = buildExecutor;
55
+ function updatePackageJson(packageJson, context) {
56
+ var _a, _b;
57
+ var _c;
58
+ if (!packageJson.scripts) {
59
+ packageJson.scripts = {};
60
+ }
61
+ if (!packageJson.scripts.start) {
62
+ packageJson.scripts.start = 'remix-serve build';
63
+ }
64
+ (_a = packageJson.dependencies) !== null && _a !== void 0 ? _a : (packageJson.dependencies = {});
65
+ // These are always required for a production Remix app to run.
66
+ const requiredPackages = [
67
+ 'react',
68
+ 'react-dom',
69
+ 'isbot',
70
+ 'typescript',
71
+ '@remix-run/css-bundle',
72
+ '@remix-run/node',
73
+ '@remix-run/react',
74
+ '@remix-run/serve',
75
+ '@remix-run/dev',
76
+ ];
77
+ for (const pkg of requiredPackages) {
78
+ const externalNode = context.projectGraph.externalNodes[`npm:${pkg}`];
79
+ if (externalNode) {
80
+ (_b = (_c = packageJson.dependencies)[pkg]) !== null && _b !== void 0 ? _b : (_c[pkg] = externalNode.data.version);
81
+ }
82
+ }
83
+ }
84
+ //# sourceMappingURL=build.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.impl.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/executors/build/build.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const build_impl_1 = require("./build.impl");
5
+ exports.default = (0, devkit_1.convertNxExecutor)(build_impl_1.default);
6
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/executors/build/compat.ts"],"names":[],"mappings":";;AAAA,uCAA+C;AAE/C,6CAAyC;AAEzC,kBAAe,IAAA,0BAAiB,EAAC,oBAAa,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface RemixBuildSchema {
2
+ outputPath: string;
3
+ includeDevDependenciesInPackageJson: boolean;
4
+ generateLockfile: boolean;
5
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "version": 2,
3
+ "outputCapture": "pipe",
4
+ "$schema": "http://json-schema.org/schema",
5
+ "cli": "nx",
6
+ "title": "Remix Build",
7
+ "description": "Build a Remix app.",
8
+ "type": "object",
9
+ "properties": {
10
+ "outputPath": {
11
+ "type": "string",
12
+ "description": "The output path of the generated files.",
13
+ "x-completion-type": "directory",
14
+ "x-priority": "important"
15
+ },
16
+ "includeDevDependenciesInPackageJson": {
17
+ "type": "boolean",
18
+ "description": "Include `devDependencies` in the generated package.json file. By default only production `dependencies` are included.",
19
+ "default": false
20
+ },
21
+ "generateLockfile": {
22
+ "type": "boolean",
23
+ "description": "Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match.",
24
+ "default": false,
25
+ "x-priority": "internal"
26
+ }
27
+ },
28
+ "required": [
29
+ "outputPath"
30
+ ]
31
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const serve_impl_1 = require("./serve.impl");
5
+ exports.default = (0, devkit_1.convertNxExecutor)(serve_impl_1.default);
6
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/executors/serve/compat.ts"],"names":[],"mappings":";;AAAA,uCAA+C;AAE/C,6CAAyC;AAEzC,kBAAe,IAAA,0BAAiB,EAAC,oBAAa,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface RemixServeSchema {
2
+ port: number;
3
+ devServerPort?: number;
4
+ debug?: boolean;
5
+ command?: string;
6
+ manual?: boolean;
7
+ tlsKey?: string;
8
+ tlsCert?: string;
9
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "version": 2,
3
+ "outputCapture": "pipe",
4
+ "cli": "nx",
5
+ "title": "Remix Serve",
6
+ "description": "Serve a Remix app.",
7
+ "type": "object",
8
+ "properties": {
9
+ "port": {
10
+ "type": "number",
11
+ "description": "Set PORT environment variable that can be used to serve the Remix application.",
12
+ "default": 4200
13
+ },
14
+ "devServerPort": {
15
+ "type": "number",
16
+ "description": "Port to start the dev server on."
17
+ },
18
+ "debug": {
19
+ "type": "boolean",
20
+ "description": "Attach a Node.js inspector.",
21
+ "default": false
22
+ },
23
+ "command": {
24
+ "type": "string",
25
+ "description": "Command used to run your app server."
26
+ },
27
+ "manual": {
28
+ "type": "boolean",
29
+ "description": "Enable manual mode",
30
+ "default": false
31
+ },
32
+ "tlsKey": {
33
+ "type": "string",
34
+ "description": "Path to TLS key (key.pem)."
35
+ },
36
+ "tlsCert": {
37
+ "type": "string",
38
+ "description": "Path to TLS certificate (cert.pem)."
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,6 @@
1
+ import { type ExecutorContext } from '@nx/devkit';
2
+ import { type RemixServeSchema } from './schema';
3
+ export default function serveExecutor(schema: RemixServeSchema, context: ExecutorContext): AsyncGenerator<{
4
+ success: boolean;
5
+ baseUrl: string;
6
+ }, void, undefined>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const devkit_1 = require("@nx/devkit");
5
+ const async_iterable_1 = require("@nx/devkit/src/utils/async-iterable");
6
+ const wait_for_port_open_1 = require("@nx/web/src/utils/wait-for-port-open");
7
+ const node_child_process_1 = require("node:child_process");
8
+ const node_path_1 = require("node:path");
9
+ function normalizeOptions(schema) {
10
+ var _a, _b, _c;
11
+ return Object.assign(Object.assign({}, schema), { port: (_a = schema.port) !== null && _a !== void 0 ? _a : 4200, debug: (_b = schema.debug) !== null && _b !== void 0 ? _b : false, manual: (_c = schema.manual) !== null && _c !== void 0 ? _c : false });
12
+ }
13
+ function buildRemixDevArgs(options) {
14
+ const args = [];
15
+ if (options.command) {
16
+ args.push(`--command=${options.command}`);
17
+ }
18
+ if (options.devServerPort) {
19
+ args.push(`--port=${options.devServerPort}`);
20
+ }
21
+ if (options.debug) {
22
+ args.push(`--debug`);
23
+ }
24
+ if (options.manual) {
25
+ args.push(`--manual`);
26
+ }
27
+ if (options.tlsKey) {
28
+ args.push(`--tls-key=${options.tlsKey}`);
29
+ }
30
+ if (options.tlsCert) {
31
+ args.push(`--tls-cert=${options.tlsCert}`);
32
+ }
33
+ return args;
34
+ }
35
+ function serveExecutor(schema, context) {
36
+ return tslib_1.__asyncGenerator(this, arguments, function* serveExecutor_1() {
37
+ const options = normalizeOptions(schema);
38
+ const projectRoot = context.workspace.projects[context.projectName].root;
39
+ const remixBin = require.resolve('@remix-run/dev/dist/cli');
40
+ const args = buildRemixDevArgs(options);
41
+ // Cast to any to overwrite NODE_ENV
42
+ process.env.NODE_ENV = process.env.NODE_ENV
43
+ ? process.env.NODE_ENV
44
+ : 'development';
45
+ process.env.PORT = `${options.port}`;
46
+ yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues((0, async_iterable_1.createAsyncIterable)(({ done, next, error }) => tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ const server = (0, node_child_process_1.fork)(remixBin, ['dev', ...args], {
48
+ cwd: (0, node_path_1.join)(devkit_1.workspaceRoot, projectRoot),
49
+ stdio: 'inherit',
50
+ });
51
+ server.once('exit', (code) => {
52
+ if (code === 0) {
53
+ done();
54
+ }
55
+ else {
56
+ error(new Error(`Remix app exited with code ${code}`));
57
+ }
58
+ });
59
+ const killServer = () => {
60
+ if (server.connected) {
61
+ server.kill('SIGTERM');
62
+ }
63
+ };
64
+ process.on('exit', () => killServer());
65
+ process.on('SIGINT', () => killServer());
66
+ process.on('SIGTERM', () => killServer());
67
+ process.on('SIGHUP', () => killServer());
68
+ yield (0, wait_for_port_open_1.waitForPortOpen)(options.port);
69
+ next({
70
+ success: true,
71
+ baseUrl: `http://localhost:${options.port}`,
72
+ });
73
+ })))));
74
+ });
75
+ }
76
+ exports.default = serveExecutor;
77
+ //# sourceMappingURL=serve.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.impl.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/executors/serve/serve.impl.ts"],"names":[],"mappings":"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"}
@@ -305,27 +305,18 @@ module.exports = {
305
305
 
306
306
  exports[`Remix Application Integrated Repo --unitTestRunner should generate the correct files for testing using vitest 2`] = `
307
307
  "/// <reference types=\\"vitest\\" />
308
+ import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
308
309
  import react from '@vitejs/plugin-react';
309
310
  import { defineConfig } from 'vite';
310
- import viteTsConfigPaths from 'vite-tsconfig-paths';
311
311
 
312
312
  export default defineConfig({
313
313
  cacheDir: '../../node_modules/.vite/test',
314
314
 
315
- plugins: [
316
- react(),
317
- viteTsConfigPaths({
318
- root: '../../',
319
- }),
320
- ],
315
+ plugins: [react(), nxViteTsPaths()],
321
316
 
322
317
  // Uncomment this if you are using workers.
323
318
  // worker: {
324
- // plugins: [
325
- // viteTsConfigPaths({
326
- // root: '../../',
327
- // }),
328
- // ],
319
+ // plugins: [ nxViteTsPaths() ],
329
320
  // },
330
321
 
331
322
  test: {
@@ -563,27 +554,18 @@ module.exports = {
563
554
 
564
555
  exports[`Remix Application Standalone Project Repo --unitTestRunner should generate the correct files for testing using vitest 2`] = `
565
556
  "/// <reference types=\\"vitest\\" />
557
+ import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
566
558
  import react from '@vitejs/plugin-react';
567
559
  import { defineConfig } from 'vite';
568
- import viteTsConfigPaths from 'vite-tsconfig-paths';
569
560
 
570
561
  export default defineConfig({
571
562
  cacheDir: './node_modules/.vite/test',
572
563
 
573
- plugins: [
574
- react(),
575
- viteTsConfigPaths({
576
- root: './',
577
- }),
578
- ],
564
+ plugins: [react(), nxViteTsPaths()],
579
565
 
580
566
  // Uncomment this if you are using workers.
581
567
  // worker: {
582
- // plugins: [
583
- // viteTsConfigPaths({
584
- // root: './',
585
- // }),
586
- // ],
568
+ // plugins: [ nxViteTsPaths() ],
587
569
  // },
588
570
 
589
571
  test: {
@@ -17,15 +17,16 @@ function default_1(tree, _options) {
17
17
  tags: options.parsedTags,
18
18
  targets: {
19
19
  build: {
20
- command: `remix build`,
20
+ executor: '@nx/remix:build',
21
+ outputs: ['{options.outputPath}'],
21
22
  options: {
22
- cwd: options.projectRoot,
23
+ outputPath: (0, devkit_1.joinPathFragments)('dist', options.projectRoot),
23
24
  },
24
25
  },
25
26
  serve: {
26
- command: `remix dev`,
27
+ executor: `@nx/remix:serve`,
27
28
  options: {
28
- cwd: options.projectRoot,
29
+ port: 4200,
29
30
  },
30
31
  },
31
32
  start: {
@@ -1 +1 @@
1
- {"version":3,"file":"application.impl.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/generators/application/application.impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.impl.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/generators/application/application.impl.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- import { Tree } from '@nx/devkit';
2
- export default function (tree: Tree, options: any): Promise<() => Promise<void>>;
1
+ import { GeneratorCallback, Tree } from '@nx/devkit';
2
+ import { CypressGeneratorSchema } from './schema';
3
+ export default function (tree: Tree, options: CypressGeneratorSchema): Promise<GeneratorCallback>;
@@ -4,20 +4,22 @@ const tslib_1 = require("tslib");
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const package_json_1 = require("nx/package.json");
6
6
  function default_1(tree, options) {
7
+ var _a, _b, _c, _d;
7
8
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
+ (_a = options.baseUrl) !== null && _a !== void 0 ? _a : (options.baseUrl = 'http://localhost:3000');
8
10
  const { cypressInitGenerator, cypressProjectGenerator } = (0, devkit_1.ensurePackage)('@nx/cypress', package_json_1.version);
9
11
  const initSideEffects = yield cypressInitGenerator(tree, {});
10
12
  const projSideEffects = yield cypressProjectGenerator(tree, Object.assign(Object.assign({}, options), { standaloneConfig: true }));
11
- const config = (0, devkit_1.readProjectConfiguration)(tree, options.name);
12
- tree.delete((0, devkit_1.joinPathFragments)(config.sourceRoot, 'support', 'app.po.ts'));
13
- tree.write((0, devkit_1.joinPathFragments)(config.sourceRoot, 'e2e', 'app.cy.ts'), `describe('webapp', () => {
13
+ const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.name);
14
+ tree.delete((0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, 'support', 'app.po.ts'));
15
+ tree.write((0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, 'e2e', 'app.cy.ts'), `describe('webapp', () => {
14
16
  beforeEach(() => cy.visit('/'));
15
17
 
16
18
  it('should display welcome message', () => {
17
19
  cy.get('h1').contains('Welcome to Remix');
18
20
  });
19
21
  });`);
20
- const supportFilePath = (0, devkit_1.joinPathFragments)(config.sourceRoot, 'support', 'e2e.ts');
22
+ const supportFilePath = (0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, 'support', 'e2e.ts');
21
23
  const supportContent = tree.read(supportFilePath, 'utf-8');
22
24
  tree.write(supportFilePath, `${supportContent}
23
25
 
@@ -34,6 +36,26 @@ Cypress.on("uncaught:exception", (err) => {
34
36
  return false;
35
37
  }
36
38
  });`);
39
+ // run-commands won't emit { success: true, baseUrl: '...' } to Cypress executor.
40
+ // We'll wire it up manually and skip serve from Cypress.
41
+ projectConfig.targets.e2e.options.skipServe = true;
42
+ projectConfig.targets.e2e.options.baseUrl =
43
+ (_b = options.baseUrl) !== null && _b !== void 0 ? _b : 'http://localhost:3000';
44
+ projectConfig.targets.e2e.dependsOn = ['dev-server'];
45
+ delete projectConfig.targets.e2e.options.devServerTarget;
46
+ (_d = (_c = projectConfig.targets.e2e) === null || _c === void 0 ? void 0 : _c.configurations) === null || _d === void 0 ? true : delete _d.production.devServerTarget;
47
+ projectConfig.targets['dev-server'] = {
48
+ command: `nx serve ${options.project}`,
49
+ options: {
50
+ readyWhen: 'Server started',
51
+ },
52
+ configurations: {
53
+ production: {
54
+ command: `nx serve ${options.project} --configuration=production`,
55
+ },
56
+ },
57
+ };
58
+ (0, devkit_1.updateProjectConfiguration)(tree, options.name, projectConfig);
37
59
  // returning this in case the cypress generator has any side effects
38
60
  return () => tslib_1.__awaiter(this, void 0, void 0, function* () {
39
61
  yield initSideEffects();
@@ -1 +1 @@
1
- {"version":3,"file":"cypress.impl.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/generators/cypress/cypress.impl.ts"],"names":[],"mappings":";;;AAAA,uCAKoB;AAEpB,kDAAuD;AAEvD,mBAA+B,IAAU,EAAE,OAAY;;QACrD,MAAM,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,GAAG,IAAA,sBAAa,EACrE,aAAa,EACb,sBAAS,CACV,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC,IAAI,kCACrD,OAAO,KACV,gBAAgB,EAAE,IAAI,IACtB,CAAC;QAEH,MAAM,MAAM,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK,CACR,IAAA,0BAAiB,EAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,EACxD;;;;;;IAMA,CACD,CAAC;QAEF,MAAM,eAAe,GAAG,IAAA,0BAAiB,EACvC,MAAM,CAAC,UAAU,EACjB,SAAS,EACT,QAAQ,CACT,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC,KAAK,CACR,eAAe,EACf,GAAG,cAAc;;;;;;;;;;;;;;IAcjB,CACD,CAAC;QAEF,oEAAoE;QACpE,OAAO,GAAS,EAAE;YAChB,MAAM,eAAe,EAAE,CAAC;YACxB,MAAM,eAAe,EAAE,CAAC;QAC1B,CAAC,CAAA,CAAC;IACJ,CAAC;CAAA;AAxDD,4BAwDC"}
1
+ {"version":3,"file":"cypress.impl.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/generators/cypress/cypress.impl.ts"],"names":[],"mappings":";;;AAAA,uCAOoB;AAEpB,kDAAuD;AAGvD,mBACE,IAAU,EACV,OAA+B;;;QAE/B,MAAA,OAAO,CAAC,OAAO,oCAAf,OAAO,CAAC,OAAO,GAAK,uBAAuB,EAAC;QAC5C,MAAM,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,GAAG,IAAA,sBAAa,EACrE,aAAa,EACb,sBAAS,CACV,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC,IAAI,kCACrD,OAAO,KACV,gBAAgB,EAAE,IAAI,IACtB,CAAC;QAEH,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CACT,IAAA,0BAAiB,EAAC,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CACpE,CAAC;QACF,IAAI,CAAC,KAAK,CACR,IAAA,0BAAiB,EAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,EAC/D;;;;;;IAMA,CACD,CAAC;QAEF,MAAM,eAAe,GAAG,IAAA,0BAAiB,EACvC,aAAa,CAAC,UAAU,EACxB,SAAS,EACT,QAAQ,CACT,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC,KAAK,CACR,eAAe,EACf,GAAG,cAAc;;;;;;;;;;;;;;IAcjB,CACD,CAAC;QAEF,iFAAiF;QACjF,yDAAyD;QACzD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QACnD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;YACvC,MAAA,OAAO,CAAC,OAAO,mCAAI,uBAAuB,CAAC;QAC7C,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,YAAY,CAAC,CAAC;QACrD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC;QAClD,MAAA,MAAA,aAAa,CAAC,OAAO,CAAC,GAAG,0CAAE,cAAc,+CAAE,UAAU,CAAC,eAAe,CAAC;QAC7E,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG;YACpC,OAAO,EAAE,YAAY,OAAO,CAAC,OAAO,EAAE;YACtC,OAAO,EAAE;gBACP,SAAS,EAAE,gBAAgB;aAC5B;YACD,cAAc,EAAE;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE,YAAY,OAAO,CAAC,OAAO,6BAA6B;iBAClE;aACF;SACF,CAAC;QACF,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAE9D,oEAAoE;QACpE,OAAO,GAAS,EAAE;YAChB,MAAM,eAAe,EAAE,CAAC;YACxB,MAAM,eAAe,EAAE,CAAC;QAC1B,CAAC,CAAA,CAAC;;CACH;AAnFD,4BAmFC"}
@@ -0,0 +1,10 @@
1
+ export interface CypressGeneratorSchema {
2
+ project: string;
3
+ name: string;
4
+ baseUrl?: string;
5
+ directory?: string;
6
+ linter?: 'none' | 'eslint';
7
+ js?: boolean;
8
+ skipFormat?: boolean;
9
+ setParserOptionsProject?: boolean;
10
+ }
@@ -4,5 +4,8 @@ export interface NormalizedSchema extends RemixGeneratorSchema {
4
4
  appName: string;
5
5
  projectRoot: string;
6
6
  parsedTags: string[];
7
+ unitTestRunner?: 'jest' | 'none' | 'vitest';
8
+ e2eTestRunner?: 'cypress' | 'none';
9
+ js?: boolean;
7
10
  }
8
11
  export declare function normalizeOptions(tree: Tree, options: RemixGeneratorSchema): NormalizedSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../../../../../../../packages/remix/src/generators/preset/lib/normalize-options.ts"],"names":[],"mappings":";;;AASA,SAAgB,gBAAgB,CAC9B,IAAU,EACV,OAA6B;IAE7B,sKAAsK;IACtK,6EAA6E;IAC7E,+KAA+K;IAC/K,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7B,MAAM,WAAW,GAAG,YAAY,OAAO,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI;QAC7B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,CAAC,CAAC,EAAE,CAAC;IAEP,uCACK,OAAO,KACV,OAAO;QACP,WAAW;QACX,UAAU,IACV;AACJ,CAAC;AAnBD,4CAmBC"}
1
+ {"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../../../../../../../packages/remix/src/generators/preset/lib/normalize-options.ts"],"names":[],"mappings":";;;AAYA,SAAgB,gBAAgB,CAC9B,IAAU,EACV,OAA6B;IAE7B,sKAAsK;IACtK,6EAA6E;IAC7E,+KAA+K;IAC/K,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7B,MAAM,WAAW,GAAG,YAAY,OAAO,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI;QAC7B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,CAAC,CAAC,EAAE,CAAC;IAEP,uCACK,OAAO,KACV,OAAO;QACP,WAAW;QACX,UAAU,IACV;AACJ,CAAC;AAnBD,4CAmBC"}
@@ -7,6 +7,7 @@ const application_impl_1 = require("../application/application.impl");
7
7
  const setup_impl_1 = require("../setup/setup.impl");
8
8
  const normalize_options_1 = require("./lib/normalize-options");
9
9
  function default_1(tree, _options) {
10
+ var _a, _b, _c;
10
11
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
12
  const options = (0, normalize_options_1.normalizeOptions)(tree, _options);
12
13
  const tasks = [];
@@ -17,6 +18,9 @@ function default_1(tree, _options) {
17
18
  tags: options.tags,
18
19
  skipFormat: true,
19
20
  rootProject: true,
21
+ unitTestRunner: (_a = options.unitTestRunner) !== null && _a !== void 0 ? _a : 'vitest',
22
+ e2eTestRunner: (_b = options.e2eTestRunner) !== null && _b !== void 0 ? _b : 'cypress',
23
+ js: (_c = options.js) !== null && _c !== void 0 ? _c : false,
20
24
  });
21
25
  tasks.push(appGenTask);
22
26
  tree.delete('apps');
@@ -1 +1 @@
1
- {"version":3,"file":"preset.impl.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/generators/preset/preset.impl.ts"],"names":[],"mappings":";;;AAAA,uCAAkE;AAElE,uCAA8C;AAC9C,sEAAmE;AACnE,oDAAiD;AACjD,+DAA2D;AAG3D,mBAA+B,IAAU,EAAE,QAA8B;;QACvE,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,KAAK,GAAwB,EAAE,CAAC;QAEtC,MAAM,YAAY,GAAG,MAAM,IAAA,oBAAc,EAAC,IAAI,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzB,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAoB,EAAC,IAAI,EAAE;YAClD,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,OAAO,IAAA,yBAAgB,EAAC,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;CAAA;AArBD,4BAqBC"}
1
+ {"version":3,"file":"preset.impl.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/generators/preset/preset.impl.ts"],"names":[],"mappings":";;;AAAA,uCAAkE;AAElE,uCAA8C;AAC9C,sEAAmE;AACnE,oDAAiD;AACjD,+DAA2D;AAG3D,mBAA+B,IAAU,EAAE,QAA8B;;;QACvE,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,KAAK,GAAwB,EAAE,CAAC;QAEtC,MAAM,YAAY,GAAG,MAAM,IAAA,oBAAc,EAAC,IAAI,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzB,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAoB,EAAC,IAAI,EAAE;YAClD,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,QAAQ;YAClD,aAAa,EAAE,MAAA,OAAO,CAAC,aAAa,mCAAI,SAAS;YACjD,EAAE,EAAE,MAAA,OAAO,CAAC,EAAE,mCAAI,KAAK;SACxB,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,OAAO,IAAA,yBAAgB,EAAC,GAAG,KAAK,CAAC,CAAC;;CACnC;AAxBD,4BAwBC"}
@@ -1,9 +1,11 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`Storybook Configuration it should create a storybook configuration and use react-vite framework with testing framework jest 1`] = `
4
- "const config = {
4
+ "import type { StorybookConfig } from '@storybook/react-vite';
5
+
6
+ const config: StorybookConfig = {
5
7
  stories: ['../src/lib/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
6
- addons: ['@storybook/addon-essentials'],
8
+ addons: ['@storybook/addon-essentials', '@storybook/addon-interactions'],
7
9
  framework: {
8
10
  name: '@storybook/react-vite',
9
11
  options: {
@@ -23,9 +25,11 @@ export default config;
23
25
  `;
24
26
 
25
27
  exports[`Storybook Configuration it should create a storybook configuration and use react-vite framework with testing framework none 1`] = `
26
- "const config = {
28
+ "import type { StorybookConfig } from '@storybook/react-vite';
29
+
30
+ const config: StorybookConfig = {
27
31
  stories: ['../src/lib/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
28
- addons: ['@storybook/addon-essentials'],
32
+ addons: ['@storybook/addon-essentials', '@storybook/addon-interactions'],
29
33
  framework: {
30
34
  name: '@storybook/react-vite',
31
35
  options: {
@@ -45,9 +49,11 @@ export default config;
45
49
  `;
46
50
 
47
51
  exports[`Storybook Configuration it should create a storybook configuration and use react-vite framework with testing framework vitest 1`] = `
48
- "const config = {
52
+ "import type { StorybookConfig } from '@storybook/react-vite';
53
+
54
+ const config: StorybookConfig = {
49
55
  stories: ['../src/lib/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
50
- addons: ['@storybook/addon-essentials'],
56
+ addons: ['@storybook/addon-essentials', '@storybook/addon-interactions'],
51
57
  framework: {
52
58
  name: '@storybook/react-vite',
53
59
  options: {