@nx/remix 16.3.1 → 16.4.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 (29) hide show
  1. package/generators.json +19 -3
  2. package/package.json +3 -2
  3. package/plugins/component-testing/index.d.ts +31 -0
  4. package/plugins/component-testing/index.js +59 -0
  5. package/plugins/component-testing/index.js.map +1 -0
  6. package/src/generators/application/application.impl.js +1 -0
  7. package/src/generators/application/application.impl.js.map +1 -1
  8. package/src/generators/application/lib/update-unit-test-config.js +1 -0
  9. package/src/generators/application/lib/update-unit-test-config.js.map +1 -1
  10. package/src/generators/cypress-component-configuration/cypress-component-configuration.impl.d.ts +3 -0
  11. package/src/generators/cypress-component-configuration/cypress-component-configuration.impl.js +25 -0
  12. package/src/generators/cypress-component-configuration/cypress-component-configuration.impl.js.map +1 -0
  13. package/src/generators/cypress-component-configuration/files/cypress.config.ts__tmpl__ +6 -0
  14. package/src/generators/cypress-component-configuration/schema.d.ts +5 -0
  15. package/src/generators/cypress-component-configuration/schema.json +41 -0
  16. package/src/generators/library/lib/add-unit-testing.js +1 -0
  17. package/src/generators/library/lib/add-unit-testing.js.map +1 -1
  18. package/src/generators/storybook-configuration/__snapshots__/storybook-configuration.impl.spec.ts.snap +67 -0
  19. package/src/generators/storybook-configuration/files/vite.config.ts__tpl__ +15 -0
  20. package/src/generators/storybook-configuration/schema.d.ts +15 -0
  21. package/src/generators/storybook-configuration/schema.json +96 -0
  22. package/src/generators/storybook-configuration/storybook-configuration.impl.d.ts +3 -0
  23. package/src/generators/storybook-configuration/storybook-configuration.impl.js +19 -0
  24. package/src/generators/storybook-configuration/storybook-configuration.impl.js.map +1 -0
  25. package/src/index.d.ts +4 -0
  26. package/src/index.js +4 -0
  27. package/src/index.js.map +1 -1
  28. package/src/utils/testing-config-utils.js +28 -15
  29. package/src/utils/testing-config-utils.js.map +1 -1
package/generators.json CHANGED
@@ -2,7 +2,9 @@
2
2
  "$schema": "http://json-schema.org/schema",
3
3
  "name": "NxRemix",
4
4
  "version": "0.0.1",
5
- "extends": ["@nx/react"],
5
+ "extends": [
6
+ "@nx/react"
7
+ ],
6
8
  "generators": {
7
9
  "preset": {
8
10
  "implementation": "./src/generators/preset/preset.impl",
@@ -20,14 +22,23 @@
20
22
  "implementation": "./src/generators/application/application.impl",
21
23
  "schema": "./src/generators/application/schema.json",
22
24
  "description": "Generate a new Remix application",
23
- "aliases": ["app"],
25
+ "aliases": [
26
+ "app"
27
+ ],
24
28
  "x-type": "application"
25
29
  },
30
+ "cypress-component-configuration": {
31
+ "implementation": "./src/generators/cypress-component-configuration/cypress-component-configuration.impl",
32
+ "schema": "./src/generators/cypress-component-configuration/schema.json",
33
+ "description": "Generate a Cypress Component Testing configuration for a Remix project"
34
+ },
26
35
  "library": {
27
36
  "implementation": "./src/generators/library/library.impl",
28
37
  "schema": "./src/generators/library/schema.json",
29
38
  "description": "Generate a new library",
30
- "aliases": ["lib"],
39
+ "aliases": [
40
+ "lib"
41
+ ],
31
42
  "x-type": "library"
32
43
  },
33
44
  "route": {
@@ -60,6 +71,11 @@
60
71
  "schema": "./src/generators/setup-tailwind/schema.json",
61
72
  "description": "Generates a TailwindCSS configuration for the Remix application"
62
73
  },
74
+ "storybook-configuration": {
75
+ "implementation": "./src/generators/storybook-configuration/storybook-configuration.impl",
76
+ "schema": "./src/generators/storybook-configuration/schema.json",
77
+ "description": "Generates a Storybook configuration for a Remix application"
78
+ },
63
79
  "meta": {
64
80
  "implementation": "./src/generators/meta/meta.impl",
65
81
  "schema": "./src/generators/meta/schema.json",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/remix",
3
- "version": "16.3.1",
3
+ "version": "16.4.0",
4
4
  "main": "src/index.js",
5
5
  "generators": "./generators.json",
6
6
  "dependencies": {
@@ -9,7 +9,8 @@
9
9
  "@nx/react": "^16.0.3",
10
10
  "@phenomnomnominal/tsquery": "^5.0.1",
11
11
  "tslib": "^2.3.1",
12
- "@nrwl/remix": "16.3.1"
12
+ "vite": "4.3.9",
13
+ "@nrwl/remix": "16.4.0"
13
14
  },
14
15
  "ng-update": {
15
16
  "requirements": {},
@@ -0,0 +1,31 @@
1
+ type ViteDevServer = {
2
+ framework: 'react';
3
+ bundler: 'vite';
4
+ viteConfig?: any;
5
+ };
6
+ /**
7
+ * Remix nx preset for Cypress Component Testing
8
+ *
9
+ * This preset contains the base configuration
10
+ * for your component tests that nx recommends.
11
+ * including a devServer that supports nx workspaces.
12
+ * you can easily extend this within your cypress config via spreading the preset
13
+ * @example
14
+ * export default defineConfig({
15
+ * component: {
16
+ * ...nxComponentTestingPreset(__dirname)
17
+ * // add your own config here
18
+ * }
19
+ * })
20
+ *
21
+ * @param pathToConfig will be used for loading project options and to construct the output paths for videos and screenshots
22
+ */
23
+ export declare function nxComponentTestingPreset(pathToConfig: string): {
24
+ specPattern: string;
25
+ devServer: ViteDevServer;
26
+ videosFolder: string;
27
+ screenshotsFolder: string;
28
+ video: boolean;
29
+ chromeWebSecurity: boolean;
30
+ };
31
+ export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nxComponentTestingPreset = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const cypress_preset_1 = require("@nx/cypress/plugins/cypress-preset");
6
+ const devkit_1 = require("@nx/devkit");
7
+ const fs_1 = require("fs");
8
+ const path_1 = require("path");
9
+ /**
10
+ * Remix nx preset for Cypress Component Testing
11
+ *
12
+ * This preset contains the base configuration
13
+ * for your component tests that nx recommends.
14
+ * including a devServer that supports nx workspaces.
15
+ * you can easily extend this within your cypress config via spreading the preset
16
+ * @example
17
+ * export default defineConfig({
18
+ * component: {
19
+ * ...nxComponentTestingPreset(__dirname)
20
+ * // add your own config here
21
+ * }
22
+ * })
23
+ *
24
+ * @param pathToConfig will be used for loading project options and to construct the output paths for videos and screenshots
25
+ */
26
+ function nxComponentTestingPreset(pathToConfig) {
27
+ const normalizedProjectRootPath = ['.ts', '.js'].some((ext) => pathToConfig.endsWith(ext))
28
+ ? pathToConfig
29
+ : (0, path_1.dirname)(pathToConfig);
30
+ return Object.assign(Object.assign({}, (0, cypress_preset_1.nxBaseCypressPreset)(pathToConfig)), { specPattern: 'src/**/*.cy.{js,jsx,ts,tsx}', devServer: Object.assign(Object.assign({}, { framework: 'react', bundler: 'vite' }), { viteConfig: () => tslib_1.__awaiter(this, void 0, void 0, function* () {
31
+ const viteConfigPath = findViteConfig(normalizedProjectRootPath);
32
+ const { mergeConfig, loadConfigFromFile, searchForWorkspaceRoot } = yield Promise.resolve().then(() => require('vite'));
33
+ const resolved = yield loadConfigFromFile({
34
+ mode: 'watch',
35
+ command: 'serve',
36
+ }, viteConfigPath);
37
+ return mergeConfig(resolved.config, {
38
+ server: {
39
+ fs: {
40
+ allow: [
41
+ searchForWorkspaceRoot(normalizedProjectRootPath),
42
+ devkit_1.workspaceRoot,
43
+ (0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, 'node_modules/vite'),
44
+ ],
45
+ },
46
+ },
47
+ });
48
+ }) }) });
49
+ }
50
+ exports.nxComponentTestingPreset = nxComponentTestingPreset;
51
+ function findViteConfig(projectRootFullPath) {
52
+ const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];
53
+ for (const ext of allowsExt) {
54
+ if ((0, fs_1.existsSync)((0, path_1.join)(projectRootFullPath, `vite.config.${ext}`))) {
55
+ return (0, path_1.join)(projectRootFullPath, `vite.config.${ext}`);
56
+ }
57
+ }
58
+ }
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/remix/plugins/component-testing/index.ts"],"names":[],"mappings":";;;;AAAA,uEAAyE;AACzE,uCAA8D;AAE9D,2BAAgC;AAChC,+BAAqC;AAQrC;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,wBAAwB,CAAC,YAAoB;IAQ3D,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5D,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC3B;QACC,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,IAAA,cAAO,EAAC,YAAY,CAAC,CAAC;IAE1B,uCACK,IAAA,oCAAmB,EAAC,YAAY,CAAC,KACpC,WAAW,EAAE,6BAA6B,EAC1C,SAAS,kCACH,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAY,KACrD,UAAU,EAAE,GAAS,EAAE;gBACrB,MAAM,cAAc,GAAG,cAAc,CAAC,yBAAyB,CAAC,CAAC;gBAEjE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,GAC/D,2CAAa,MAAM,EAAC,CAAC;gBAEvB,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACvC;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB,EACD,cAAc,CACf,CAAC;gBACF,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE;oBAClC,MAAM,EAAE;wBACN,EAAE,EAAE;4BACF,KAAK,EAAE;gCACL,sBAAsB,CAAC,yBAAyB,CAAC;gCACjD,sBAAa;gCACb,IAAA,0BAAiB,EAAC,sBAAa,EAAE,mBAAmB,CAAC;6BACtD;yBACF;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAA,OAEH;AACJ,CAAC;AA9CD,4DA8CC;AAED,SAAS,cAAc,CAAC,mBAA2B;IACjD,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAE3D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;QAC3B,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,mBAAmB,EAAE,eAAe,GAAG,EAAE,CAAC,CAAC,EAAE;YAC/D,OAAO,IAAA,WAAI,EAAC,mBAAmB,EAAE,eAAe,GAAG,EAAE,CAAC,CAAC;SACxD;KACF;AACH,CAAC"}
@@ -84,6 +84,7 @@ function default_1(tree, _options) {
84
84
  coverageProvider: 'c8',
85
85
  inSourceTests: false,
86
86
  skipFormat: true,
87
+ testEnvironment: 'jsdom',
87
88
  });
88
89
  tasks.push(vitestTask);
89
90
  }
@@ -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":";;;AAAA,uCAcoB;AACpB,mFAAmF;AACnF,mDAU8B;AAC9B,0DAAuD;AACvD,+BAA+D;AAG/D,mBAA+B,IAAU,EAAE,QAAgC;;QACzE,MAAM,OAAO,GAAG,IAAA,sBAAgB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,KAAK,GAAwB,EAAE,CAAC;QAEtC,IAAA,gCAAuB,EAAC,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE;YACjD,IAAI,EAAE,OAAO,CAAC,WAAW;YACzB,UAAU,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE;YACpC,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,OAAO,CAAC,UAAU;YACxB,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,OAAO,EAAE,aAAa;oBACtB,OAAO,EAAE;wBACP,GAAG,EAAE,OAAO,CAAC,WAAW;qBACzB;iBACF;gBACD,KAAK,EAAE;oBACL,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE;wBACP,GAAG,EAAE,OAAO,CAAC,WAAW;qBACzB;iBACF;gBACD,KAAK,EAAE;oBACL,SAAS,EAAE,CAAC,OAAO,CAAC;oBACpB,OAAO,EAAE,mBAAmB;oBAC5B,OAAO,EAAE;wBACP,GAAG,EAAE,OAAO,CAAC,WAAW;qBACzB;iBACF;gBACD,SAAS,EAAE;oBACT,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE;wBACP,GAAG,EAAE,OAAO,CAAC,WAAW;qBACzB;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAA,qCAA4B,EAC9C,IAAI,EACJ;YACE,iBAAiB,EAAE,uBAAY;YAC/B,kBAAkB,EAAE,uBAAY;YAChC,kBAAkB,EAAE,uBAAY;YAChC,KAAK,EAAE,uBAAY;YACnB,KAAK,EAAE,uBAAY;YACnB,WAAW,EAAE,0BAAe;SAC7B,EACD;YACE,gBAAgB,EAAE,uBAAY;YAC9B,0BAA0B,EAAE,uBAAY;YACxC,cAAc,EAAE,4BAAiB;YACjC,kBAAkB,EAAE,+BAAoB;YACxC,MAAM,EAAE,wBAAa;YACrB,UAAU,EAAE,4BAAiB;SAC9B,CACF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExB,MAAM,IAAI,mCACL,OAAO,KACV,IAAI,EAAE,EAAE,EACR,cAAc,EAAE,IAAA,uBAAc,EAAC,OAAO,CAAC,WAAW,CAAC,EACnD,YAAY,EAAZ,uBAAY;YACZ,YAAY,EAAZ,uBAAY;YACZ,YAAY,EAAZ,uBAAY;YACZ,eAAe,EAAf,0BAAe;YACf,iBAAiB,EAAjB,4BAAiB;YACjB,oBAAoB,EAApB,+BAAoB;YACpB,aAAa,EAAb,wBAAa;YACb,iBAAiB,EAAjB,4BAAiB,GAClB,CAAC;QAEF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,cAAc,CAAC,EAC5C,OAAO,CAAC,WAAW,EACnB,IAAI,CACL,CAAC;QAEF,IAAI,OAAO,CAAC,WAAW,EAAE;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,CACR,YAAY,EACZ,GAAG,SAAS,uCAAuC,CACpD,CAAC;SACH;aAAM;YACL,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,kBAAkB,CAAC,EAChD,OAAO,CAAC,WAAW,EACnB,IAAI,CACL,CAAC;SACH;QAED,IAAI,OAAO,CAAC,cAAc,KAAK,MAAM,EAAE;YACrC,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE;gBACvC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,sBAAa,EACvC,UAAU,EACV,IAAA,4BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,CAC9B,CAAC;gBAEF,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE;oBAC7C,WAAW,EAAE,OAAO;oBACpB,OAAO,EAAE,OAAO,CAAC,WAAW;oBAC5B,gBAAgB,EAAE,IAAI;oBACtB,aAAa,EAAE,KAAK;oBACpB,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,OAAO;iBACzB,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACxB;iBAAM;gBACL,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAA,sBAAa,EAC5C,UAAU,EACV,IAAA,4BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,CAC9B,CAAC;gBAEF,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE;oBAChD,OAAO,EAAE,OAAO,CAAC,WAAW;oBAC5B,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,MAAM;oBACjB,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;gBAEH,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtB;YAED,MAAM,cAAc,GAAG,IAAA,0BAAoB,EACzC,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,cAAc,CACvB,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC5B;QAED,IAAI,OAAO,CAAC,EAAE,EAAE;YACd,IAAA,aAAI,EAAC,IAAI,CAAC,CAAC;SACZ;QAED,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;YAC5D,+EAA+E;YAC/E,MAAM,gBAAgB,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;YAC9D,IAAA,mBAAU,EAAC,IAAI,EAAE,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;;gBACzC,OAAO,IAAI,CAAC,OAAO,CAAC;gBACpB,IAAI,CAAC,eAAe,iDACf,gBAAgB,CAAC,eAAe,GAChC,IAAI,CAAC,eAAe;oBACvB,iCAAiC;oBACjC,wFAAwF;oBACxF,KAAK,EAAE;wBACL,KAAK,EAAE,CAAC,SAAS,CAAC;qBACnB,GACF,CAAC;gBACF,IAAI,CAAC,OAAO,GAAG;oBACb,GAAG,CAAC,MAAA,gBAAgB,CAAC,OAAO,mCAAI,EAAE,CAAC;oBACnC,GAAG,CAAC,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC;iBACxB,CAAC;gBACF,IAAI,CAAC,OAAO,GAAG;oBACb,GAAG,CAAC,MAAA,gBAAgB,CAAC,OAAO,mCAAI,EAAE,CAAC;oBACnC,GAAG,CAAC,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC;iBACxB,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SACnC;aAAM;YACL,yFAAyF;YACzF,IAAA,sCAAmB,EAAC,IAAI,CAAC,CAAC;SAC3B;QAED,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE;YACvC,MAAM,YAAY,GAAG,MAAM,IAAA,sBAAgB,EAAC,IAAI,EAAE;gBAChD,OAAO,EAAE,OAAO,CAAC,WAAW;gBAC5B,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,MAAM;aACjE,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1B;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,IAAA,yBAAgB,EAAC,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;CAAA;AAtLD,4BAsLC"}
@@ -23,6 +23,7 @@ function updateUnitTestConfig(tree, pathToRoot, unitTestRunner) {
23
23
  '@testing-library/jest-dom': versions_1.testingLibraryJestDomVersion,
24
24
  '@testing-library/react': versions_1.testingLibraryReactVersion,
25
25
  '@testing-library/user-event': versions_1.testingLibraryUserEventsVersion,
26
+ '@remix-run/node': (0, versions_1.getRemixVersion)(tree),
26
27
  });
27
28
  }
28
29
  exports.updateUnitTestConfig = updateUnitTestConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"update-unit-test-config.js","sourceRoot":"","sources":["../../../../../../../packages/remix/src/generators/application/lib/update-unit-test-config.ts"],"names":[],"mappings":";;;AAAA,uCAKoB;AACpB,8EAI6C;AAC7C,sDAIiC;AAEjC,SAAgB,oBAAoB,CAClC,IAAU,EACV,UAAkB,EAClB,cAAiC;IAEjC,MAAM,eAAe,GAAG,IAAA,0BAAiB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,CACR,eAAe,EACf,IAAA,qBAAY,EAAA;;;oBAGI,CACjB,CAAC;IAEF,IAAI,cAAc,KAAK,QAAQ,EAAE;QAC/B,MAAM,gBAAgB,GAAG,IAAA,0BAAiB,EAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACzE,IAAA,6CAAsB,EACpB,IAAI,EACJ,gBAAgB,EAChB,wDAAwD,CACzD,CAAC;QACF,IAAA,0CAAmB,EAAC,IAAI,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;KAChE;SAAM,IAAI,cAAc,KAAK,MAAM,EAAE;QACpC,MAAM,gBAAgB,GAAG,IAAA,0BAAiB,EAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACzE,IAAA,0CAAmB,EAAC,IAAI,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAAC;KACxE;IAED,OAAO,IAAA,qCAA4B,EACjC,IAAI,EACJ,EAAE,EACF;QACE,2BAA2B,EAAE,uCAA4B;QACzD,wBAAwB,EAAE,qCAA0B;QACpD,6BAA6B,EAAE,0CAA+B;KAC/D,CACF,CAAC;AACJ,CAAC;AApCD,oDAoCC"}
1
+ {"version":3,"file":"update-unit-test-config.js","sourceRoot":"","sources":["../../../../../../../packages/remix/src/generators/application/lib/update-unit-test-config.ts"],"names":[],"mappings":";;;AAAA,uCAKoB;AACpB,8EAI6C;AAC7C,sDAKiC;AAEjC,SAAgB,oBAAoB,CAClC,IAAU,EACV,UAAkB,EAClB,cAAiC;IAEjC,MAAM,eAAe,GAAG,IAAA,0BAAiB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,CACR,eAAe,EACf,IAAA,qBAAY,EAAA;;;oBAGI,CACjB,CAAC;IAEF,IAAI,cAAc,KAAK,QAAQ,EAAE;QAC/B,MAAM,gBAAgB,GAAG,IAAA,0BAAiB,EAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACzE,IAAA,6CAAsB,EACpB,IAAI,EACJ,gBAAgB,EAChB,wDAAwD,CACzD,CAAC;QACF,IAAA,0CAAmB,EAAC,IAAI,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;KAChE;SAAM,IAAI,cAAc,KAAK,MAAM,EAAE;QACpC,MAAM,gBAAgB,GAAG,IAAA,0BAAiB,EAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACzE,IAAA,0CAAmB,EAAC,IAAI,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAAC;KACxE;IAED,OAAO,IAAA,qCAA4B,EACjC,IAAI,EACJ,EAAE,EACF;QACE,2BAA2B,EAAE,uCAA4B;QACzD,wBAAwB,EAAE,qCAA0B;QACpD,6BAA6B,EAAE,0CAA+B;QAC9D,iBAAiB,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC;KACzC,CACF,CAAC;AACJ,CAAC;AArCD,oDAqCC"}
@@ -0,0 +1,3 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ import { type CypressComponentConfigurationSchema } from './schema';
3
+ export default function cypressComponentConfigurationGenerator(tree: Tree, options: CypressComponentConfigurationSchema): Promise<void>;
@@ -0,0 +1,25 @@
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 path_1 = require("path");
6
+ const versions_1 = require("../../utils/versions");
7
+ function cypressComponentConfigurationGenerator(tree, options) {
8
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
+ const { cypressComponentConfigGenerator } = (0, devkit_1.ensurePackage)('@nx/react', (0, versions_1.getPackageVersion)(tree, 'nx'));
10
+ yield cypressComponentConfigGenerator(tree, {
11
+ project: options.project,
12
+ generateTests: options.generateTests,
13
+ skipFormat: true,
14
+ bundler: 'vite',
15
+ buildTarget: '',
16
+ });
17
+ const project = (0, devkit_1.readProjectConfiguration)(tree, options.project);
18
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, './files'), project.root, { tmpl: '' });
19
+ if (!options.skipFormat) {
20
+ yield (0, devkit_1.formatFiles)(tree);
21
+ }
22
+ });
23
+ }
24
+ exports.default = cypressComponentConfigurationGenerator;
25
+ //# sourceMappingURL=cypress-component-configuration.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cypress-component-configuration.impl.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/generators/cypress-component-configuration/cypress-component-configuration.impl.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AACpB,+BAA4B;AAC5B,mDAAyD;AAGzD,SAA8B,sCAAsC,CAClE,IAAU,EACV,OAA4C;;QAE5C,MAAM,EAAE,+BAA+B,EAAE,GAAG,IAAA,sBAAa,EAEvD,WAAW,EAAE,IAAA,4BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE9C,MAAM,+BAA+B,CAAC,IAAI,EAAE;YAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhE,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;IACH,CAAC;CAAA;AAvBD,yDAuBC"}
@@ -0,0 +1,6 @@
1
+ import {defineConfig} from 'cypress';
2
+ import {nxComponentTestingPreset} from '@nx/remix/plugins/component-testing';
3
+
4
+ export default defineConfig({
5
+ component: nxComponentTestingPreset(__filename),
6
+ });
@@ -0,0 +1,5 @@
1
+ export interface CypressComponentConfigurationSchema {
2
+ project: string;
3
+ generateTests?: boolean;
4
+ skipFormat?: boolean;
5
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "cli": "nx",
4
+ "$id": "NxRemixCypressComponentTestConfiguration",
5
+ "title": "Add Cypress component testing",
6
+ "description": "Add a Cypress component testing configuration to an existing project.",
7
+ "type": "object",
8
+ "examples": [
9
+ {
10
+ "command": "nx g @nx/remix:cypress-component-configuration --project=my-remix-project",
11
+ "description": "Add component testing to your Remix project"
12
+ },
13
+ {
14
+ "command": "nx g @nx/remix:cypress-component-configuration --project=my-remix-project --generate-tests",
15
+ "description": "Add component testing to your Remix project and generate component tests for your existing components"
16
+ }
17
+ ],
18
+ "properties": {
19
+ "project": {
20
+ "type": "string",
21
+ "description": "The name of the project to add cypress component testing configuration to",
22
+ "x-dropdown": "projects",
23
+ "x-prompt": "What project should we add Cypress component testing to?",
24
+ "x-priority": "important"
25
+ },
26
+ "generateTests": {
27
+ "type": "boolean",
28
+ "description": "Generate default component tests for existing components in the project",
29
+ "x-prompt": "Automatically generate tests for components declared in this project?",
30
+ "default": false,
31
+ "x-priority": "important"
32
+ },
33
+ "skipFormat": {
34
+ "type": "boolean",
35
+ "description": "Skip formatting files",
36
+ "default": false,
37
+ "x-priority": "internal"
38
+ }
39
+ },
40
+ "required": ["project"]
41
+ }
@@ -27,6 +27,7 @@ function addUnitTestingSetup(tree, options) {
27
27
  '@testing-library/jest-dom': versions_1.testingLibraryJestDomVersion,
28
28
  '@testing-library/react': versions_1.testingLibraryReactVersion,
29
29
  '@testing-library/user-event': versions_1.testingLibraryUserEventsVersion,
30
+ '@remix-run/node': (0, versions_1.getRemixVersion)(tree),
30
31
  });
31
32
  }
32
33
  exports.addUnitTestingSetup = addUnitTestingSetup;
@@ -1 +1 @@
1
- {"version":3,"file":"add-unit-testing.js","sourceRoot":"","sources":["../../../../../../../packages/remix/src/generators/library/lib/add-unit-testing.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AACpB,8EAG6C;AAC7C,sDAIiC;AAGjC,SAAgB,mBAAmB,CAAC,IAAU,EAAE,OAA4B;IAC1E,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAA,iCAAwB,EACpD,IAAI,EACJ,OAAO,CAAC,WAAW,CACpB,CAAC;IACF,MAAM,eAAe,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC5E,IAAI,qBAAqB,GAAG,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;QAChC,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;KAC7D;IAED,IAAI,CAAC,KAAK,CACR,eAAe,EACf,IAAA,qBAAY,EAAA,GAAG,qBAAqB;;;oBAGpB,CACjB,CAAC;IAEF,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE;QACvC,MAAM,kBAAkB,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5E,IAAA,0CAAmB,EAAC,IAAI,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;KACtE;SAAM,IAAI,OAAO,CAAC,cAAc,KAAK,MAAM,EAAE;QAC5C,MAAM,gBAAgB,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC1E,IAAA,0CAAmB,EAAC,IAAI,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;KACpE;IAED,OAAO,IAAA,qCAA4B,EACjC,IAAI,EACJ,EAAE,EACF;QACE,2BAA2B,EAAE,uCAA4B;QACzD,wBAAwB,EAAE,qCAA0B;QACpD,6BAA6B,EAAE,0CAA+B;KAC/D,CACF,CAAC;AACJ,CAAC;AArCD,kDAqCC"}
1
+ {"version":3,"file":"add-unit-testing.js","sourceRoot":"","sources":["../../../../../../../packages/remix/src/generators/library/lib/add-unit-testing.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AACpB,8EAG6C;AAC7C,sDAKiC;AAGjC,SAAgB,mBAAmB,CAAC,IAAU,EAAE,OAA4B;IAC1E,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAA,iCAAwB,EACpD,IAAI,EACJ,OAAO,CAAC,WAAW,CACpB,CAAC;IACF,MAAM,eAAe,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC5E,IAAI,qBAAqB,GAAG,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;QAChC,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;KAC7D;IAED,IAAI,CAAC,KAAK,CACR,eAAe,EACf,IAAA,qBAAY,EAAA,GAAG,qBAAqB;;;oBAGpB,CACjB,CAAC;IAEF,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ,EAAE;QACvC,MAAM,kBAAkB,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC5E,IAAA,0CAAmB,EAAC,IAAI,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;KACtE;SAAM,IAAI,OAAO,CAAC,cAAc,KAAK,MAAM,EAAE;QAC5C,MAAM,gBAAgB,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC1E,IAAA,0CAAmB,EAAC,IAAI,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;KACpE;IAED,OAAO,IAAA,qCAA4B,EACjC,IAAI,EACJ,EAAE,EACF;QACE,2BAA2B,EAAE,uCAA4B;QACzD,wBAAwB,EAAE,qCAA0B;QACpD,6BAA6B,EAAE,0CAA+B;QAC9D,iBAAiB,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC;KACzC,CACF,CAAC;AACJ,CAAC;AAtCD,kDAsCC"}
@@ -0,0 +1,67 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Storybook Configuration it should create a storybook configuration and use react-vite framework with testing framework jest 1`] = `
4
+ "const config = {
5
+ stories: ['../src/lib/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
6
+ addons: ['@storybook/addon-essentials'],
7
+ framework: {
8
+ name: '@storybook/react-vite',
9
+ options: {
10
+ builder: {
11
+ viteConfigPath: '',
12
+ },
13
+ },
14
+ },
15
+ };
16
+
17
+ export default config;
18
+
19
+ // To customize your Vite configuration you can use the viteFinal field.
20
+ // Check https://storybook.js.org/docs/react/builders/vite#configuration
21
+ // and https://nx.dev/packages/storybook/documents/custom-builder-configs
22
+ "
23
+ `;
24
+
25
+ exports[`Storybook Configuration it should create a storybook configuration and use react-vite framework with testing framework none 1`] = `
26
+ "const config = {
27
+ stories: ['../src/lib/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
28
+ addons: ['@storybook/addon-essentials'],
29
+ framework: {
30
+ name: '@storybook/react-vite',
31
+ options: {
32
+ builder: {
33
+ viteConfigPath: '',
34
+ },
35
+ },
36
+ },
37
+ };
38
+
39
+ export default config;
40
+
41
+ // To customize your Vite configuration you can use the viteFinal field.
42
+ // Check https://storybook.js.org/docs/react/builders/vite#configuration
43
+ // and https://nx.dev/packages/storybook/documents/custom-builder-configs
44
+ "
45
+ `;
46
+
47
+ exports[`Storybook Configuration it should create a storybook configuration and use react-vite framework with testing framework vitest 1`] = `
48
+ "const config = {
49
+ stories: ['../src/lib/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
50
+ addons: ['@storybook/addon-essentials'],
51
+ framework: {
52
+ name: '@storybook/react-vite',
53
+ options: {
54
+ builder: {
55
+ viteConfigPath: '',
56
+ },
57
+ },
58
+ },
59
+ };
60
+
61
+ export default config;
62
+
63
+ // To customize your Vite configuration you can use the viteFinal field.
64
+ // Check https://storybook.js.org/docs/react/builders/vite#configuration
65
+ // and https://nx.dev/packages/storybook/documents/custom-builder-configs
66
+ "
67
+ `;
@@ -0,0 +1,15 @@
1
+ /// <reference types="vitest" />
2
+ import {defineConfig} from 'vite';
3
+ import react from '@vitejs/plugin-react';
4
+ import viteTsConfigPaths from 'vite-tsconfig-paths';
5
+
6
+ export default defineConfig({
7
+ cacheDir: '../../../node_modules/.vite/storybook-generator-test',
8
+
9
+ plugins: [
10
+ react(),
11
+ viteTsConfigPaths({
12
+ root: '../../../',
13
+ }),
14
+ ],
15
+ })
@@ -0,0 +1,15 @@
1
+ import { Linter } from '@nx/linter';
2
+
3
+ export interface StorybookConfigurationSchema {
4
+ name: string;
5
+ configureCypress: boolean;
6
+ generateStories?: boolean;
7
+ generateCypressSpecs?: boolean;
8
+ js?: boolean;
9
+ tsConfiguration?: boolean;
10
+ linter?: Linter;
11
+ cypressDirectory?: string;
12
+ ignorePaths?: string[];
13
+ configureTestRunner?: boolean;
14
+ configureStaticServe?: boolean;
15
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "cli": "nx",
4
+ "$id": "NxRemixStorybookConfigure",
5
+ "title": "Remix Storybook Configuration",
6
+ "description": "Set up Storybook for a Remix library.",
7
+ "type": "object",
8
+ "properties": {
9
+ "name": {
10
+ "type": "string",
11
+ "aliases": [
12
+ "project",
13
+ "projectName"
14
+ ],
15
+ "description": "Project for which to generate Storybook configuration.",
16
+ "$default": {
17
+ "$source": "argv",
18
+ "index": 0
19
+ },
20
+ "x-prompt": "For which project do you want to generate Storybook configuration?",
21
+ "x-dropdown": "projects",
22
+ "x-priority": "important"
23
+ },
24
+ "configureCypress": {
25
+ "type": "boolean",
26
+ "description": "Run the cypress-configure generator.",
27
+ "x-prompt": "Configure a cypress e2e app to run against the storybook instance?",
28
+ "default": true,
29
+ "x-priority": "important"
30
+ },
31
+ "generateStories": {
32
+ "type": "boolean",
33
+ "description": "Automatically generate `*.stories.ts` files for components declared in this project?",
34
+ "x-prompt": "Automatically generate *.stories.ts files for components declared in this project?",
35
+ "default": true,
36
+ "x-priority": "important"
37
+ },
38
+ "generateCypressSpecs": {
39
+ "type": "boolean",
40
+ "description": "Automatically generate test files in the Cypress E2E app generated by the `cypress-configure` generator.",
41
+ "x-prompt": "Automatically generate test files in the Cypress E2E app generated by the cypress-configure generator?",
42
+ "default": true,
43
+ "x-priority": "important"
44
+ },
45
+ "configureStaticServe": {
46
+ "type": "boolean",
47
+ "description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.",
48
+ "x-prompt": "Configure a static file server for the storybook instance?",
49
+ "default": true,
50
+ "x-priority": "important"
51
+ },
52
+ "cypressDirectory": {
53
+ "type": "string",
54
+ "description": "A directory where the Cypress project will be placed. Placed at the root by default."
55
+ },
56
+ "js": {
57
+ "type": "boolean",
58
+ "description": "Generate JavaScript story files rather than TypeScript story files.",
59
+ "default": false
60
+ },
61
+ "tsConfiguration": {
62
+ "type": "boolean",
63
+ "description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.",
64
+ "default": false
65
+ },
66
+ "linter": {
67
+ "description": "The tool to use for running lint checks.",
68
+ "type": "string",
69
+ "enum": [
70
+ "eslint"
71
+ ],
72
+ "default": "eslint"
73
+ },
74
+ "ignorePaths": {
75
+ "type": "array",
76
+ "description": "Paths to ignore when looking for components.",
77
+ "items": {
78
+ "type": "string",
79
+ "description": "Path to ignore."
80
+ },
81
+ "examples": [
82
+ "**/**/src/**/not-stories/**",
83
+ "libs/my-lib/**/*.something.ts",
84
+ "**/**/src/**/*.other.*",
85
+ "libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts"
86
+ ]
87
+ },
88
+ "configureTestRunner": {
89
+ "type": "boolean",
90
+ "description": "Add a Storybook Test-Runner target."
91
+ }
92
+ },
93
+ "required": [
94
+ "name"
95
+ ]
96
+ }
@@ -0,0 +1,3 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ import type { StorybookConfigurationSchema } from './schema';
3
+ export default function remixStorybookConfiguration(tree: Tree, schema: StorybookConfigurationSchema): Promise<import("@nx/devkit").GeneratorCallback>;
@@ -0,0 +1,19 @@
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 path_1 = require("path");
6
+ const versions_1 = require("../../utils/versions");
7
+ function remixStorybookConfiguration(tree, schema) {
8
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
+ const { root } = (0, devkit_1.readProjectConfiguration)(tree, schema.name);
10
+ if (!tree.exists((0, devkit_1.joinPathFragments)(root, 'vite.config.ts'))) {
11
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, 'files'), root, { tpl: '' });
12
+ }
13
+ const { storybookConfigurationGenerator } = (0, devkit_1.ensurePackage)('@nx/react', (0, versions_1.getPackageVersion)(tree, 'nx'));
14
+ const task = yield storybookConfigurationGenerator(tree, schema);
15
+ return task;
16
+ });
17
+ }
18
+ exports.default = remixStorybookConfiguration;
19
+ //# sourceMappingURL=storybook-configuration.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storybook-configuration.impl.js","sourceRoot":"","sources":["../../../../../../packages/remix/src/generators/storybook-configuration/storybook-configuration.impl.ts"],"names":[],"mappings":";;;AAAA,uCAMoB;AACpB,+BAA4B;AAC5B,mDAAyD;AAGzD,SAA8B,2BAA2B,CACvD,IAAU,EACV,MAAoC;;QAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAE7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE;YAC3D,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;SAClE;QAED,MAAM,EAAE,+BAA+B,EAAE,GAAG,IAAA,sBAAa,EAEvD,WAAW,EAAE,IAAA,4BAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE9C,MAAM,IAAI,GAAG,MAAM,+BAA+B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEjE,OAAO,IAAI,CAAC;IACd,CAAC;CAAA;AAjBD,8CAiBC"}
package/src/index.d.ts CHANGED
@@ -1,11 +1,15 @@
1
1
  export * from './generators/action/action.impl';
2
2
  export * from './generators/application/application.impl';
3
+ export * from './generators/cypress-component-configuration/cypress-component-configuration.impl';
3
4
  export * from './generators/cypress/cypress.impl';
5
+ export * from './generators/error-boundary/error-boundary.impl';
4
6
  export * from './generators/library/library.impl';
5
7
  export * from './generators/loader/loader.impl';
6
8
  export * from './generators/meta/meta.impl';
7
9
  export * from './generators/preset/preset.impl';
8
10
  export * from './generators/resource-route/resource-route.impl';
9
11
  export * from './generators/route/route.impl';
12
+ export * from './generators/setup-tailwind/setup-tailwind.impl';
13
+ export * from './generators/storybook-configuration/storybook-configuration.impl';
10
14
  export * from './generators/style/style.impl';
11
15
  export { createWatchPaths } from './utils/create-watch-paths';
package/src/index.js CHANGED
@@ -4,13 +4,17 @@ exports.createWatchPaths = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./generators/action/action.impl"), exports);
6
6
  tslib_1.__exportStar(require("./generators/application/application.impl"), exports);
7
+ tslib_1.__exportStar(require("./generators/cypress-component-configuration/cypress-component-configuration.impl"), exports);
7
8
  tslib_1.__exportStar(require("./generators/cypress/cypress.impl"), exports);
9
+ tslib_1.__exportStar(require("./generators/error-boundary/error-boundary.impl"), exports);
8
10
  tslib_1.__exportStar(require("./generators/library/library.impl"), exports);
9
11
  tslib_1.__exportStar(require("./generators/loader/loader.impl"), exports);
10
12
  tslib_1.__exportStar(require("./generators/meta/meta.impl"), exports);
11
13
  tslib_1.__exportStar(require("./generators/preset/preset.impl"), exports);
12
14
  tslib_1.__exportStar(require("./generators/resource-route/resource-route.impl"), exports);
13
15
  tslib_1.__exportStar(require("./generators/route/route.impl"), exports);
16
+ tslib_1.__exportStar(require("./generators/setup-tailwind/setup-tailwind.impl"), exports);
17
+ tslib_1.__exportStar(require("./generators/storybook-configuration/storybook-configuration.impl"), exports);
14
18
  tslib_1.__exportStar(require("./generators/style/style.impl"), exports);
15
19
  var create_watch_paths_1 = require("./utils/create-watch-paths");
16
20
  Object.defineProperty(exports, "createWatchPaths", { enumerable: true, get: function () { return create_watch_paths_1.createWatchPaths; } });
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/remix/src/index.ts"],"names":[],"mappings":";;;;AAAA,0EAAgD;AAChD,oFAA0D;AAC1D,4EAAkD;AAClD,4EAAkD;AAClD,0EAAgD;AAChD,sEAA4C;AAC5C,0EAAgD;AAChD,0FAAgE;AAChE,wEAA8C;AAC9C,wEAA8C;AAC9C,iEAA8D;AAArD,sHAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/remix/src/index.ts"],"names":[],"mappings":";;;;AAAA,0EAAgD;AAChD,oFAA0D;AAC1D,4HAAkG;AAClG,4EAAkD;AAClD,0FAAgE;AAChE,4EAAkD;AAClD,0EAAgD;AAChD,sEAA4C;AAC5C,0EAAgD;AAChD,0FAAgE;AAChE,wEAA8C;AAC9C,0FAAgE;AAChE,4GAAkF;AAClF,wEAA8C;AAC9C,iEAA8D;AAArD,sHAAA,gBAAgB,OAAA"}
@@ -2,48 +2,57 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateViteTestIncludes = exports.updateJestTestSetup = exports.updateViteTestSetup = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
- const tsquery_1 = require("@phenomnomnominal/tsquery");
5
+ const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript");
6
+ let tsModule;
6
7
  function updateViteTestSetup(tree, pathToViteConfig, pathToTestSetup) {
8
+ if (!tsModule) {
9
+ tsModule = (0, ensure_typescript_1.ensureTypescript)();
10
+ }
11
+ const { tsquery } = require('@phenomnomnominal/tsquery');
7
12
  const fileContents = tree.read(pathToViteConfig, 'utf-8');
8
- const ast = tsquery_1.tsquery.ast(fileContents);
13
+ const ast = tsquery.ast(fileContents);
9
14
  const TEST_SETUPFILES_SELECTOR = 'PropertyAssignment:has(Identifier[name=test]) PropertyAssignment:has(Identifier[name=setupFiles])';
10
- const nodes = (0, tsquery_1.tsquery)(ast, TEST_SETUPFILES_SELECTOR, {
15
+ const nodes = tsquery(ast, TEST_SETUPFILES_SELECTOR, {
11
16
  visitAllChildren: true,
12
17
  });
18
+ let updatedFileContents = fileContents;
13
19
  if (nodes.length === 0) {
14
20
  const TEST_CONFIG_SELECTOR = 'PropertyAssignment:has(Identifier[name=test]) > ObjectLiteralExpression';
15
- const testConfigNodes = (0, tsquery_1.tsquery)(ast, TEST_CONFIG_SELECTOR, {
21
+ const testConfigNodes = tsquery(ast, TEST_CONFIG_SELECTOR, {
16
22
  visitAllChildren: true,
17
23
  });
18
- const updatedFileContents = (0, devkit_1.stripIndents) `${fileContents.slice(0, testConfigNodes[0].getStart() + 1)}setupFiles: ['${pathToTestSetup}'],${fileContents.slice(testConfigNodes[0].getStart() + 1)}`;
19
- tree.write(pathToViteConfig, updatedFileContents);
24
+ updatedFileContents = (0, devkit_1.stripIndents) `${fileContents.slice(0, testConfigNodes[0].getStart() + 1)}setupFiles: ['${pathToTestSetup}'],${fileContents.slice(testConfigNodes[0].getStart() + 1)}`;
20
25
  }
21
26
  else {
22
- const arrayNodes = (0, tsquery_1.tsquery)(nodes[0], 'ArrayLiteralExpression', {
27
+ const arrayNodes = tsquery(nodes[0], 'ArrayLiteralExpression', {
23
28
  visitAllChildren: true,
24
29
  });
25
30
  if (arrayNodes.length !== 0) {
26
- const updatedFileContents = (0, devkit_1.stripIndents) `${fileContents.slice(0, arrayNodes[0].getStart() + 1)}'${pathToTestSetup}',${fileContents.slice(arrayNodes[0].getStart() + 1)}`;
27
- tree.write(pathToViteConfig, updatedFileContents);
31
+ updatedFileContents = (0, devkit_1.stripIndents) `${fileContents.slice(0, arrayNodes[0].getStart() + 1)}'${pathToTestSetup}',${fileContents.slice(arrayNodes[0].getStart() + 1)}`;
28
32
  }
29
33
  }
34
+ tree.write(pathToViteConfig, updatedFileContents);
30
35
  }
31
36
  exports.updateViteTestSetup = updateViteTestSetup;
32
37
  function updateJestTestSetup(tree, pathToJestConfig, pathToTestSetup) {
38
+ if (!tsModule) {
39
+ tsModule = (0, ensure_typescript_1.ensureTypescript)();
40
+ }
41
+ const { tsquery } = require('@phenomnomnominal/tsquery');
33
42
  const fileContents = tree.read(pathToJestConfig, 'utf-8');
34
- const ast = tsquery_1.tsquery.ast(fileContents);
43
+ const ast = tsquery.ast(fileContents);
35
44
  const TEST_SETUPFILES_SELECTOR = 'PropertyAssignment:has(Identifier[name=setupFilesAfterEnv])';
36
- const nodes = (0, tsquery_1.tsquery)(ast, TEST_SETUPFILES_SELECTOR, {
45
+ const nodes = tsquery(ast, TEST_SETUPFILES_SELECTOR, {
37
46
  visitAllChildren: true,
38
47
  });
39
48
  if (nodes.length === 0) {
40
49
  const CONFIG_SELECTOR = 'ObjectLiteralExpression';
41
- const nodes = (0, tsquery_1.tsquery)(ast, CONFIG_SELECTOR, { visitAllChildren: true });
50
+ const nodes = tsquery(ast, CONFIG_SELECTOR, { visitAllChildren: true });
42
51
  const updatedFileContents = (0, devkit_1.stripIndents) `${fileContents.slice(0, nodes[0].getStart() + 1)}setupFilesAfterEnv: ['${pathToTestSetup}'],${fileContents.slice(nodes[0].getStart() + 1)}`;
43
52
  tree.write(pathToJestConfig, updatedFileContents);
44
53
  }
45
54
  else {
46
- const arrayNodes = (0, tsquery_1.tsquery)(nodes[0], 'ArrayLiteralExpression', {
55
+ const arrayNodes = tsquery(nodes[0], 'ArrayLiteralExpression', {
47
56
  visitAllChildren: true,
48
57
  });
49
58
  if (arrayNodes.length !== 0) {
@@ -54,10 +63,14 @@ function updateJestTestSetup(tree, pathToJestConfig, pathToTestSetup) {
54
63
  }
55
64
  exports.updateJestTestSetup = updateJestTestSetup;
56
65
  function updateViteTestIncludes(tree, pathToViteConfig, includesString) {
66
+ if (!tsModule) {
67
+ tsModule = (0, ensure_typescript_1.ensureTypescript)();
68
+ }
69
+ const { tsquery } = require('@phenomnomnominal/tsquery');
57
70
  const fileContents = tree.read(pathToViteConfig, 'utf-8');
58
- const ast = tsquery_1.tsquery.ast(fileContents);
71
+ const ast = tsquery.ast(fileContents);
59
72
  const TEST_INCLUDE_SELECTOR = 'PropertyAssignment:has(Identifier[name=test]) PropertyAssignment:has(Identifier[name=include])';
60
- const nodes = (0, tsquery_1.tsquery)(ast, TEST_INCLUDE_SELECTOR, { visitAllChildren: true });
73
+ const nodes = tsquery(ast, TEST_INCLUDE_SELECTOR, { visitAllChildren: true });
61
74
  if (nodes.length !== 0) {
62
75
  const updatedFileContents = (0, devkit_1.stripIndents) `${fileContents.slice(0, nodes[0].getStart())}include: ["${includesString}"]${fileContents.slice(nodes[0].getEnd())}`;
63
76
  tree.write(pathToViteConfig, updatedFileContents);
@@ -1 +1 @@
1
- {"version":3,"file":"testing-config-utils.js","sourceRoot":"","sources":["../../../../../packages/remix/src/utils/testing-config-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing-config-utils.js","sourceRoot":"","sources":["../../../../../packages/remix/src/utils/testing-config-utils.ts"],"names":[],"mappings":"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"}