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.
- package/dist/cache/index.cjs +30 -0
- package/dist/headers/cookies.cjs +94 -0
- package/dist/headers/headers.cjs +40 -0
- package/dist/headers/index.cjs +94 -0
- package/dist/{plugins/next-mocks/alias/headers/index.d.ts → headers/index.d.cts} +2 -2
- package/dist/index.js +37 -35
- package/dist/mocks/storybook.global.js +26 -2
- package/dist/navigation/index.cjs +112 -0
- package/dist/plugins/next-image/alias/next-image.d.ts +1 -1
- package/dist/router/index.cjs +141 -0
- package/dist/{plugins/next-mocks/alias/rsc/server-only.js → rsc/server-only.cjs} +3 -1
- package/package.json +16 -1
- package/dist/plugins/next-mocks/alias/cache/index.js +0 -18
- package/dist/plugins/next-mocks/alias/headers/cookies.js +0 -34
- package/dist/plugins/next-mocks/alias/headers/headers.js +0 -38
- package/dist/plugins/next-mocks/alias/headers/index.js +0 -71
- package/dist/plugins/next-mocks/alias/navigation/index.js +0 -74
- package/dist/plugins/next-mocks/alias/router/index.js +0 -108
- /package/dist/{plugins/next-mocks/alias/cache/index.d.ts → cache/index.d.cts} +0 -0
- /package/dist/{plugins/next-mocks/alias/headers/cookies.d.ts → headers/cookies.d.cts} +0 -0
- /package/dist/{plugins/next-mocks/alias/headers/headers.d.ts → headers/headers.d.cts} +0 -0
- /package/dist/{plugins/next-mocks/alias/navigation/index.d.ts → navigation/index.d.cts} +0 -0
- /package/dist/{plugins/next-mocks/alias/router/index.d.ts → router/index.d.cts} +0 -0
- /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.
|
|
4
|
-
export { cookies } from './cookies.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
858
|
-
|
|
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
|
|
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":
|
|
909
|
+
"react/jsx-dev-runtime": require4.resolve(
|
|
909
910
|
"next/dist/compiled/react/jsx-dev-runtime.js"
|
|
910
911
|
),
|
|
911
|
-
"react/jsx-runtime":
|
|
912
|
+
"react/jsx-runtime": require4.resolve(
|
|
912
913
|
"next/dist/compiled/react/jsx-runtime.js"
|
|
913
914
|
),
|
|
914
|
-
react:
|
|
915
|
-
"react-dom/test-utils":
|
|
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":
|
|
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":
|
|
922
|
+
"react-dom/client": require4.resolve(
|
|
922
923
|
"next/dist/compiled/react-dom/client.js"
|
|
923
924
|
),
|
|
924
|
-
"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
|
-
|
|
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":
|
|
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>, "
|
|
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
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-plugin-storybook-nextjs",
|
|
3
|
-
"version": "0.0.
|
|
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 };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|