Sha256: 82145e12c0f4cb1d2cf5cc0b2a595979295121b6dc17226a9b5a0a1e6ca2b180

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

const isBoolean = (str) => /^true/.test(str) || /^false/.test(str)

const ensureTrailingSlash = (path) => (path.endsWith("/") ? path : `${path}/`)

const resolvedPath = (packageName) => {
  try {
    return require.resolve(packageName)
  } catch (e) {
    if (e.code !== "MODULE_NOT_FOUND") {
      throw e
    }
    return null
  }
}

const moduleExists = (packageName) => !!resolvedPath(packageName)

const canProcess = (rule, fn) => {
  const modulePath = resolvedPath(rule)

  if (modulePath) {
    return fn(modulePath)
  }

  return null
}

const loaderMatches = (configLoader, loaderToCheck, fn) => {
  if (configLoader !== loaderToCheck) {
    return null
  }

  const loaderName = `${configLoader}-loader`

  if (!moduleExists(loaderName)) {
    throw new Error(
      `Your Shakapacker config specified using ${configLoader}, but ${loaderName} package is not installed. Please install ${loaderName} first.`
    )
  }

  return fn()
}

module.exports = {
  isBoolean,
  ensureTrailingSlash,
  canProcess,
  moduleExists,
  loaderMatches
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shakapacker-8.0.1 package/utils/helpers.js