basant307/AI_Governance_Project
048
1'use strict';2const lazy = (importedModule, importFn, moduleId) =>3 importedModule === undefined ? importFn(moduleId) : importedModule;4 5module.exports = importFn => {6 return moduleId => {7 let importedModule;8 9 const handler = {10 get: (target, property) => {11 importedModule = lazy(importedModule, importFn, moduleId);12 return Reflect.get(importedModule, property);13 },14 apply: (target, thisArgument, argumentsList) => {15 importedModule = lazy(importedModule, importFn, moduleId);16 return Reflect.apply(importedModule, thisArgument, argumentsList);17 },18 construct: (target, argumentsList) => {19 importedModule = lazy(importedModule, importFn, moduleId);20 return Reflect.construct(importedModule, argumentsList);21 }22 };23 24 // eslint-disable-next-line prefer-arrow-callback25 return new Proxy(function () {}, handler);26 };27};28 