* Processes the provided context info. * @param {ModuleFactoryCreateDataContextInfo} contextInfo context info * @param {string} context context * @param {string} unresolvedResource unresolved resource * @param {ResolverWithOptions} resolver resolver * @param {ResolveContext} resolveContext
( contextInfo, context, unresolvedResource, resolver, resolveContext, callback )
| 1121 | * @param {(err: null | Error, res?: string | false, req?: ResolveRequest) => void} callback callback |
| 1122 | */ |
| 1123 | resolveResource( |
| 1124 | contextInfo, |
| 1125 | context, |
| 1126 | unresolvedResource, |
| 1127 | resolver, |
| 1128 | resolveContext, |
| 1129 | callback |
| 1130 | ) { |
| 1131 | resolver.resolve( |
| 1132 | contextInfo, |
| 1133 | context, |
| 1134 | unresolvedResource, |
| 1135 | resolveContext, |
| 1136 | (err, resolvedResource, resolvedResourceResolveData) => { |
| 1137 | if (err) { |
| 1138 | return this._resolveResourceErrorHints( |
| 1139 | err, |
| 1140 | contextInfo, |
| 1141 | context, |
| 1142 | unresolvedResource, |
| 1143 | resolver, |
| 1144 | resolveContext, |
| 1145 | (err2, hints) => { |
| 1146 | if (err2) { |
| 1147 | err.message += ` |
| 1148 | A fatal error happened during resolving additional hints for this error: ${err2.message}`; |
| 1149 | err.stack += ` |
| 1150 | |
| 1151 | A fatal error happened during resolving additional hints for this error: |
| 1152 | ${err2.stack}`; |
| 1153 | return callback(err); |
| 1154 | } |
| 1155 | if (hints && hints.length > 0) { |
| 1156 | err.message += ` |
| 1157 | ${hints.join(class="st">"\n\n")}`; |
| 1158 | } |
| 1159 | |
| 1160 | class="cm">// Check if the extension is missing a leading dot (e.g. class="st">"js" instead of class="st">".js") |
| 1161 | let appendResolveExtensionsHint = false; |
| 1162 | const specifiedExtensions = [...resolver.options.extensions]; |
| 1163 | const expectedExtensions = specifiedExtensions.map( |
| 1164 | (extension) => { |
| 1165 | if (LEADING_DOT_EXTENSION_REGEX.test(extension)) { |
| 1166 | appendResolveExtensionsHint = true; |
| 1167 | return `.${extension}`; |
| 1168 | } |
| 1169 | return extension; |
| 1170 | } |
| 1171 | ); |
| 1172 | if (appendResolveExtensionsHint) { |
| 1173 | err.message += `\nDid you miss the leading dot in class="st">'resolve.extensions'? Did you mean '${JSON.stringify( |
| 1174 | expectedExtensions |
| 1175 | )}class="st">' instead of '${JSON.stringify(specifiedExtensions)}'?`; |
| 1176 | } |
| 1177 | |
| 1178 | callback(err); |
| 1179 | } |
| 1180 | ); |
no test coverage detected