@trpc/next
Version:
109 lines (108 loc) • 5.22 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
//#region \0rolldown/runtime.js
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
key = keys[i];
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
get: ((k) => from[k]).bind(null, key),
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
value: mod,
enumerable: true
}) : target, mod));
//#endregion
const require_objectSpread2 = require("./objectSpread2-C2ceYbQe.cjs");
let _tanstack_react_query = require("@tanstack/react-query");
let _trpc_client_unstable_internals = require("@trpc/client/unstable-internals");
let _trpc_react_query_shared = require("@trpc/react-query/shared");
let react = require("react");
react = __toESM(react, 1);
let _trpc_server_unstable_core_do_not_import = require("@trpc/server/unstable-core-do-not-import");
//#region src/withTRPC.tsx
function withTRPC(opts) {
const { config: getClientConfig } = opts;
const transformer = (0, _trpc_client_unstable_internals.getTransformer)(opts.transformer);
return (AppOrPage) => {
var _ref, _AppOrPage$displayNam;
const trpc = (0, _trpc_react_query_shared.createRootHooks)(opts);
const WithTRPC = (props) => {
var _props$pageProps, _abortOnUnmount;
const [prepassProps] = (0, react.useState)(() => {
if (props.trpc) return props.trpc;
const config = getClientConfig({});
const queryClient = (0, _trpc_react_query_shared.getQueryClient)(config);
const trpcClient = trpc.createClient(config);
return {
abortOnUnmount: config.abortOnUnmount,
queryClient,
trpcClient,
ssrState: opts.ssr ? "mounting" : false,
ssrContext: null
};
});
const { queryClient, trpcClient, ssrState, ssrContext } = prepassProps;
const trpcState = (_props$pageProps = props.pageProps) === null || _props$pageProps === void 0 ? void 0 : _props$pageProps.trpcState;
const hydratedState = react.default.useMemo(() => {
if (!trpcState) return trpcState;
return transformer.input.deserialize(trpcState);
}, [trpcState]);
return /* @__PURE__ */ react.default.createElement(trpc.Provider, {
abortOnUnmount: (_abortOnUnmount = prepassProps.abortOnUnmount) !== null && _abortOnUnmount !== void 0 ? _abortOnUnmount : false,
client: trpcClient,
queryClient,
ssrState,
ssrContext
}, /* @__PURE__ */ react.default.createElement(_tanstack_react_query.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ react.default.createElement(_tanstack_react_query.HydrationBoundary, { state: hydratedState }, /* @__PURE__ */ react.default.createElement(AppOrPage, props))));
};
if (opts.ssr) opts.ssrPrepass({
parent: opts,
AppOrPage,
WithTRPC
});
else if (AppOrPage.getInitialProps) WithTRPC.getInitialProps = async (appOrPageCtx) => {
var _originalProps$pagePr;
const isApp = !!appOrPageCtx.Component;
let pageProps = {};
const originalProps = await AppOrPage.getInitialProps(appOrPageCtx);
const originalPageProps = isApp ? (_originalProps$pagePr = originalProps.pageProps) !== null && _originalProps$pagePr !== void 0 ? _originalProps$pagePr : {} : originalProps;
pageProps = require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, originalPageProps), pageProps);
const getAppTreeProps = (props) => isApp ? { pageProps: props } : props;
return getAppTreeProps(pageProps);
};
WithTRPC.displayName = `withTRPC(${(_ref = (_AppOrPage$displayNam = AppOrPage.displayName) !== null && _AppOrPage$displayNam !== void 0 ? _AppOrPage$displayNam : AppOrPage.name) !== null && _ref !== void 0 ? _ref : "Component"})`;
return WithTRPC;
};
}
//#endregion
//#region src/createTRPCNext.tsx
/* istanbul ignore file -- @preserve */
function createTRPCNext(opts) {
const hooks = (0, _trpc_react_query_shared.createRootHooks)(opts);
const _withTRPC = withTRPC(opts);
const proxy = (0, _trpc_react_query_shared.createReactDecoration)(hooks);
return (0, _trpc_server_unstable_core_do_not_import.createFlatProxy)((key) => {
if (key === "useContext" || key === "useUtils") return () => {
const context = hooks.useUtils();
return (0, react.useMemo)(() => {
return (0, _trpc_react_query_shared.createReactQueryUtils)(context);
}, [context]);
};
if (key === "useQueries") return hooks.useQueries;
if (key === "useSuspenseQueries") return hooks.useSuspenseQueries;
if (key === "withTRPC") return _withTRPC;
return proxy[key];
});
}
//#endregion
exports.createTRPCNext = createTRPCNext;
exports.withTRPC = withTRPC;