vite-plugin-storybook-nextjs
Version:
This is a Vite plugin that allows you to use Next.js features in Vite. It is the basis for `@storybook/experimental-nextjs-vite` and should be used when running portable stories in Vitest.
105 lines (97 loc) • 3.44 kB
JavaScript
'use strict';
var index_js = require('next/dist/compiled/@edge-runtime/cookies/index.js');
var test = require('storybook/test');
var draftMode = require('next/dist/server/request/draft-mode');
var headers2 = require('next/dist/server/request/headers');
var headers_js = require('next/dist/server/web/spec-extension/adapters/headers.js');
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var headers2__namespace = /*#__PURE__*/_interopNamespace(headers2);
// src/plugins/next-mocks/alias/headers/cookies.ts
var HeadersAdapterMock = class extends headers_js.HeadersAdapter {
constructor() {
super({});
this.append = test.fn(
super.append.bind(this)
).mockName("next/headers::headers().append");
this.delete = test.fn(super.delete.bind(this)).mockName(
"next/headers::headers().delete"
);
this.get = test.fn(
super.get.bind(this)
).mockName("next/headers::headers().get");
this.has = test.fn(super.has.bind(this)).mockName(
"next/headers::headers().has"
);
this.set = test.fn(
super.set.bind(this)
).mockName("next/headers::headers().set");
this.forEach = test.fn(super.forEach.bind(this)).mockName("next/headers::headers().forEach");
this.entries = test.fn(
super.entries.bind(this)
).mockName("next/headers::headers().entries");
this.keys = test.fn(
super.keys.bind(this)
).mockName("next/headers::headers().keys");
this.values = test.fn(
super.values.bind(this)
).mockName("next/headers::headers().values");
}
};
var headersAdapterMock;
var headers = () => {
if (!headersAdapterMock) headersAdapterMock = new HeadersAdapterMock();
return headersAdapterMock;
};
headers.mockRestore = () => {
headersAdapterMock = new HeadersAdapterMock();
};
// src/plugins/next-mocks/alias/headers/index.ts
test.fn(
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
draftMode.draftMode ?? headers2__namespace.draftMode
).mockName("draftMode");
// src/plugins/next-mocks/alias/headers/cookies.ts
var RequestCookiesMock = class extends index_js.RequestCookies {
constructor() {
super(...arguments);
this.get = test.fn(super.get.bind(this)).mockName("next/headers::cookies().get");
this.getAll = test.fn(super.getAll.bind(this)).mockName("next/headers::cookies().getAll");
this.has = test.fn(super.has.bind(this)).mockName(
"next/headers::cookies().has"
);
this.set = test.fn(super.set.bind(this)).mockName("next/headers::cookies().set");
this.delete = test.fn(
super.delete.bind(this)
).mockName("next/headers::cookies().delete");
}
};
var requestCookiesMock;
var cookies = test.fn(() => {
if (!requestCookiesMock) {
requestCookiesMock = new RequestCookiesMock(headers());
}
return requestCookiesMock;
}).mockName("next/headers::cookies()");
var originalRestore = cookies.mockRestore.bind(null);
cookies.mockRestore = () => {
originalRestore();
headers.mockRestore();
requestCookiesMock = new RequestCookiesMock(headers());
};
exports.cookies = cookies;