Sha256: 54bd7a336868bcb2d95ed7caabd0a021a5030d91eaf9cf404e0ec11ddc18a751

Contents?: true

Size: 829 Bytes

Versions: 1

Compression:

Stored size: 829 Bytes

Contents

export const controllerNameFrom = (filename) => {
  const pattern = /.*\/components\/((?:\w+\/)*)(\w+)_controller.js$/

  const controllerName = filename
    .replace(pattern, (_match, $1, $2) => {
      const scope = $1
        .replaceAll('/', '--')
        .replaceAll('_', '-')

      const name = $2
        .replaceAll('_', '-')

      return scope + name
    })

  return controllerName
}

export default registerControllersFrom = (context) => {
  const { default: componentControllers, filenames } = context

  for (let i = 0, len = componentControllers.length; i < len; i++) {
    let componentController = componentControllers[i].default
    let filename            = filenames[i]
    let name                = controllerNameFrom(filename)

    Stimulus.register(name, componentController)
    console.log(name);
  }
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
material_view_components-0.1.1 app/javascript/controllers/helpers.js