UNPKG

vite-plugin-react-server

Version:
63 lines (61 loc) 9.8 kB
/** * vite-plugin-react-server * Copyright (c) Nico Brinkkemper * MIT License */ function serializeRegExp(regex) { return { source: regex.source, flags: regex.flags, __isRegExp: true }; } const isSerializable = (x) => { return typeof x === "number" || typeof x === "bigint" || typeof x === "boolean" || typeof x === "string" || x instanceof Buffer || Array.isArray(x) && (!x.length || x instanceof Uint8Array || x instanceof Uint16Array || x instanceof Uint32Array || x instanceof Int8Array || x instanceof Int16Array || x instanceof Int32Array); }; function cleanObject(obj, knownNonSerializableFunctions = /* @__PURE__ */ new Set(), currentPath = "") { if (typeof obj !== "object" || obj == null) return obj; if (isSerializable(obj)) return obj; if (obj instanceof RegExp) return serializeRegExp(obj); if (Array.isArray(obj)) { return obj.map( (x, i) => cleanObject(x, knownNonSerializableFunctions, `${currentPath}[${i}]`) ).filter((x) => x !== void 0); } if (obj instanceof RegExp) return serializeRegExp(obj); const result = {}; for (const [key, value] of Object.entries(obj)) { const fullPath = currentPath ? `${currentPath}.${key}` : key; const normalizedPath = fullPath.replace(/\[\d+\]/g, "[]"); if (isSerializable(value)) { result[key] = value; continue; } if (typeof value === "function" || knownNonSerializableFunctions.has(normalizedPath) || knownNonSerializableFunctions.has(key)) { continue; } if (typeof value === "object" && value !== null) { const hasFunctions = Object.entries(value).some(([k, v]) => { const nestedPath = `${normalizedPath}.${k}`; return typeof v === "function" || knownNonSerializableFunctions.has(nestedPath); }); if (hasFunctions) { continue; } const cleaned = cleanObject( value, knownNonSerializableFunctions, `${normalizedPath}.${key}` ); if (cleaned !== void 0 && Object.keys(cleaned).length > 0) { result[key] = cleaned; } } else { result[key] = value; } } return Object.keys(result).length > 0 ? result : {}; } export { cleanObject }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW5PYmplY3QuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9oZWxwZXJzL2NsZWFuT2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXphYmxlUmVjb3JkIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBzZXJpYWxpemUgUmVnRXhwIG9iamVjdHNcbmZ1bmN0aW9uIHNlcmlhbGl6ZVJlZ0V4cChyZWdleDogUmVnRXhwKToge1xuICBzb3VyY2U6IHN0cmluZztcbiAgZmxhZ3M6IHN0cmluZztcbiAgX19pc1JlZ0V4cDogYm9vbGVhbjtcbn0ge1xuICByZXR1cm4ge1xuICAgIHNvdXJjZTogcmVnZXguc291cmNlLFxuICAgIGZsYWdzOiByZWdleC5mbGFncyxcbiAgICBfX2lzUmVnRXhwOiB0cnVlLFxuICB9O1xufVxuXG5jb25zdCBpc1NlcmlhbGl6YWJsZSA9IChcbiAgeDogdW5rbm93blxuKTogeCBpc1xuICB8IG51bWJlclxuICB8IGJpZ2ludFxuICB8IGJvb2xlYW5cbiAgfCBzdHJpbmdcbiAgfCB1bmRlZmluZWRcbiAgfCBudWxsXG4gIHwgVWludDhBcnJheVxuICB8IFVpbnQxNkFycmF5XG4gIHwgVWludDMyQXJyYXlcbiAgfCBJbnQ4QXJyYXlcbiAgfCBJbnQxNkFycmF5XG4gIHwgSW50MzJBcnJheSA9PiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHggPT09IFwibnVtYmVyXCIgfHxcbiAgICB0eXBlb2YgeCA9PT0gXCJiaWdpbnRcIiB8fFxuICAgIHR5cGVvZiB4ID09PSBcImJvb2xlYW5cIiB8fFxuICAgIHR5cGVvZiB4ID09PSBcInN0cmluZ1wiIHx8XG4gICAgeCBpbnN0YW5jZW9mIEJ1ZmZlciB8fFxuICAgIChBcnJheS5pc0FycmF5KHgpICYmXG4gICAgICAoIXgubGVuZ3RoIHx8XG4gICAgICAgIHggaW5zdGFuY2VvZiBVaW50OEFycmF5IHx8XG4gICAgICAgIHggaW5zdGFuY2VvZiBVaW50MTZBcnJheSB8fFxuICAgICAgICB4IGluc3RhbmNlb2YgVWludDMyQXJyYXkgfHxcbiAgICAgICAgeCBpbnN0YW5jZW9mIEludDhBcnJheSB8fFxuICAgICAgICB4IGluc3RhbmNlb2YgSW50MTZBcnJheSB8fFxuICAgICAgICB4IGluc3RhbmNlb2YgSW50MzJBcnJheSkpXG4gICk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5PYmplY3Q8VD4oXG4gIG9iajogVCxcbiAga25vd25Ob25TZXJpYWxpemFibGVGdW5jdGlvbnM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpLFxuICBjdXJyZW50UGF0aDogc3RyaW5nID0gXCJcIlxuKTogU2VyaWFsaXphYmxlUmVjb3JkICYgVCB7XG4gIGlmICh0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiIHx8IG9iaiA9PSBudWxsKSByZXR1cm4gb2JqIGFzIEV4dHJhY3Q8U2VyaWFsaXphYmxlUmVjb3JkLCBUPjtcbiAgaWYgKGlzU2VyaWFsaXphYmxlKG9iaikpIHJldHVybiBvYmogYXMgRXh0cmFjdDxTZXJpYWxpemFibGVSZWNvcmQsIFQ+O1xuICBpZihvYmogaW5zdGFuY2VvZiBSZWdFeHApIHJldHVybiBzZXJpYWxpemVSZWdFeHAob2JqKSBhcyB1bmtub3duIGFzIEV4dHJhY3Q8U2VyaWFsaXphYmxlUmVjb3JkLCBUPjtcblxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9ialxuICAgICAgLm1hcCgoeCwgaSkgPT5cbiAgICAgICAgY2xlYW5PYmplY3QoeCwga25vd25Ob25TZXJpYWxpemFibGVGdW5jdGlvbnMsIGAke2N1cnJlbnRQYXRofVske2l9XWApXG4gICAgICApXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4ICE9PSB1bmRlZmluZWQpIGFzIEV4dHJhY3Q8U2VyaWFsaXphYmxlUmVjb3JkLCBUPjtcbiAgfVxuICBpZiAob2JqIGluc3RhbmNlb2YgUmVnRXhwKVxuICAgIHJldHVybiBzZXJpYWxpemVSZWdFeHAob2JqKSBhcyB1bmtub3duIGFzIEV4dHJhY3Q8U2VyaWFsaXphYmxlUmVjb3JkLCBUPjtcblxuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IGN1cnJlbnRQYXRoID8gYCR7Y3VycmVudFBhdGh9LiR7a2V5fWAgOiBrZXk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBmdWxsUGF0aC5yZXBsYWNlKC9cXFtcXGQrXFxdL2csIFwiW11cIik7XG4gICAgLy8gU2tpcCBpZiBpdCdzIGEgZnVuY3Rpb24gb3Iga25vd24gbm9uLXNlcmlhbGl6YWJsZSBwcm9wZXJ0eVxuICAgIGlmKGlzU2VyaWFsaXphYmxlKHZhbHVlKSkge1xuICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIiB8fFxuICAgICAga25vd25Ob25TZXJpYWxpemFibGVGdW5jdGlvbnMuaGFzKG5vcm1hbGl6ZWRQYXRoKSB8fFxuICAgICAga25vd25Ob25TZXJpYWxpemFibGVGdW5jdGlvbnMuaGFzKGtleSlcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBuZXN0ZWQgb2JqZWN0c1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBvYmplY3QgaGFzIGFueSBmdW5jdGlvbnNcbiAgICAgIGNvbnN0IGhhc0Z1bmN0aW9ucyA9IE9iamVjdC5lbnRyaWVzKHZhbHVlKS5zb21lKChbaywgdl0pID0+IHtcbiAgICAgICAgY29uc3QgbmVzdGVkUGF0aCA9IGAke25vcm1hbGl6ZWRQYXRofS4ke2t9YDtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0eXBlb2YgdiA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICAgICAga25vd25Ob25TZXJpYWxpemFibGVGdW5jdGlvbnMuaGFzKG5lc3RlZFBhdGgpXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKGhhc0Z1bmN0aW9ucykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2xlYW5lZCA9IGNsZWFuT2JqZWN0KFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAga25vd25Ob25TZXJpYWxpemFibGVGdW5jdGlvbnMsXG4gICAgICAgIGAke25vcm1hbGl6ZWRQYXRofS4ke2tleX1gXG4gICAgICApO1xuICAgICAgaWYgKGNsZWFuZWQgIT09IHVuZGVmaW5lZCAmJiBPYmplY3Qua2V5cyhjbGVhbmVkKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gY2xlYW5lZDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIChPYmplY3Qua2V5cyhyZXN1bHQpLmxlbmd0aCA+IDAgPyByZXN1bHQgOiB7fSkgYXMgRXh0cmFjdDxcbiAgICBTZXJpYWxpemFibGVSZWNvcmQsXG4gICAgVFxuICA+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EsU0FBUyxnQkFBZ0IsS0FJdkIsRUFBQTtBQUNBLEVBQU8sT0FBQTtBQUFBLElBQ0wsUUFBUSxLQUFNLENBQUEsTUFBQTtBQUFBLElBQ2QsT0FBTyxLQUFNLENBQUEsS0FBQTtBQUFBLElBQ2IsVUFBWSxFQUFBO0FBQUEsR0FDZDtBQUNGO0FBRUEsTUFBTSxjQUFBLEdBQWlCLENBQ3JCLENBYWdCLEtBQUE7QUFDaEIsRUFBQSxPQUNFLE9BQU8sQ0FBQSxLQUFNLFFBQ2IsSUFBQSxPQUFPLENBQU0sS0FBQSxRQUFBLElBQ2IsT0FB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