astro-ghostcms/.pnpm-store/v3/files/c3/fe0b9fed19bcfdb86130b7d3e4d...

58 lines
1.5 KiB
Plaintext

import { createAPIContext } from "../endpoint/index.js";
import { sequence } from "./sequence.js";
function defineMiddleware(fn) {
return fn;
}
function createContext({ request, params, userDefinedLocales = [] }) {
return createAPIContext({
request,
params: params ?? {},
props: {},
site: void 0,
locales: userDefinedLocales,
defaultLocale: void 0,
routingStrategy: void 0
});
}
function isLocalsSerializable(value) {
let type = typeof value;
let plainObject = true;
if (type === "object" && isPlainObject(value)) {
for (const [, nestedValue] of Object.entries(value)) {
if (!isLocalsSerializable(nestedValue)) {
plainObject = false;
break;
}
}
} else {
plainObject = false;
}
let result = value === null || type === "string" || type === "number" || type === "boolean" || Array.isArray(value) || plainObject;
return result;
}
function isPlainObject(value) {
if (typeof value !== "object" || value === null)
return false;
let proto = Object.getPrototypeOf(value);
if (proto === null)
return true;
let baseProto = proto;
while (Object.getPrototypeOf(baseProto) !== null) {
baseProto = Object.getPrototypeOf(baseProto);
}
return proto === baseProto;
}
function trySerializeLocals(value) {
if (isLocalsSerializable(value)) {
return JSON.stringify(value);
} else {
throw new Error("The passed value can't be serialized.");
}
}
export {
createContext,
defineMiddleware,
sequence,
trySerializeLocals
};