MCPcopy
hub / github.com/webpack/sass-loader / load

Function load

src/utils.js:588–635  ·  view source on GitHub ↗

* @param {URL} canonicalUrl canonical url * @returns {Promise<{ contents: string, syntax: "scss" | "indented" | "css", sourceMapUrl: URL } | null>} load result

(canonicalUrl)

Source from the content-addressed store, hash-verified

586 * @returns {Promise<{ contents: string, syntax: "scss" | "indented" | "css", sourceMapUrl: URL } | null>} load result
587 */
588 async load(canonicalUrl) {
589 const ext = path.extname(canonicalUrl.pathname);
590
591 /** @type {"scss" | "indented" | "css"} */
592 let syntax;
593
594 if (ext && ext.toLowerCase() === ".scss") {
595 syntax = "scss";
596 } else if (ext && ext.toLowerCase() === ".sass") {
597 syntax = "indented";
598 } else if (ext && ext.toLowerCase() === ".css") {
599 syntax = "css";
600 } else {
601 // Fallback to default value
602 syntax = "scss";
603 }
604
605 try {
606 const contents = /** @type {string} */ (
607 await new Promise((resolve, reject) => {
608 // Old version of `enhanced-resolve` supports only path as a string
609 // TODO simplify in the next major release and pass URL
610 const canonicalPath = url.fileURLToPath(canonicalUrl);
611
612 loaderContext.fs.readFile(
613 canonicalPath,
614 /**
615 * @param {NodeJS.ErrnoException | null} err error
616 * @param {Buffer | undefined} content content
617 * @returns {void}
618 */
619 (err, content) => {
620 if (err || !content) {
621 reject(err);
622 return;
623 }
624
625 resolve(content.toString("utf8"));
626 },
627 );
628 })
629 );
630
631 return { contents, syntax, sourceMapUrl: canonicalUrl };
632 } catch {
633 return null;
634 }
635 },
636 };
637}
638

Callers

nothing calls this directly

Calls 1

resolveFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…