const OriginPrototype = { Object: { defineProperty: Object.defineProperty, defineProperties: Object.defineProperties, }, }; const PopsCoreDefaultApi = { document: document, window: window, globalThis: globalThis, self: self, setTimeout: globalThis.setTimeout.bind(globalThis), setInterval: globalThis.setInterval.bind(globalThis), clearTimeout: globalThis.clearTimeout.bind(globalThis), clearInterval: globalThis.clearInterval.bind(globalThis), }; const PopsCoreApi = Object.assign({}, PopsCoreDefaultApi); const PopsCore = { init(option?: typeof PopsCoreDefaultApi) { if (!option) { option = Object.assign({}, PopsCoreDefaultApi); } Object.assign(PopsCoreApi, option); }, get document() { return PopsCoreApi.document; }, get window() { return PopsCoreApi.window; }, get globalThis() { return PopsCoreApi.globalThis; }, get self() { return PopsCoreApi.self; }, get setTimeout() { return PopsCoreApi.setTimeout; }, get setInterval() { return PopsCoreApi.setInterval; }, get clearTimeout() { return PopsCoreApi.clearTimeout; }, get clearInterval() { return PopsCoreApi.clearInterval; }, }; export { OriginPrototype, PopsCore };