vite-plugin-storybook-nextjs 0.0.11 → 0.0.13--canary.8.d70ae00.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 (24) hide show
  1. package/dist/cache/index.cjs +30 -0
  2. package/dist/headers/cookies.cjs +94 -0
  3. package/dist/headers/headers.cjs +40 -0
  4. package/dist/headers/index.cjs +94 -0
  5. package/dist/{plugins/next-mocks/alias/headers/index.d.ts → headers/index.d.cts} +2 -2
  6. package/dist/index.js +37 -35
  7. package/dist/mocks/storybook.global.js +26 -2
  8. package/dist/navigation/index.cjs +112 -0
  9. package/dist/plugins/next-image/alias/next-image.d.ts +1 -1
  10. package/dist/router/index.cjs +141 -0
  11. package/dist/{plugins/next-mocks/alias/rsc/server-only.js → rsc/server-only.cjs} +3 -1
  12. package/package.json +16 -1
  13. package/dist/plugins/next-mocks/alias/cache/index.js +0 -18
  14. package/dist/plugins/next-mocks/alias/headers/cookies.js +0 -34
  15. package/dist/plugins/next-mocks/alias/headers/headers.js +0 -38
  16. package/dist/plugins/next-mocks/alias/headers/index.js +0 -71
  17. package/dist/plugins/next-mocks/alias/navigation/index.js +0 -74
  18. package/dist/plugins/next-mocks/alias/router/index.js +0 -108
  19. /package/dist/{plugins/next-mocks/alias/cache/index.d.ts → cache/index.d.cts} +0 -0
  20. /package/dist/{plugins/next-mocks/alias/headers/cookies.d.ts → headers/cookies.d.cts} +0 -0
  21. /package/dist/{plugins/next-mocks/alias/headers/headers.d.ts → headers/headers.d.cts} +0 -0
  22. /package/dist/{plugins/next-mocks/alias/navigation/index.d.ts → navigation/index.d.cts} +0 -0
  23. /package/dist/{plugins/next-mocks/alias/router/index.d.ts → router/index.d.cts} +0 -0
  24. /package/dist/{plugins/next-mocks/alias/rsc/server-only.d.ts → rsc/server-only.d.cts} +0 -0
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var test = require('@storybook/test');
6
+ var unstableCache_js = require('next/dist/server/web/spec-extension/unstable-cache.js');
7
+ var unstableNoStore_js = require('next/dist/server/web/spec-extension/unstable-no-store.js');
8
+
9
+ // src/plugins/next-mocks/alias/cache/index.ts
10
+ var revalidatePath = test.fn().mockName("next/cache::revalidatePath");
11
+ var revalidateTag = test.fn().mockName("next/cache::revalidateTag");
12
+ var cacheExports = {
13
+ unstable_cache: unstableCache_js.unstable_cache,
14
+ revalidateTag,
15
+ revalidatePath,
16
+ unstable_noStore: unstableNoStore_js.unstable_noStore
17
+ };
18
+ var cache_default = cacheExports;
19
+
20
+ Object.defineProperty(exports, "unstable_cache", {
21
+ enumerable: true,
22
+ get: function () { return unstableCache_js.unstable_cache; }
23
+ });
24
+ Object.defineProperty(exports, "unstable_noStore", {
25
+ enumerable: true,
26
+ get: function () { return unstableNoStore_js.unstable_noStore; }
27
+ });
28
+ exports.default = cache_default;
29
+ exports.revalidatePath = revalidatePath;
30
+ exports.revalidateTag = revalidateTag;
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ var test = require('@storybook/test');
4
+ var index_js = require('next/dist/compiled/@edge-runtime/cookies/index.js');
5
+ var originalHeaders = require('next/dist/client/components/headers.js');
6
+ var headers_js = require('next/dist/server/web/spec-extension/adapters/headers.js');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var originalHeaders__namespace = /*#__PURE__*/_interopNamespace(originalHeaders);
27
+
28
+ // src/plugins/next-mocks/alias/headers/cookies.ts
29
+ var HeadersAdapterMock = class extends headers_js.HeadersAdapter {
30
+ constructor() {
31
+ super({});
32
+ this.append = test.fn(super.append.bind(this)).mockName(
33
+ "next/headers::headers().append"
34
+ );
35
+ this.delete = test.fn(super.delete.bind(this)).mockName(
36
+ "next/headers::headers().delete"
37
+ );
38
+ this.get = test.fn(super.get.bind(this)).mockName("next/headers::headers().get");
39
+ this.has = test.fn(super.has.bind(this)).mockName("next/headers::headers().has");
40
+ this.set = test.fn(super.set.bind(this)).mockName("next/headers::headers().set");
41
+ this.forEach = test.fn(super.forEach.bind(this)).mockName(
42
+ "next/headers::headers().forEach"
43
+ );
44
+ this.entries = test.fn(super.entries.bind(this)).mockName(
45
+ "next/headers::headers().entries"
46
+ );
47
+ this.keys = test.fn(super.keys.bind(this)).mockName("next/headers::headers().keys");
48
+ this.values = test.fn(super.values.bind(this)).mockName(
49
+ "next/headers::headers().values"
50
+ );
51
+ }
52
+ };
53
+ var headersAdapterMock;
54
+ var headers = () => {
55
+ if (!headersAdapterMock) headersAdapterMock = new HeadersAdapterMock();
56
+ return headersAdapterMock;
57
+ };
58
+ headers.mockRestore = () => {
59
+ headersAdapterMock = new HeadersAdapterMock();
60
+ };
61
+
62
+ // src/plugins/next-mocks/alias/headers/index.ts
63
+ test.fn(originalHeaders__namespace.draftMode).mockName("draftMode");
64
+
65
+ // src/plugins/next-mocks/alias/headers/cookies.ts
66
+ var RequestCookiesMock = class extends index_js.RequestCookies {
67
+ constructor() {
68
+ super(...arguments);
69
+ this.get = test.fn(super.get.bind(this)).mockName("next/headers::cookies().get");
70
+ this.getAll = test.fn(super.getAll.bind(this)).mockName(
71
+ "next/headers::cookies().getAll"
72
+ );
73
+ this.has = test.fn(super.has.bind(this)).mockName("next/headers::cookies().has");
74
+ this.set = test.fn(super.set.bind(this)).mockName("next/headers::cookies().set");
75
+ this.delete = test.fn(super.delete.bind(this)).mockName(
76
+ "next/headers::cookies().delete"
77
+ );
78
+ }
79
+ };
80
+ var requestCookiesMock;
81
+ var cookies = test.fn(() => {
82
+ if (!requestCookiesMock) {
83
+ requestCookiesMock = new RequestCookiesMock(headers());
84
+ }
85
+ return requestCookiesMock;
86
+ }).mockName("next/headers::cookies()");
87
+ var originalRestore = cookies.mockRestore.bind(null);
88
+ cookies.mockRestore = () => {
89
+ originalRestore();
90
+ headers.mockRestore();
91
+ requestCookiesMock = new RequestCookiesMock(headers());
92
+ };
93
+
94
+ exports.cookies = cookies;
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var test = require('@storybook/test');
4
+ var headers_js = require('next/dist/server/web/spec-extension/adapters/headers.js');
5
+
6
+ // src/plugins/next-mocks/alias/headers/headers.ts
7
+ var HeadersAdapterMock = class extends headers_js.HeadersAdapter {
8
+ constructor() {
9
+ super({});
10
+ this.append = test.fn(super.append.bind(this)).mockName(
11
+ "next/headers::headers().append"
12
+ );
13
+ this.delete = test.fn(super.delete.bind(this)).mockName(
14
+ "next/headers::headers().delete"
15
+ );
16
+ this.get = test.fn(super.get.bind(this)).mockName("next/headers::headers().get");
17
+ this.has = test.fn(super.has.bind(this)).mockName("next/headers::headers().has");
18
+ this.set = test.fn(super.set.bind(this)).mockName("next/headers::headers().set");
19
+ this.forEach = test.fn(super.forEach.bind(this)).mockName(
20
+ "next/headers::headers().forEach"
21
+ );
22
+ this.entries = test.fn(super.entries.bind(this)).mockName(
23
+ "next/headers::headers().entries"
24
+ );
25
+ this.keys = test.fn(super.keys.bind(this)).mockName("next/headers::headers().keys");
26
+ this.values = test.fn(super.values.bind(this)).mockName(
27
+ "next/headers::headers().values"
28
+ );
29
+ }
30
+ };
31
+ var headersAdapterMock;
32
+ var headers = () => {
33
+ if (!headersAdapterMock) headersAdapterMock = new HeadersAdapterMock();
34
+ return headersAdapterMock;
35
+ };
36
+ headers.mockRestore = () => {
37
+ headersAdapterMock = new HeadersAdapterMock();
38
+ };
39
+
40
+ exports.headers = headers;
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ var test = require('@storybook/test');
4
+ var originalHeaders = require('next/dist/client/components/headers.js');
5
+ var headers_js = require('next/dist/server/web/spec-extension/adapters/headers.js');
6
+ var index_js = require('next/dist/compiled/@edge-runtime/cookies/index.js');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var originalHeaders__namespace = /*#__PURE__*/_interopNamespace(originalHeaders);
27
+
28
+ // src/plugins/next-mocks/alias/headers/index.ts
29
+ var HeadersAdapterMock = class extends headers_js.HeadersAdapter {
30
+ constructor() {
31
+ super({});
32
+ this.append = test.fn(super.append.bind(this)).mockName(
33
+ "next/headers::headers().append"
34
+ );
35
+ this.delete = test.fn(super.delete.bind(this)).mockName(
36
+ "next/headers::headers().delete"
37
+ );
38
+ this.get = test.fn(super.get.bind(this)).mockName("next/headers::headers().get");
39
+ this.has = test.fn(super.has.bind(this)).mockName("next/headers::headers().has");
40
+ this.set = test.fn(super.set.bind(this)).mockName("next/headers::headers().set");
41
+ this.forEach = test.fn(super.forEach.bind(this)).mockName(
42
+ "next/headers::headers().forEach"
43
+ );
44
+ this.entries = test.fn(super.entries.bind(this)).mockName(
45
+ "next/headers::headers().entries"
46
+ );
47
+ this.keys = test.fn(super.keys.bind(this)).mockName("next/headers::headers().keys");
48
+ this.values = test.fn(super.values.bind(this)).mockName(
49
+ "next/headers::headers().values"
50
+ );
51
+ }
52
+ };
53
+ var headersAdapterMock;
54
+ var headers = () => {
55
+ if (!headersAdapterMock) headersAdapterMock = new HeadersAdapterMock();
56
+ return headersAdapterMock;
57
+ };
58
+ headers.mockRestore = () => {
59
+ headersAdapterMock = new HeadersAdapterMock();
60
+ };
61
+ var RequestCookiesMock = class extends index_js.RequestCookies {
62
+ constructor() {
63
+ super(...arguments);
64
+ this.get = test.fn(super.get.bind(this)).mockName("next/headers::cookies().get");
65
+ this.getAll = test.fn(super.getAll.bind(this)).mockName(
66
+ "next/headers::cookies().getAll"
67
+ );
68
+ this.has = test.fn(super.has.bind(this)).mockName("next/headers::cookies().has");
69
+ this.set = test.fn(super.set.bind(this)).mockName("next/headers::cookies().set");
70
+ this.delete = test.fn(super.delete.bind(this)).mockName(
71
+ "next/headers::cookies().delete"
72
+ );
73
+ }
74
+ };
75
+ var requestCookiesMock;
76
+ var cookies = test.fn(() => {
77
+ if (!requestCookiesMock) {
78
+ requestCookiesMock = new RequestCookiesMock(headers());
79
+ }
80
+ return requestCookiesMock;
81
+ }).mockName("next/headers::cookies()");
82
+ var originalRestore = cookies.mockRestore.bind(null);
83
+ cookies.mockRestore = () => {
84
+ originalRestore();
85
+ headers.mockRestore();
86
+ requestCookiesMock = new RequestCookiesMock(headers());
87
+ };
88
+
89
+ // src/plugins/next-mocks/alias/headers/index.ts
90
+ var draftMode2 = test.fn(originalHeaders__namespace.draftMode).mockName("draftMode");
91
+
92
+ exports.cookies = cookies;
93
+ exports.draftMode = draftMode2;
94
+ exports.headers = headers;
@@ -1,7 +1,7 @@
1
1
  import * as vitest from 'vitest';
2
2
  import * as next_dist_client_components_draft_mode from 'next/dist/client/components/draft-mode';
3
- export { headers } from './headers.js';
4
- export { cookies } from './cookies.js';
3
+ export { headers } from './headers.cjs';
4
+ export { cookies } from './cookies.cjs';
5
5
  import 'next/dist/server/web/spec-extension/adapters/headers.js';
6
6
  import 'next/dist/compiled/@edge-runtime/cookies';
7
7
  import 'next/dist/compiled/@edge-runtime/cookies/index.js';
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ import { getParserOptions } from 'next/dist/build/swc/options.js';
21
21
  import loadConfig from 'next/dist/server/config.js';
22
22
  import { cpus } from 'node:os';
23
23
  import { decode } from 'node:querystring';
24
- import { fileURLToPath, URL as URL$1 } from 'node:url';
24
+ import { fileURLToPath, URL } from 'node:url';
25
25
  import imageSizeOf from 'image-size';
26
26
 
27
27
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
@@ -666,11 +666,6 @@ function vitePluginNextSwc(rootDir, nextConfigResolver) {
666
666
  isServerEnvironment = true;
667
667
  }
668
668
  return {
669
- resolve: {
670
- alias: {
671
- "@opentelemetry/api": "next/dist/compiled/@opentelemetry/api"
672
- }
673
- },
674
669
  // esbuild: {
675
670
  // // We will use Next.js custom SWC transpiler instead of Vite's build-in esbuild
676
671
  // exclude: [/node_modules/, /.m?(t|j)sx?/],
@@ -774,7 +769,7 @@ function vitePluginNextImage(nextConfigResolver) {
774
769
  if (virtualNextImage === id) {
775
770
  return (await fs3.promises.readFile(
776
771
  fileURLToPath(
777
- new URL$1(
772
+ new URL(
778
773
  "./plugins/next-image/alias/next-image.js",
779
774
  import.meta.url
780
775
  )
@@ -784,7 +779,7 @@ function vitePluginNextImage(nextConfigResolver) {
784
779
  if (virtualNextLegacyImage === id) {
785
780
  return (await fs3.promises.readFile(
786
781
  fileURLToPath(
787
- new URL$1(
782
+ new URL(
788
783
  "./plugins/next-image/alias/next-legacy-image.js",
789
784
  import.meta.url
790
785
  )
@@ -794,7 +789,7 @@ function vitePluginNextImage(nextConfigResolver) {
794
789
  if (virtualNextImageDefaultLoader === id) {
795
790
  return (await fs3.promises.readFile(
796
791
  fileURLToPath(
797
- new URL$1(
792
+ new URL(
798
793
  "./plugins/next-image/alias/image-default-loader.js",
799
794
  import.meta.url
800
795
  )
@@ -804,7 +799,7 @@ function vitePluginNextImage(nextConfigResolver) {
804
799
  if (virtualNextImageContext === id) {
805
800
  return (await fs3.promises.readFile(
806
801
  fileURLToPath(
807
- new URL$1(
802
+ new URL(
808
803
  "./plugins/next-image/alias/image-context.js",
809
804
  import.meta.url
810
805
  )
@@ -854,32 +849,38 @@ function vitePluginNextImage(nextConfigResolver) {
854
849
  }
855
850
  };
856
851
  }
857
- var dirname = path.dirname(new URL(import.meta.url).pathname);
858
- var joinDir = (...subPath) => path.join(dirname, "plugins", "next-mocks", "alias", ...subPath);
852
+
853
+ // src/utils.ts
854
+ var VITEST_PLUGIN_NAME = "vite-plugin-storybook-nextjs";
855
+
856
+ // src/plugins/next-mocks/plugin.ts
857
+ var getEntryPoint = (subPath) => `${VITEST_PLUGIN_NAME}/${subPath}`;
858
+ var require3 = createRequire(import.meta.url);
859
+ var alias = {
860
+ "next/headers": getEntryPoint("mocks/headers"),
861
+ "@storybook/nextjs/headers.mock": getEntryPoint("mocks/headers"),
862
+ "next/navigation": getEntryPoint("mocks/navigation"),
863
+ "@storybook/nextjs/navigation.mock": getEntryPoint("mocks/navigation"),
864
+ "next/router": getEntryPoint("mocks/router"),
865
+ "@storybook/nextjs/router.mock": getEntryPoint("mocks/router"),
866
+ "next/cache": getEntryPoint("mocks/cache"),
867
+ "@storybook/nextjs/cache.mock": getEntryPoint("mocks/cache"),
868
+ "server-only": getEntryPoint("mocks/server-only"),
869
+ "@opentelemetry/api": require3.resolve(
870
+ "next/dist/compiled/@opentelemetry/api/index.js"
871
+ )
872
+ };
859
873
  var vitePluginNextMocks = () => ({
860
874
  name: "vite-plugin-next-mocks",
861
875
  config: () => ({
862
876
  resolve: {
863
- alias: {
864
- "next/headers": joinDir("headers", "index.js"),
865
- "@storybook/nextjs/headers.mock": joinDir("headers", "index.js"),
866
- "next/navigation": joinDir("navigation", "index.js"),
867
- "@storybook/nextjs/navigation.mock": joinDir(
868
- "navigation",
869
- "index.js"
870
- ),
871
- "next/router": joinDir("router", "index.js"),
872
- "@storybook/nextjs/router.mock": joinDir("router", "index.js"),
873
- "next/cache": joinDir("cache", "index.js"),
874
- "@storybook/nextjs/cache.mock": joinDir("cache", "index.js"),
875
- "server-only": joinDir("rsc", "server-only.js")
876
- }
877
+ alias
877
878
  }
878
879
  })
879
880
  });
880
881
 
881
882
  // src/index.ts
882
- var require3 = createRequire(import.meta.url);
883
+ var require4 = createRequire(import.meta.url);
883
884
  function VitePlugin({ dir = process.cwd() } = {}) {
884
885
  const resolvedDir = resolve(dir);
885
886
  const nextConfigResolver = Promise.withResolvers();
@@ -905,23 +906,24 @@ function VitePlugin({ dir = process.cwd() } = {}) {
905
906
  },
906
907
  test: {
907
908
  alias: {
908
- "react/jsx-dev-runtime": require3.resolve(
909
+ "react/jsx-dev-runtime": require4.resolve(
909
910
  "next/dist/compiled/react/jsx-dev-runtime.js"
910
911
  ),
911
- "react/jsx-runtime": require3.resolve(
912
+ "react/jsx-runtime": require4.resolve(
912
913
  "next/dist/compiled/react/jsx-runtime.js"
913
914
  ),
914
- react: require3.resolve("next/dist/compiled/react"),
915
- "react-dom/test-utils": require3.resolve(
915
+ react: require4.resolve("next/dist/compiled/react"),
916
+ "react-dom/test-utils": require4.resolve(
916
917
  "next/dist/compiled/react-dom/cjs/react-dom-test-utils.production.js"
917
918
  ),
918
- "react-dom/cjs/react-dom.development.js": require3.resolve(
919
+ "react-dom/cjs/react-dom.development.js": require4.resolve(
919
920
  "next/dist/compiled/react-dom/cjs/react-dom.development.js"
920
921
  ),
921
- "react-dom/client": require3.resolve(
922
+ "react-dom/client": require4.resolve(
922
923
  "next/dist/compiled/react-dom/client.js"
923
924
  ),
924
- "react-dom": require3.resolve("next/dist/compiled/react-dom")
925
+ "react-dom": require4.resolve("next/dist/compiled/react-dom"),
926
+ ...alias
925
927
  }
926
928
  }
927
929
  };
@@ -929,7 +931,7 @@ function VitePlugin({ dir = process.cwd() } = {}) {
929
931
  configResolved(config) {
930
932
  if (!config.test?.browser?.enabled) {
931
933
  config.test.setupFiles = [
932
- require3.resolve("./mocks/storybook.global.js"),
934
+ require4.resolve("./mocks/storybook.global.js"),
933
935
  ...config.test?.setupFiles ?? []
934
936
  ];
935
937
  }
@@ -2,11 +2,35 @@ import { createRequire } from 'node:module';
2
2
  import moduleAlias from 'module-alias';
3
3
 
4
4
  // src/mocks/storybook.global.ts
5
+
6
+ // src/utils.ts
7
+ var VITEST_PLUGIN_NAME = "vite-plugin-storybook-nextjs";
8
+
9
+ // src/plugins/next-mocks/plugin.ts
10
+ var getEntryPoint = (subPath) => `${VITEST_PLUGIN_NAME}/${subPath}`;
5
11
  var require2 = createRequire(import.meta.url);
12
+ var alias = {
13
+ "next/headers": getEntryPoint("mocks/headers"),
14
+ "@storybook/nextjs/headers.mock": getEntryPoint("mocks/headers"),
15
+ "next/navigation": getEntryPoint("mocks/navigation"),
16
+ "@storybook/nextjs/navigation.mock": getEntryPoint("mocks/navigation"),
17
+ "next/router": getEntryPoint("mocks/router"),
18
+ "@storybook/nextjs/router.mock": getEntryPoint("mocks/router"),
19
+ "next/cache": getEntryPoint("mocks/cache"),
20
+ "@storybook/nextjs/cache.mock": getEntryPoint("mocks/cache"),
21
+ "server-only": getEntryPoint("mocks/server-only"),
22
+ "@opentelemetry/api": require2.resolve(
23
+ "next/dist/compiled/@opentelemetry/api/index.js"
24
+ )
25
+ };
26
+
27
+ // src/mocks/storybook.global.ts
28
+ var require3 = createRequire(import.meta.url);
6
29
  moduleAlias.addAliases({
7
30
  react: "next/dist/compiled/react",
8
- "react-dom/test-utils": require2.resolve(
31
+ "react-dom/test-utils": require3.resolve(
9
32
  "next/dist/compiled/react-dom/cjs/react-dom-test-utils.production.js"
10
33
  ),
11
- "react-dom": "next/dist/compiled/react-dom"
34
+ "react-dom": "next/dist/compiled/react-dom",
35
+ ...alias
12
36
  });
@@ -0,0 +1,112 @@
1
+ 'use strict';
2
+
3
+ var test = require('@storybook/test');
4
+ var actual = require('next/dist/client/components/navigation.js');
5
+ var redirectStatusCode_js = require('next/dist/client/components/redirect-status-code.js');
6
+ var redirect_js = require('next/dist/client/components/redirect.js');
7
+ var previewErrors = require('storybook/internal/preview-errors');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var actual__namespace = /*#__PURE__*/_interopNamespace(actual);
28
+
29
+ // src/plugins/next-mocks/alias/navigation/index.ts
30
+ var navigationAPI;
31
+ var createNavigation = (overrides) => {
32
+ const navigationActions = {
33
+ push: test.fn().mockName("next/navigation::useRouter().push"),
34
+ replace: test.fn().mockName("next/navigation::useRouter().replace"),
35
+ forward: test.fn().mockName("next/navigation::useRouter().forward"),
36
+ back: test.fn().mockName("next/navigation::useRouter().back"),
37
+ prefetch: test.fn().mockName("next/navigation::useRouter().prefetch"),
38
+ refresh: test.fn().mockName("next/navigation::useRouter().refresh")
39
+ };
40
+ if (overrides) {
41
+ for (const key of Object.keys(navigationActions)) {
42
+ if (key in overrides) {
43
+ navigationActions[key] = test.fn((...args) => {
44
+ return overrides[key](...args);
45
+ }).mockName(`useRouter().${key}`);
46
+ }
47
+ }
48
+ }
49
+ navigationAPI = navigationActions;
50
+ return navigationAPI;
51
+ };
52
+ var getRouter = () => {
53
+ if (!navigationAPI) {
54
+ throw new previewErrors.NextjsRouterMocksNotAvailable({
55
+ importType: "next/navigation"
56
+ });
57
+ }
58
+ return navigationAPI;
59
+ };
60
+ var redirect = test.fn(
61
+ (url, type = actual__namespace.RedirectType.push) => {
62
+ throw redirect_js.getRedirectError(url, type, redirectStatusCode_js.RedirectStatusCode.SeeOther);
63
+ }
64
+ ).mockName("next/navigation::redirect");
65
+ var permanentRedirect = test.fn(
66
+ (url, type = actual__namespace.RedirectType.push) => {
67
+ throw redirect_js.getRedirectError(url, type, redirectStatusCode_js.RedirectStatusCode.SeeOther);
68
+ }
69
+ ).mockName("next/navigation::permanentRedirect");
70
+ var useSearchParams2 = test.fn(actual__namespace.useSearchParams).mockName(
71
+ "next/navigation::useSearchParams"
72
+ );
73
+ var usePathname2 = test.fn(actual__namespace.usePathname).mockName(
74
+ "next/navigation::usePathname"
75
+ );
76
+ var useSelectedLayoutSegment2 = test.fn(
77
+ actual__namespace.useSelectedLayoutSegment
78
+ ).mockName("next/navigation::useSelectedLayoutSegment");
79
+ var useSelectedLayoutSegments2 = test.fn(
80
+ actual__namespace.useSelectedLayoutSegments
81
+ ).mockName("next/navigation::useSelectedLayoutSegments");
82
+ var useRouter2 = test.fn(actual__namespace.useRouter).mockName(
83
+ "next/navigation::useRouter"
84
+ );
85
+ var useServerInsertedHTML2 = test.fn(actual__namespace.useServerInsertedHTML).mockName(
86
+ "next/navigation::useServerInsertedHTML"
87
+ );
88
+ var notFound2 = test.fn(actual__namespace.notFound).mockName(
89
+ "next/navigation::notFound"
90
+ );
91
+ var useParams2 = test.fn(actual__namespace.useParams).mockName(
92
+ "next/navigation::useParams"
93
+ );
94
+
95
+ exports.createNavigation = createNavigation;
96
+ exports.getRouter = getRouter;
97
+ exports.notFound = notFound2;
98
+ exports.permanentRedirect = permanentRedirect;
99
+ exports.redirect = redirect;
100
+ exports.useParams = useParams2;
101
+ exports.usePathname = usePathname2;
102
+ exports.useRouter = useRouter2;
103
+ exports.useSearchParams = useSearchParams2;
104
+ exports.useSelectedLayoutSegment = useSelectedLayoutSegment2;
105
+ exports.useSelectedLayoutSegments = useSelectedLayoutSegments2;
106
+ exports.useServerInsertedHTML = useServerInsertedHTML2;
107
+ Object.keys(actual).forEach(function (k) {
108
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
109
+ enumerable: true,
110
+ get: function () { return actual[k]; }
111
+ });
112
+ });
@@ -2,7 +2,7 @@ import * as next_dist_shared_lib_get_img_props from 'next/dist/shared/lib/get-im
2
2
  import * as _NextImage from 'next/image';
3
3
  import React__default from 'next/dist/compiled/react';
4
4
 
5
- declare const MockedNextImage: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, "height" | "width" | "loading" | "ref" | "alt" | "src" | "srcSet"> & {
5
+ declare const MockedNextImage: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, "src" | "srcSet" | "ref" | "alt" | "width" | "height" | "loading"> & {
6
6
  src: string | next_dist_shared_lib_get_img_props.StaticImport;
7
7
  alt: string;
8
8
  width?: number | `${number}` | undefined;
@@ -0,0 +1,141 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var test = require('@storybook/test');
6
+ var singletonRouter = require('next/dist/client/router.js');
7
+ var previewErrors = require('storybook/internal/preview-errors');
8
+ var router = require('next/dist/client/router');
9
+
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n.default = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ var singletonRouter__namespace = /*#__PURE__*/_interopNamespace(singletonRouter);
29
+
30
+ // src/plugins/next-mocks/alias/router/index.ts
31
+ var defaultRouterState = {
32
+ route: "/",
33
+ asPath: "/",
34
+ basePath: "/",
35
+ pathname: "/",
36
+ query: {},
37
+ isFallback: false,
38
+ isLocaleDomain: false,
39
+ isReady: true,
40
+ isPreview: false
41
+ };
42
+ var routerAPI;
43
+ var createRouter = (overrides) => {
44
+ const routerActions = {
45
+ push: test.fn((..._args) => {
46
+ return Promise.resolve(true);
47
+ }).mockName("next/router::useRouter().push"),
48
+ replace: test.fn((..._args) => {
49
+ return Promise.resolve(true);
50
+ }).mockName("next/router::useRouter().replace"),
51
+ reload: test.fn((..._args) => {
52
+ }).mockName(
53
+ "next/router::useRouter().reload"
54
+ ),
55
+ back: test.fn((..._args) => {
56
+ }).mockName(
57
+ "next/router::useRouter().back"
58
+ ),
59
+ forward: test.fn(() => {
60
+ }).mockName("next/router::useRouter().forward"),
61
+ prefetch: test.fn((..._args) => {
62
+ return Promise.resolve();
63
+ }).mockName("next/router::useRouter().prefetch"),
64
+ beforePopState: test.fn((..._args) => {
65
+ }).mockName(
66
+ "next/router::useRouter().beforePopState"
67
+ )
68
+ };
69
+ const routerEvents = {
70
+ on: test.fn((..._args) => {
71
+ }).mockName(
72
+ "next/router::useRouter().events.on"
73
+ ),
74
+ off: test.fn((..._args) => {
75
+ }).mockName(
76
+ "next/router::useRouter().events.off"
77
+ ),
78
+ emit: test.fn((..._args) => {
79
+ }).mockName(
80
+ "next/router::useRouter().events.emit"
81
+ )
82
+ };
83
+ if (overrides) {
84
+ for (const key of Object.keys(routerActions)) {
85
+ if (key in overrides) {
86
+ routerActions[key] = test.fn((...args) => {
87
+ return overrides[key](...args);
88
+ }).mockName(`useRouter().${key}`);
89
+ }
90
+ }
91
+ }
92
+ if (overrides?.events) {
93
+ for (const key of Object.keys(routerEvents)) {
94
+ if (key in routerEvents) {
95
+ routerEvents[key] = test.fn((...args) => {
96
+ return overrides.events[key](...args);
97
+ }).mockName(`useRouter().events.${key}`);
98
+ }
99
+ }
100
+ }
101
+ routerAPI = {
102
+ ...defaultRouterState,
103
+ ...overrides,
104
+ ...routerActions,
105
+ // @ts-expect-error TODO improve typings
106
+ events: routerEvents
107
+ };
108
+ singletonRouter__namespace.default.router = routerAPI;
109
+ for (const cb of singletonRouter__namespace.default.readyCallbacks) {
110
+ cb();
111
+ }
112
+ singletonRouter__namespace.default.readyCallbacks = [];
113
+ return routerAPI;
114
+ };
115
+ var getRouter = () => {
116
+ if (!routerAPI) {
117
+ throw new previewErrors.NextjsRouterMocksNotAvailable({
118
+ importType: "next/router"
119
+ });
120
+ }
121
+ return routerAPI;
122
+ };
123
+ var router_default = singletonRouter__namespace.default;
124
+ var useRouter2 = test.fn(singletonRouter__namespace.useRouter).mockName(
125
+ "next/router::useRouter"
126
+ );
127
+ var withRouter2 = test.fn(singletonRouter__namespace.withRouter).mockName(
128
+ "next/router::withRouter"
129
+ );
130
+
131
+ exports.createRouter = createRouter;
132
+ exports.default = router_default;
133
+ exports.getRouter = getRouter;
134
+ exports.useRouter = useRouter2;
135
+ exports.withRouter = withRouter2;
136
+ Object.keys(router).forEach(function (k) {
137
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
138
+ enumerable: true,
139
+ get: function () { return router[k]; }
140
+ });
141
+ });
@@ -1,4 +1,6 @@
1
+ 'use strict';
2
+
1
3
  // src/plugins/next-mocks/alias/rsc/server-only.ts
2
4
  var server_only_default = {};
3
5
 
4
- export { server_only_default as default };
6
+ module.exports = server_only_default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-storybook-nextjs",
3
- "version": "0.0.11",
3
+ "version": "0.0.13--canary.8.d70ae00.0",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "vite-plugin",
@@ -21,6 +21,21 @@
21
21
  ".": {
22
22
  "types": "./dist/index.d.ts",
23
23
  "import": "./dist/index.js"
24
+ },
25
+ "./mocks/cache": {
26
+ "require": "./dist/cache/index.cjs"
27
+ },
28
+ "./mocks/navigation": {
29
+ "require": "./dist/navigation/index.cjs"
30
+ },
31
+ "./mocks/headers": {
32
+ "require": "./dist/headers/index.cjs"
33
+ },
34
+ "./mocks/router": {
35
+ "require": "./dist/router/index.cjs"
36
+ },
37
+ "./mocks/server-only": {
38
+ "require": "./dist/rsc/server-only.cjs"
24
39
  }
25
40
  },
26
41
  "scripts": {
@@ -1,18 +0,0 @@
1
- import { fn } from '@storybook/test';
2
- import { unstable_cache } from 'next/dist/server/web/spec-extension/unstable-cache.js';
3
- export { unstable_cache } from 'next/dist/server/web/spec-extension/unstable-cache.js';
4
- import { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store.js';
5
- export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store.js';
6
-
7
- // src/plugins/next-mocks/alias/cache/index.ts
8
- var revalidatePath = fn().mockName("next/cache::revalidatePath");
9
- var revalidateTag = fn().mockName("next/cache::revalidateTag");
10
- var cacheExports = {
11
- unstable_cache,
12
- revalidateTag,
13
- revalidatePath,
14
- unstable_noStore
15
- };
16
- var cache_default = cacheExports;
17
-
18
- export { cache_default as default, revalidatePath, revalidateTag };
@@ -1,34 +0,0 @@
1
- import { headers } from '@storybook/nextjs/headers.mock';
2
- import { fn } from '@storybook/test';
3
- import { RequestCookies } from 'next/dist/compiled/@edge-runtime/cookies/index.js';
4
-
5
- // src/plugins/next-mocks/alias/headers/cookies.ts
6
- var RequestCookiesMock = class extends RequestCookies {
7
- constructor() {
8
- super(...arguments);
9
- this.get = fn(super.get.bind(this)).mockName("next/headers::cookies().get");
10
- this.getAll = fn(super.getAll.bind(this)).mockName(
11
- "next/headers::cookies().getAll"
12
- );
13
- this.has = fn(super.has.bind(this)).mockName("next/headers::cookies().has");
14
- this.set = fn(super.set.bind(this)).mockName("next/headers::cookies().set");
15
- this.delete = fn(super.delete.bind(this)).mockName(
16
- "next/headers::cookies().delete"
17
- );
18
- }
19
- };
20
- var requestCookiesMock;
21
- var cookies = fn(() => {
22
- if (!requestCookiesMock) {
23
- requestCookiesMock = new RequestCookiesMock(headers());
24
- }
25
- return requestCookiesMock;
26
- }).mockName("next/headers::cookies()");
27
- var originalRestore = cookies.mockRestore.bind(null);
28
- cookies.mockRestore = () => {
29
- originalRestore();
30
- headers.mockRestore();
31
- requestCookiesMock = new RequestCookiesMock(headers());
32
- };
33
-
34
- export { cookies };
@@ -1,38 +0,0 @@
1
- import { fn } from '@storybook/test';
2
- import { HeadersAdapter } from 'next/dist/server/web/spec-extension/adapters/headers.js';
3
-
4
- // src/plugins/next-mocks/alias/headers/headers.ts
5
- var HeadersAdapterMock = class extends HeadersAdapter {
6
- constructor() {
7
- super({});
8
- this.append = fn(super.append.bind(this)).mockName(
9
- "next/headers::headers().append"
10
- );
11
- this.delete = fn(super.delete.bind(this)).mockName(
12
- "next/headers::headers().delete"
13
- );
14
- this.get = fn(super.get.bind(this)).mockName("next/headers::headers().get");
15
- this.has = fn(super.has.bind(this)).mockName("next/headers::headers().has");
16
- this.set = fn(super.set.bind(this)).mockName("next/headers::headers().set");
17
- this.forEach = fn(super.forEach.bind(this)).mockName(
18
- "next/headers::headers().forEach"
19
- );
20
- this.entries = fn(super.entries.bind(this)).mockName(
21
- "next/headers::headers().entries"
22
- );
23
- this.keys = fn(super.keys.bind(this)).mockName("next/headers::headers().keys");
24
- this.values = fn(super.values.bind(this)).mockName(
25
- "next/headers::headers().values"
26
- );
27
- }
28
- };
29
- var headersAdapterMock;
30
- var headers = () => {
31
- if (!headersAdapterMock) headersAdapterMock = new HeadersAdapterMock();
32
- return headersAdapterMock;
33
- };
34
- headers.mockRestore = () => {
35
- headersAdapterMock = new HeadersAdapterMock();
36
- };
37
-
38
- export { headers };
@@ -1,71 +0,0 @@
1
- import { fn } from '@storybook/test';
2
- import * as originalHeaders from 'next/dist/client/components/headers.js';
3
- import { HeadersAdapter } from 'next/dist/server/web/spec-extension/adapters/headers.js';
4
- import { headers as headers$1 } from '@storybook/nextjs/headers.mock';
5
- import { RequestCookies } from 'next/dist/compiled/@edge-runtime/cookies/index.js';
6
-
7
- // src/plugins/next-mocks/alias/headers/index.ts
8
- var HeadersAdapterMock = class extends HeadersAdapter {
9
- constructor() {
10
- super({});
11
- this.append = fn(super.append.bind(this)).mockName(
12
- "next/headers::headers().append"
13
- );
14
- this.delete = fn(super.delete.bind(this)).mockName(
15
- "next/headers::headers().delete"
16
- );
17
- this.get = fn(super.get.bind(this)).mockName("next/headers::headers().get");
18
- this.has = fn(super.has.bind(this)).mockName("next/headers::headers().has");
19
- this.set = fn(super.set.bind(this)).mockName("next/headers::headers().set");
20
- this.forEach = fn(super.forEach.bind(this)).mockName(
21
- "next/headers::headers().forEach"
22
- );
23
- this.entries = fn(super.entries.bind(this)).mockName(
24
- "next/headers::headers().entries"
25
- );
26
- this.keys = fn(super.keys.bind(this)).mockName("next/headers::headers().keys");
27
- this.values = fn(super.values.bind(this)).mockName(
28
- "next/headers::headers().values"
29
- );
30
- }
31
- };
32
- var headersAdapterMock;
33
- var headers = () => {
34
- if (!headersAdapterMock) headersAdapterMock = new HeadersAdapterMock();
35
- return headersAdapterMock;
36
- };
37
- headers.mockRestore = () => {
38
- headersAdapterMock = new HeadersAdapterMock();
39
- };
40
- var RequestCookiesMock = class extends RequestCookies {
41
- constructor() {
42
- super(...arguments);
43
- this.get = fn(super.get.bind(this)).mockName("next/headers::cookies().get");
44
- this.getAll = fn(super.getAll.bind(this)).mockName(
45
- "next/headers::cookies().getAll"
46
- );
47
- this.has = fn(super.has.bind(this)).mockName("next/headers::cookies().has");
48
- this.set = fn(super.set.bind(this)).mockName("next/headers::cookies().set");
49
- this.delete = fn(super.delete.bind(this)).mockName(
50
- "next/headers::cookies().delete"
51
- );
52
- }
53
- };
54
- var requestCookiesMock;
55
- var cookies = fn(() => {
56
- if (!requestCookiesMock) {
57
- requestCookiesMock = new RequestCookiesMock(headers$1());
58
- }
59
- return requestCookiesMock;
60
- }).mockName("next/headers::cookies()");
61
- var originalRestore = cookies.mockRestore.bind(null);
62
- cookies.mockRestore = () => {
63
- originalRestore();
64
- headers$1.mockRestore();
65
- requestCookiesMock = new RequestCookiesMock(headers$1());
66
- };
67
-
68
- // src/plugins/next-mocks/alias/headers/index.ts
69
- var draftMode2 = fn(originalHeaders.draftMode).mockName("draftMode");
70
-
71
- export { cookies, draftMode2 as draftMode, headers };
@@ -1,74 +0,0 @@
1
- import { fn } from '@storybook/test';
2
- import * as actual from 'next/dist/client/components/navigation.js';
3
- export * from 'next/dist/client/components/navigation.js';
4
- import { RedirectStatusCode } from 'next/dist/client/components/redirect-status-code.js';
5
- import { getRedirectError } from 'next/dist/client/components/redirect.js';
6
- import { NextjsRouterMocksNotAvailable } from 'storybook/internal/preview-errors';
7
-
8
- // src/plugins/next-mocks/alias/navigation/index.ts
9
- var navigationAPI;
10
- var createNavigation = (overrides) => {
11
- const navigationActions = {
12
- push: fn().mockName("next/navigation::useRouter().push"),
13
- replace: fn().mockName("next/navigation::useRouter().replace"),
14
- forward: fn().mockName("next/navigation::useRouter().forward"),
15
- back: fn().mockName("next/navigation::useRouter().back"),
16
- prefetch: fn().mockName("next/navigation::useRouter().prefetch"),
17
- refresh: fn().mockName("next/navigation::useRouter().refresh")
18
- };
19
- if (overrides) {
20
- for (const key of Object.keys(navigationActions)) {
21
- if (key in overrides) {
22
- navigationActions[key] = fn((...args) => {
23
- return overrides[key](...args);
24
- }).mockName(`useRouter().${key}`);
25
- }
26
- }
27
- }
28
- navigationAPI = navigationActions;
29
- return navigationAPI;
30
- };
31
- var getRouter = () => {
32
- if (!navigationAPI) {
33
- throw new NextjsRouterMocksNotAvailable({
34
- importType: "next/navigation"
35
- });
36
- }
37
- return navigationAPI;
38
- };
39
- var redirect = fn(
40
- (url, type = actual.RedirectType.push) => {
41
- throw getRedirectError(url, type, RedirectStatusCode.SeeOther);
42
- }
43
- ).mockName("next/navigation::redirect");
44
- var permanentRedirect = fn(
45
- (url, type = actual.RedirectType.push) => {
46
- throw getRedirectError(url, type, RedirectStatusCode.SeeOther);
47
- }
48
- ).mockName("next/navigation::permanentRedirect");
49
- var useSearchParams2 = fn(actual.useSearchParams).mockName(
50
- "next/navigation::useSearchParams"
51
- );
52
- var usePathname2 = fn(actual.usePathname).mockName(
53
- "next/navigation::usePathname"
54
- );
55
- var useSelectedLayoutSegment2 = fn(
56
- actual.useSelectedLayoutSegment
57
- ).mockName("next/navigation::useSelectedLayoutSegment");
58
- var useSelectedLayoutSegments2 = fn(
59
- actual.useSelectedLayoutSegments
60
- ).mockName("next/navigation::useSelectedLayoutSegments");
61
- var useRouter2 = fn(actual.useRouter).mockName(
62
- "next/navigation::useRouter"
63
- );
64
- var useServerInsertedHTML2 = fn(actual.useServerInsertedHTML).mockName(
65
- "next/navigation::useServerInsertedHTML"
66
- );
67
- var notFound2 = fn(actual.notFound).mockName(
68
- "next/navigation::notFound"
69
- );
70
- var useParams2 = fn(actual.useParams).mockName(
71
- "next/navigation::useParams"
72
- );
73
-
74
- export { createNavigation, getRouter, notFound2 as notFound, permanentRedirect, redirect, useParams2 as useParams, usePathname2 as usePathname, useRouter2 as useRouter, useSearchParams2 as useSearchParams, useSelectedLayoutSegment2 as useSelectedLayoutSegment, useSelectedLayoutSegments2 as useSelectedLayoutSegments, useServerInsertedHTML2 as useServerInsertedHTML };
@@ -1,108 +0,0 @@
1
- import { fn } from '@storybook/test';
2
- import * as singletonRouter from 'next/dist/client/router.js';
3
- import singletonRouter__default from 'next/dist/client/router.js';
4
- import { NextjsRouterMocksNotAvailable } from 'storybook/internal/preview-errors';
5
- export * from 'next/dist/client/router';
6
-
7
- // src/plugins/next-mocks/alias/router/index.ts
8
- var defaultRouterState = {
9
- route: "/",
10
- asPath: "/",
11
- basePath: "/",
12
- pathname: "/",
13
- query: {},
14
- isFallback: false,
15
- isLocaleDomain: false,
16
- isReady: true,
17
- isPreview: false
18
- };
19
- var routerAPI;
20
- var createRouter = (overrides) => {
21
- const routerActions = {
22
- push: fn((..._args) => {
23
- return Promise.resolve(true);
24
- }).mockName("next/router::useRouter().push"),
25
- replace: fn((..._args) => {
26
- return Promise.resolve(true);
27
- }).mockName("next/router::useRouter().replace"),
28
- reload: fn((..._args) => {
29
- }).mockName(
30
- "next/router::useRouter().reload"
31
- ),
32
- back: fn((..._args) => {
33
- }).mockName(
34
- "next/router::useRouter().back"
35
- ),
36
- forward: fn(() => {
37
- }).mockName("next/router::useRouter().forward"),
38
- prefetch: fn((..._args) => {
39
- return Promise.resolve();
40
- }).mockName("next/router::useRouter().prefetch"),
41
- beforePopState: fn((..._args) => {
42
- }).mockName(
43
- "next/router::useRouter().beforePopState"
44
- )
45
- };
46
- const routerEvents = {
47
- on: fn((..._args) => {
48
- }).mockName(
49
- "next/router::useRouter().events.on"
50
- ),
51
- off: fn((..._args) => {
52
- }).mockName(
53
- "next/router::useRouter().events.off"
54
- ),
55
- emit: fn((..._args) => {
56
- }).mockName(
57
- "next/router::useRouter().events.emit"
58
- )
59
- };
60
- if (overrides) {
61
- for (const key of Object.keys(routerActions)) {
62
- if (key in overrides) {
63
- routerActions[key] = fn((...args) => {
64
- return overrides[key](...args);
65
- }).mockName(`useRouter().${key}`);
66
- }
67
- }
68
- }
69
- if (overrides?.events) {
70
- for (const key of Object.keys(routerEvents)) {
71
- if (key in routerEvents) {
72
- routerEvents[key] = fn((...args) => {
73
- return overrides.events[key](...args);
74
- }).mockName(`useRouter().events.${key}`);
75
- }
76
- }
77
- }
78
- routerAPI = {
79
- ...defaultRouterState,
80
- ...overrides,
81
- ...routerActions,
82
- // @ts-expect-error TODO improve typings
83
- events: routerEvents
84
- };
85
- singletonRouter__default.router = routerAPI;
86
- for (const cb of singletonRouter__default.readyCallbacks) {
87
- cb();
88
- }
89
- singletonRouter__default.readyCallbacks = [];
90
- return routerAPI;
91
- };
92
- var getRouter = () => {
93
- if (!routerAPI) {
94
- throw new NextjsRouterMocksNotAvailable({
95
- importType: "next/router"
96
- });
97
- }
98
- return routerAPI;
99
- };
100
- var router_default = singletonRouter__default;
101
- var useRouter2 = fn(singletonRouter.useRouter).mockName(
102
- "next/router::useRouter"
103
- );
104
- var withRouter2 = fn(singletonRouter.withRouter).mockName(
105
- "next/router::withRouter"
106
- );
107
-
108
- export { createRouter, router_default as default, getRouter, useRouter2 as useRouter, withRouter2 as withRouter };