Untitled

 avatar
unknown
plain_text
a month ago
1.7 kB
2
Indexable
function mitt(n) {
  const events = n || new Map()
  
  return {
    all: events,
    
    on(event, handler) {
      const handlers = events.get(event)
      if (handlers) {
        handlers.push(handler)
      } else {
        events.set(event, [handler])
      }
    },
    
    off(event, handler) {
      const handlers = events.get(event)
      if (handlers) {
        if (handler) {
          const index = handlers.indexOf(handler)
          if (index > -1) handlers.splice(index, 1)
        } else {
          events.set(event, [])
        }
      }
    },
    
    emit(event, payload) {
      let handlers = events.get(event)
      if (handlers) {
        handlers.slice().forEach((handler) => handler(payload))
      }
      
      const wildcardHandlers = events.get("*")
      if (wildcardHandlers) {
        wildcardHandlers.slice().forEach((handler) => handler(event, payload))
      }
    }
  }
}

const pinia = createPinia()
const emitter = mitt()
const app = createApp({
  render: () => h(App)
})

app.use(pinia)
app.config.globalProperties.emitter = emitter
app.component("font-awesome-icon", FontAwesomeIcon)

try {
  if (typeof entry_esm !== 'undefined') {
    app.use(entry_esm)
  } else {
    console.warn("[Vue App] `entry_esm` is not defined or imported. Skipping...")
  }
} catch (err) {
  console.error("[Vue App] Failed to use `entry_esm`:", err)
}

try {
  if (typeof W$1 === "function") {
    app.use(W$1())
  } else {
    console.warn("[Vue App] `W$1` is not defined or is not a function. Skipping...")
  }
} catch (err) {
  console.error("[Vue App] Failed to use `W$1`:", err)
}

app.use(router)
app.mount("#app")
Leave a Comment