UNPKG

ewm

Version:

小程序原生插件

42 lines 1.38 kB
const wrapData = (data, relatedPathValues, basePath) => { if (typeof data !== "object" || data === null) return data; const handler = { get(obj, key) { if (key === "__rawObject__") return obj; let keyWrapper = null; const keyPath = basePath.concat(key); const value = obj[key]; relatedPathValues.push({ path: keyPath, value, }); keyWrapper = wrapData(value, relatedPathValues, keyPath); return keyWrapper; }, }; return new Proxy(data, handler); }; export function create(data, relatedPathValues) { return wrapData(data, relatedPathValues, []); } export function unwrap(wrapped) { if (wrapped !== null && typeof wrapped === "object" && typeof wrapped.__rawObject__ !== "object") { if (Array.isArray(wrapped)) { return wrapped.map((i) => unwrap(i)); } const ret = {}; Object.keys(wrapped).forEach(k => { ret[k] = unwrap(wrapped[k]); }); return ret; } if (typeof wrapped !== "object" || wrapped === null || typeof wrapped.__rawObject__ !== "object") { return wrapped; } return wrapped.__rawObject__; } //# sourceMappingURL=data-tracer.js.map