* Processes the provided data. * @param {ModuleFactoryCreateData} data data object * @param {ModuleFactoryCallback} callback callback * @returns {void}
(data, callback)
| 111 | * @returns {void} |
| 112 | */ |
| 113 | create(data, callback) { |
| 114 | const context = data.context; |
| 115 | const dependencies = /** @type {ContextDependency[]} */ (data.dependencies); |
| 116 | const resolveOptions = data.resolveOptions; |
| 117 | const dependency = dependencies[0]; |
| 118 | /** @type {FileSystemDependencies} */ |
| 119 | const fileDependencies = new LazySet(); |
| 120 | /** @type {FileSystemDependencies} */ |
| 121 | const missingDependencies = new LazySet(); |
| 122 | /** @type {FileSystemDependencies} */ |
| 123 | const contextDependencies = new LazySet(); |
| 124 | this.hooks.beforeResolve.callAsync( |
| 125 | { |
| 126 | context, |
| 127 | dependencies, |
| 128 | layer: data.contextInfo.issuerLayer, |
| 129 | resolveOptions, |
| 130 | fileDependencies, |
| 131 | missingDependencies, |
| 132 | contextDependencies, |
| 133 | ...dependency.options |
| 134 | }, |
| 135 | (err, beforeResolveResult) => { |
| 136 | if (err) { |
| 137 | return callback(err, { |
| 138 | fileDependencies, |
| 139 | missingDependencies, |
| 140 | contextDependencies |
| 141 | }); |
| 142 | } |
| 143 | |
| 144 | class="cm">// Ignored |
| 145 | if (!beforeResolveResult) { |
| 146 | return callback(null, { |
| 147 | fileDependencies, |
| 148 | missingDependencies, |
| 149 | contextDependencies |
| 150 | }); |
| 151 | } |
| 152 | |
| 153 | const context = beforeResolveResult.context; |
| 154 | const request = beforeResolveResult.request; |
| 155 | const resolveOptions = beforeResolveResult.resolveOptions; |
| 156 | |
| 157 | /** @type {undefined | string[]} */ |
| 158 | let loaders; |
| 159 | /** @type {undefined | string} */ |
| 160 | let resource; |
| 161 | let loadersPrefix = class="st">""; |
| 162 | const idx = request.lastIndexOf(class="st">"!"); |
| 163 | if (idx >= 0) { |
| 164 | let loadersRequest = request.slice(0, idx + 1); |
| 165 | /** @type {number} */ |
| 166 | let i; |
| 167 | for ( |
| 168 | i = 0; |
| 169 | i < loadersRequest.length && loadersRequest[i] === class="st">"!"; |
| 170 | i++ |