| 123456789101112131415161718192021222324252627282930313233 | const { parseQuery } = require('loader-utils');const isWebpack1 = require('./is-webpack-1');/** * webpack 1 compat rule normalizer * @param {string|Rule} rule (string - webpack 1, Object - webpack 2) * @return {Object<loader: string, options: Object|null>} */function normalizeRule(rule) {  if (!rule) {    throw new Error('Rule should be string or object');  }  let data;  if (typeof rule === 'string') {    const parts = rule.split('?');    data = {      loader: parts[0],      options: parts[1] ? parseQuery(`?${parts[1]}`) : null    };  } else {    const options = isWebpack1 ? rule.query : rule.options;    data = {      loader: rule.loader,      options: options || null    };  }  return data;}module.exports = normalizeRule;
 |