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.
113 lines (107 loc) • 4.08 kB
JavaScript
;
var actual = require('next/dist/client/components/navigation.js');
var redirectStatusCode_js = require('next/dist/client/components/redirect-status-code.js');
var redirect_js = require('next/dist/client/components/redirect.js');
var previewErrors = require('storybook/internal/preview-errors');
var test = require('storybook/test');
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 actual__namespace = /*#__PURE__*/_interopNamespace(actual);
// src/plugins/next-mocks/alias/navigation/index.ts
var navigationAPI;
var createNavigation = (overrides) => {
const navigationActions = {
push: test.fn().mockName("next/navigation::useRouter().push"),
replace: test.fn().mockName("next/navigation::useRouter().replace"),
forward: test.fn().mockName("next/navigation::useRouter().forward"),
back: test.fn().mockName("next/navigation::useRouter().back"),
prefetch: test.fn().mockName("next/navigation::useRouter().prefetch"),
refresh: test.fn().mockName("next/navigation::useRouter().refresh")
};
if (overrides) {
for (const key of Object.keys(navigationActions)) {
if (key in overrides) {
navigationActions[key] = test.fn((...args) => {
return overrides[key](...args);
}).mockName(`useRouter().${key}`);
}
}
}
navigationAPI = navigationActions;
return navigationAPI;
};
var getRouter = () => {
if (!navigationAPI) {
throw new previewErrors.NextjsRouterMocksNotAvailable({
importType: "next/navigation"
});
}
return navigationAPI;
};
var redirect = test.fn(
(url, type = actual__namespace.RedirectType.push) => {
throw redirect_js.getRedirectError(url, type, redirectStatusCode_js.RedirectStatusCode.SeeOther);
}
).mockName("next/navigation::redirect");
var permanentRedirect = test.fn(
(url, type = actual__namespace.RedirectType.push) => {
throw redirect_js.getRedirectError(url, type, redirectStatusCode_js.RedirectStatusCode.SeeOther);
}
).mockName("next/navigation::permanentRedirect");
var useSearchParams2 = test.fn(
actual__namespace.useSearchParams
).mockName("next/navigation::useSearchParams");
var usePathname2 = test.fn(actual__namespace.usePathname).mockName(
"next/navigation::usePathname"
);
var useSelectedLayoutSegment2 = test.fn(actual__namespace.useSelectedLayoutSegment).mockName(
"next/navigation::useSelectedLayoutSegment"
);
var useSelectedLayoutSegments2 = test.fn(actual__namespace.useSelectedLayoutSegments).mockName(
"next/navigation::useSelectedLayoutSegments"
);
var useRouter2 = test.fn(
actual__namespace.useRouter
).mockName("next/navigation::useRouter");
var useServerInsertedHTML2 = test.fn(actual__namespace.useServerInsertedHTML).mockName(
"next/navigation::useServerInsertedHTML"
);
var notFound2 = test.fn(actual__namespace.notFound).mockName(
"next/navigation::notFound"
);
var useParams2 = test.fn(
actual__namespace.useParams
).mockName("next/navigation::useParams");
exports.createNavigation = createNavigation;
exports.getRouter = getRouter;
exports.notFound = notFound2;
exports.permanentRedirect = permanentRedirect;
exports.redirect = redirect;
exports.useParams = useParams2;
exports.usePathname = usePathname2;
exports.useRouter = useRouter2;
exports.useSearchParams = useSearchParams2;
exports.useSelectedLayoutSegment = useSelectedLayoutSegment2;
exports.useSelectedLayoutSegments = useSelectedLayoutSegments2;
exports.useServerInsertedHTML = useServerInsertedHTML2;
Object.keys(actual).forEach(function (k) {
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
enumerable: true,
get: function () { return actual[k]; }
});
});