UNPKG

dt-intl

Version:

I18N tools for universal javascript apps, easy use & better api;

42 lines 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("./utils"); const Observer = (obj, defaultKey = 'zh-CN') => { Object.keys(obj.__data__ || obj).forEach((key) => { defineReactive(obj, key, defaultKey); }); return obj; }; const observe = (value) => { if (!value || typeof value !== 'object') { return; } Observer(value); }; const defineReactive = (obj, key, defaultKey) => { let childObj = observe(obj[key]); Object.defineProperty(obj, key, { get() { if (obj.__data__[key]) { return (0, utils_1.getProxyObj)(obj.__data__[key]); } else if (obj.__metas__[defaultKey][key]) { return (0, utils_1.getProxyObj)(obj.__metas__[defaultKey][key]); } else { return (0, utils_1.getDefaultProxyString)(); } }, set(newVal) { if (obj[key] === newVal) { return; } obj[key] = newVal; const cb = obj.callback[key]; cb.call(obj); childObj = observe(newVal); }, }); }; exports.default = Observer; //# sourceMappingURL=Observer.js.map