UNPKG

@fimbul/wotan

Version:

Pluggable TypeScript and JavaScript linter

39 lines 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NodeResolver = void 0; const tslib_1 = require("tslib"); const inversify_1 = require("inversify"); const ymir_1 = require("@fimbul/ymir"); const cached_file_system_1 = require("../cached-file-system"); const resolve = require("resolve"); let NodeResolver = class NodeResolver { constructor(fs, directories) { this.fs = fs; this.directories = directories; this.defaultExtensions = Object.keys(require.extensions).filter((ext) => ext !== '.json' && ext !== '.node'); } getDefaultExtensions() { return this.defaultExtensions; } resolve(id, basedir = this.directories.getCurrentDirectory(), extensions = this.defaultExtensions, paths) { return resolve.sync(id, { basedir, extensions, paths, isFile: (file) => this.fs.isFile(file), readFileSync: (file) => this.fs.readFile(file), isDirectory: (file) => this.fs.isDirectory(file), }); } require(id, options) { if (options !== undefined && options.cache === false) delete require.cache[id]; return require(id); } }; NodeResolver = tslib_1.__decorate([ inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [cached_file_system_1.CachedFileSystem, ymir_1.DirectoryService]) ], NodeResolver); exports.NodeResolver = NodeResolver; //# sourceMappingURL=resolver.js.map