You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
640 B
26 lines
640 B
/** |
|
Import a module lazily. |
|
|
|
@example |
|
``` |
|
// Pass in `require` or a custom import function |
|
import importLazy = require('import-lazy'); |
|
const _ = importLazy(require)('lodash'); |
|
|
|
// Instead of referring to its exported properties directly… |
|
_.isNumber(2); |
|
|
|
// …it's cached on consecutive calls |
|
_.isNumber('unicorn'); |
|
|
|
// Works out of the box for functions and regular properties |
|
const stuff = importLazy(require)('./math-lib'); |
|
console.log(stuff.sum(1, 2)); // => 3 |
|
console.log(stuff.PHI); // => 1.618033 |
|
``` |
|
*/ |
|
declare function importLazy<T = unknown>( |
|
importFn: (moduleId: string) => T |
|
): (moduleId: string) => T; |
|
|
|
export = importLazy;
|
|
|