UNPKG

@pedwise/next-firebase-auth-edge

Version:

Next.js 13 Firebase Authentication for Edge and server runtimes. Dedicated for Next 13 server components. Compatible with Next.js middleware.

58 lines (48 loc) 1.21 kB
export function formatString(str: string, params?: object): string { let formatted = str; Object.keys(params || {}).forEach((key) => { formatted = formatted.replace( new RegExp("{" + key + "}", "g"), (params as { [key: string]: string })[key] ); }); return formatted; } export function addReadonlyGetter(obj: object, prop: string, value: any): void { Object.defineProperty(obj, prop, { value, writable: false, enumerable: true, }); } export function deepCopy<T>(value: T): T { return deepExtend(undefined, value); } export function deepExtend(target: any, source: any): any { if (!(source instanceof Object)) { return source; } switch (source.constructor) { case Date: { const dateValue = source as any as Date; return new Date(dateValue.getTime()); } case Object: if (target === undefined) { target = {}; } break; case Array: target = []; break; default: return source; } for (const prop in source) { if (!Object.prototype.hasOwnProperty.call(source, prop)) { continue; } target[prop] = deepExtend(target[prop], source[prop]); } return target; }