Sha256: f42551d9bdb44614ef6005805b6e96e4787e3655170ed86a11b02886f6f980da

Contents?: true

Size: 1.07 KB

Versions: 7

Compression:

Stored size: 1.07 KB

Contents

'use strict';

/**
 * Creates new custom importers that use the given `resourcePath` if libsass calls the custom importer with `prev`
 * being 'stdin'.
 *
 * Why do we need this? We have to use the `data` option of node-sass in order to compile our sass because
 * the `resourcePath` might not be an actual file on disk. When using the `data` option, libsass uses the string
 * 'stdin' instead of a filename.
 *
 * We have to fix this behavior in order to provide a consistent experience to the webpack user.
 *
 * @param {Function|Array<Function>} importer
 * @param {string} resourcePath
 * @returns {Array<Function>}
 */
function proxyCustomImporters(importer, resourcePath) {
  return [].concat(importer).map(
    // eslint-disable-next-line no-shadow
    (importer) =>
      function customImporter() {
        return importer.apply(
          this,
          // eslint-disable-next-line prefer-rest-params
          Array.from(arguments).map((arg, i) =>
            i === 1 && arg === 'stdin' ? resourcePath : arg
          )
        );
      }
  );
}

module.exports = proxyCustomImporters;

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
jester-data-8.0.0 node_modules/sass-loader/lib/proxyCustomImporters.js
ezii-os-5.2.1 node_modules/sass-loader/lib/proxyCustomImporters.js
ezii-os-2.0.1 node_modules/sass-loader/lib/proxyCustomImporters.js
ezii-os-1.1.0 node_modules/sass-loader/lib/proxyCustomImporters.js
ezii-os-1.0.0 node_modules/sass-loader/lib/proxyCustomImporters.js
ezii-os-0.0.0.1.0 node_modules/sass-loader/lib/proxyCustomImporters.js
ezii-os-0.0.0.0.1 node_modules/sass-loader/lib/proxyCustomImporters.js