aboutsummaryrefslogtreecommitdiff
path: root/node_modules/enhanced-resolve/lib/index.js
diff options
context:
space:
mode:
authorMinteck <nekostarfan@gmail.com>2021-08-24 14:41:48 +0200
committerMinteck <nekostarfan@gmail.com>2021-08-24 14:41:48 +0200
commitd25e11bee6ca5ca523884da132d18e1400e077b9 (patch)
tree8af39fde19f7ed640a60fb397c7edd647dff1c4c /node_modules/enhanced-resolve/lib/index.js
downloadkartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.gz
kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.bz2
kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.zip
Initial commit
Diffstat (limited to 'node_modules/enhanced-resolve/lib/index.js')
-rw-r--r--node_modules/enhanced-resolve/lib/index.js131
1 files changed, 131 insertions, 0 deletions
diff --git a/node_modules/enhanced-resolve/lib/index.js b/node_modules/enhanced-resolve/lib/index.js
new file mode 100644
index 0000000..0a6f437
--- /dev/null
+++ b/node_modules/enhanced-resolve/lib/index.js
@@ -0,0 +1,131 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+
+"use strict";
+
+const fs = require("graceful-fs");
+const CachedInputFileSystem = require("./CachedInputFileSystem");
+const ResolverFactory = require("./ResolverFactory");
+
+/** @typedef {import("./PnpPlugin").PnpApiImpl} PnpApi */
+/** @typedef {import("./Resolver")} Resolver */
+/** @typedef {import("./Resolver").FileSystem} FileSystem */
+/** @typedef {import("./Resolver").ResolveContext} ResolveContext */
+/** @typedef {import("./Resolver").ResolveRequest} ResolveRequest */
+/** @typedef {import("./ResolverFactory").Plugin} Plugin */
+/** @typedef {import("./ResolverFactory").UserResolveOptions} ResolveOptions */
+
+const nodeFileSystem = new CachedInputFileSystem(fs, 4000);
+
+const nodeContext = {
+ environments: ["node+es3+es5+process+native"]
+};
+
+const asyncResolver = ResolverFactory.createResolver({
+ conditionNames: ["node"],
+ extensions: [".js", ".json", ".node"],
+ fileSystem: nodeFileSystem
+});
+function resolve(context, path, request, resolveContext, callback) {
+ if (typeof context === "string") {
+ callback = resolveContext;
+ resolveContext = request;
+ request = path;
+ path = context;
+ context = nodeContext;
+ }
+ if (typeof callback !== "function") {
+ callback = resolveContext;
+ }
+ asyncResolver.resolve(context, path, request, resolveContext, callback);
+}
+
+const syncResolver = ResolverFactory.createResolver({
+ conditionNames: ["node"],
+ extensions: [".js", ".json", ".node"],
+ useSyncFileSystemCalls: true,
+ fileSystem: nodeFileSystem
+});
+function resolveSync(context, path, request) {
+ if (typeof context === "string") {
+ request = path;
+ path = context;
+ context = nodeContext;
+ }
+ return syncResolver.resolveSync(context, path, request);
+}
+
+function create(options) {
+ options = {
+ fileSystem: nodeFileSystem,
+ ...options
+ };
+ const resolver = ResolverFactory.createResolver(options);
+ return function (context, path, request, resolveContext, callback) {
+ if (typeof context === "string") {
+ callback = resolveContext;
+ resolveContext = request;
+ request = path;
+ path = context;
+ context = nodeContext;
+ }
+ if (typeof callback !== "function") {
+ callback = resolveContext;
+ }
+ resolver.resolve(context, path, request, resolveContext, callback);
+ };
+}
+
+function createSync(options) {
+ options = {
+ useSyncFileSystemCalls: true,
+ fileSystem: nodeFileSystem,
+ ...options
+ };
+ const resolver = ResolverFactory.createResolver(options);
+ return function (context, path, request) {
+ if (typeof context === "string") {
+ request = path;
+ path = context;
+ context = nodeContext;
+ }
+ return resolver.resolveSync(context, path, request);
+ };
+}
+
+/**
+ * @template A
+ * @template B
+ * @param {A} obj input a
+ * @param {B} exports input b
+ * @returns {A & B} merged
+ */
+const mergeExports = (obj, exports) => {
+ const descriptors = Object.getOwnPropertyDescriptors(exports);
+ Object.defineProperties(obj, descriptors);
+ return /** @type {A & B} */ (Object.freeze(obj));
+};
+
+module.exports = mergeExports(resolve, {
+ get sync() {
+ return resolveSync;
+ },
+ create: mergeExports(create, {
+ get sync() {
+ return createSync;
+ }
+ }),
+ ResolverFactory,
+ CachedInputFileSystem,
+ get CloneBasenamePlugin() {
+ return require("./CloneBasenamePlugin");
+ },
+ get LogInfoPlugin() {
+ return require("./LogInfoPlugin");
+ },
+ get forEachBail() {
+ return require("./forEachBail");
+ }
+});