(root)
| 6 | return { |
| 7 | postcssPlugin: "postcss-icss-parser", |
| 8 | async OnceExit(root) { |
| 9 | const importReplacements = Object.create(null); |
| 10 | const { icssImports, icssExports } = extractICSS(root); |
| 11 | const imports = new Map(); |
| 12 | const tasks = []; |
| 13 | |
| 14 | const { loaderContext } = options; |
| 15 | const resolver = loaderContext.getResolve({ |
| 16 | dependencyType: "icss", |
| 17 | conditionNames: ["style"], |
| 18 | extensions: ["..."], |
| 19 | mainFields: ["css", "style", "main", "..."], |
| 20 | mainFiles: ["index", "..."], |
| 21 | preferRelative: true, |
| 22 | }); |
| 23 | |
| 24 | // eslint-disable-next-line guard-for-in |
| 25 | for (const url in icssImports) { |
| 26 | const tokens = icssImports[url]; |
| 27 | |
| 28 | if (Object.keys(tokens).length === 0) { |
| 29 | // eslint-disable-next-line no-continue |
| 30 | continue; |
| 31 | } |
| 32 | |
| 33 | let normalizedUrl = url; |
| 34 | let prefix = ""; |
| 35 | |
| 36 | const queryParts = normalizedUrl.split("!"); |
| 37 | |
| 38 | if (queryParts.length > 1) { |
| 39 | normalizedUrl = queryParts.pop(); |
| 40 | prefix = queryParts.join("!"); |
| 41 | } |
| 42 | |
| 43 | const request = requestify( |
| 44 | normalizeUrl(normalizedUrl, true), |
| 45 | loaderContext.rootContext, |
| 46 | ); |
| 47 | const doResolve = async () => { |
| 48 | const resolvedUrl = await resolveRequests( |
| 49 | resolver, |
| 50 | loaderContext.context, |
| 51 | [...new Set([normalizedUrl, request])], |
| 52 | ); |
| 53 | |
| 54 | if (!resolvedUrl) { |
| 55 | return; |
| 56 | } |
| 57 | |
| 58 | // eslint-disable-next-line consistent-return |
| 59 | return { url: resolvedUrl, prefix, tokens }; |
| 60 | }; |
| 61 | |
| 62 | tasks.push(doResolve()); |
| 63 | } |
| 64 | |
| 65 | const results = await Promise.all(tasks); |
nothing calls this directly
no test coverage detected