1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3    return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6// @ts-expect-error: types node
7const node_fs_1 = __importDefault(require("node:fs"));
8// @ts-expect-error: types node
9const node_path_1 = __importDefault(require("node:path"));
10function requireContext(base = '.', scanSubDirectories = true, regularExpression = /\.[tj]sx?$/) {
11    const files = {};
12    function readDirectory(directory) {
13        node_fs_1.default.readdirSync(directory).forEach((file) => {
14            const fullPath = node_path_1.default.resolve(directory, file);
15            const relativePath = `./${node_path_1.default.relative(base, fullPath)}`;
16            if (node_fs_1.default.statSync(fullPath).isDirectory()) {
17                if (scanSubDirectories)
18                    readDirectory(fullPath);
19                return;
20            }
21            if (!regularExpression.test(fullPath))
22                return;
23            files[relativePath] = true;
24        });
25    }
26    readDirectory(base);
27    const context = Object.assign(function Module(file) {
28        return require(node_path_1.default.join(base, file));
29    }, {
30        keys: () => Object.keys(files),
31        resolve: (key) => key,
32        id: '0',
33    });
34    return context;
35}
36exports.default = requireContext;
37//# sourceMappingURL=require-context-ponyfill.js.map