1234567891011121314151617181920212223242526 |
- 'use strict';
- const lazy = (mod, fn, id) => mod === undefined ? fn(id) : mod;
-
- module.exports = fn => {
- return id => {
- let mod;
-
- const handler = {
- get: (target, property) => {
- mod = lazy(mod, fn, id);
- return Reflect.get(mod, property);
- },
- apply: (target, thisArg, argumentsList) => {
- mod = lazy(mod, fn, id);
- return Reflect.apply(mod, thisArg, argumentsList);
- },
- construct: (target, argumentsList) => {
- mod = lazy(mod, fn, id);
- return Reflect.construct(mod, argumentsList);
- }
- };
-
- // eslint-disable-next-line prefer-arrow-callback
- return new Proxy(function () {}, handler);
- };
- };
|