| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | "use strict";var interpolateName = require("loader-utils/lib/interpolateName");var path = require("path");/** * @param  {string} pattern * @param  {object} options * @param  {string} options.context * @param  {string} options.hashPrefix * @return {function} */module.exports = function createGenerator(pattern, options) {  options = options || {};  var context =    options && typeof options.context === "string"      ? options.context      : process.cwd();  var hashPrefix =    options && typeof options.hashPrefix === "string" ? options.hashPrefix : "";  /**   * @param  {string} localName Usually a class name   * @param  {string} filepath  Absolute path   * @return {string}   */  return function generate(localName, filepath) {    var name = pattern.replace(/\[local\]/gi, localName);    var loaderContext = {      resourcePath: filepath,    };    var loaderOptions = {      content:        hashPrefix +        path.relative(context, filepath).replace(/\\/g, "/") +        "\x00" +        localName,      context: context,    };    var genericName = interpolateName(loaderContext, name, loaderOptions);    return genericName      .replace(new RegExp("[^a-zA-Z0-9\\-_\u00A0-\uFFFF]", "g"), "-")      .replace(/^((-?[0-9])|--)/, "_$1");  };};
 |