UNPKG

context-require

Version:

Allows you to require files in a custom vm context.

44 lines (43 loc) 1.68 kB
/// <reference types="node" /> import Module = require("module"); export default createContextRequire; export declare namespace Types { type compileFunction = (module: Module, filename: string) => any; type resolveFunction = (from: string, request: string, parent: Module) => string; interface RequireFunction { <T = any>(id: string): T; main: typeof require.main; cache: typeof require.cache; extensions: Partial<typeof require.extensions>; resolve(id: string): string; } interface Hooks { [x: string]: Types.compileFunction | undefined; } interface Options { /** The directory from which to resolve requires for this module. */ dir: string; /** A vm context which will be used as the context for any required modules. */ context: any; /** A function to which will override the native module resolution. */ resolve?: resolveFunction; /** An object containing any context specific require hooks to be used in this module. */ extensions?: Hooks; } } export declare class ContextModule extends Module { _context: any; _cache: any; _relativeResolveCache: Record<string, string>; _resolve?: Types.resolveFunction; _hooks?: Types.Hooks; /** * Custom nodejs Module implementation which uses a provided * resolver, require hooks, and context. */ constructor({ dir, context, resolve, extensions }: Types.Options); } /** * Creates a custom Module object which runs all required scripts in a provided vm context. */ declare function createContextRequire(options: Types.Options): Types.RequireFunction;