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.
45 lines (42 loc) • 1.41 kB
JavaScript
import { fn } from 'storybook/test';
import { HeadersAdapter } from 'next/dist/server/web/spec-extension/adapters/headers.js';
// src/plugins/next-mocks/alias/headers/headers.ts
var HeadersAdapterMock = class extends HeadersAdapter {
constructor() {
super({});
this.append = fn(
super.append.bind(this)
).mockName("next/headers::headers().append");
this.delete = fn(super.delete.bind(this)).mockName(
"next/headers::headers().delete"
);
this.get = fn(
super.get.bind(this)
).mockName("next/headers::headers().get");
this.has = fn(super.has.bind(this)).mockName(
"next/headers::headers().has"
);
this.set = fn(
super.set.bind(this)
).mockName("next/headers::headers().set");
this.forEach = fn(super.forEach.bind(this)).mockName("next/headers::headers().forEach");
this.entries = fn(
super.entries.bind(this)
).mockName("next/headers::headers().entries");
this.keys = fn(
super.keys.bind(this)
).mockName("next/headers::headers().keys");
this.values = 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();
};
export { headers };