HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/node_modules/@vue/vue-loader-v15/lib/codegen/utils.js
const qs = require('querystring')

// these are built-in query parameters so should be ignored
// if the user happen to add them as attrs
const ignoreList = ['id', 'index', 'src', 'type']

// transform the attrs on a SFC block descriptor into a resourceQuery string
exports.attrsToQuery = (attrs, langFallback) => {
  let query = ``
  for (const name in attrs) {
    const value = attrs[name]
    if (!ignoreList.includes(name)) {
      query += `&${qs.escape(name)}=${value ? qs.escape(value) : ``}`
    }
  }
  if (langFallback && !(`lang` in attrs)) {
    query += `&lang=${langFallback}`
  }
  return query
}

exports.genMatchResource = (context, resourcePath, resourceQuery, lang) => {
  resourceQuery = resourceQuery || ''

  const loaders = []
  const parsedQuery = qs.parse(resourceQuery.slice(1))

  // process non-external resources
  if ('vue' in parsedQuery && !('external' in parsedQuery)) {
    const currentRequest = context.loaders
      .slice(context.loaderIndex)
      .map((obj) => obj.request)
    loaders.push(...currentRequest)
  }
  const loaderString = loaders.join('!')

  return `${resourcePath}${lang ? `.${lang}` : ''}${resourceQuery}!=!${
    loaderString ? `${loaderString}!` : ''
  }${resourcePath}${resourceQuery}`
}

exports.testWebpack5 = (compiler) => {
  if (!compiler) {
    return false
  }
  const webpackVersion = compiler.webpack && compiler.webpack.version
  return Boolean(webpackVersion && Number(webpackVersion.split('.')[0]) > 4)
}