@ihma-io/composables

IHMA umumiy portable composables (useGlobal, usePermission, useConfirm, useTableExport, useSharedWorker, ...).
Install
npm install @ihma-io/composables
Latest Version:0.5.0
Vue:3
License:MIT
Last Updated:Aug 11, 2026
Links: npm
Maintainer: abdulkhamidov-770

@ihma-io/composables

IHMA ilovalari uchun umumiy Vue composable va browser yordamchilari.

import {
  configureSharedWorker,
  useConfirm,
  usePermission,
  useSharedWorker,
  useTableExport,
  useTableUrlSync,
} from '@ihma-io/composables'

Public API URL sync, virtual list, export, error toast, confirmation queue, permission va tablararo koordinatsiya yordamchilarini o'z ichiga oladi. vue va vue-router required peer; axios, vue-sonner, xlsx, jspdf va jspdf-autotable tegishli optional imkoniyat chaqirilgandagina kerak.

Spreadsheet eksporti

useTableExport bilan XLSX eksport ishlatilsa, SheetJS CE 0.20.3 ni rasmiy tarball orqali o'rnating. npm registry'dagi xlsx paketi eski 0.18.5 versiyada qolgan:

npm install --save https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz
# yoki
pnpm install --save https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz

SheetJS Node.js o'rnatish yo'riqnomasi tarballni vendoring qilishni ham tavsiya qiladi.

Permission resolver

Permission nomi berilgan tekshiruv resolver yo'q yoki exception qaytarsa fail-closed (false) ishlaydi. Resolverni app bootstrapida sozlang yoki Vue app orqali provide qiling:

import {
  configurePermissionResolver,
  PERMISSION_RESOLVER_KEY,
  usePermission,
} from '@ihma-io/composables'

configurePermissionResolver((permission) => session.permissions.includes(permission))
// SSR/app-local variant: app.provide(PERMISSION_RESOLVER_KEY, resolver)

const { can } = usePermission()
can('documents.read')

Permission argumenti berilmagan can() umumiy ko'rinish holati uchun true qaytaradi.

SharedWorker o'rnatish

Worker browserda same-origin statik URL orqali yuklanishi kerak. Publish qilingan subpathdan faylni ilovaning public papkasiga build/deploy bosqichida nusxalang:

node_modules/@ihma-io/composables/worker/shared-worker.js
  -> public/sharedWorker.js

Keyin birinchi ulanishdan oldin sozlang:

import { configureSharedWorker, useSharedWorker } from '@ihma-io/composables'

configureSharedWorker({
  namespace: 'my-app',
  workerUrl: '/sharedWorker.js',
})

const { connectSharedWorker, postSharedMessage } = useSharedWorker()
connectSharedWorker()

Transport SharedWorker'dan boshlanadi va qo'llab-quvvatlanmagan browserlarda BroadcastChannel yoki storage eventga tushadi. Atomic lock kerak bo'lsa unsafe storage fallback default holatda o'chirilganini hisobga oling.

Related Packages

@vt7/vue2-composables

Vue2 composables

523 1
@shopware/composables

Shopware Frontends composables for Vue

141,216 230
@tb-dev/vue

Vue utilities

12,617
@alis-build/vue-ideate

Vue 3 composables and components to help integrate Alis Ideate into your product...

2,053 0
@oiij/auto-router

Vue Router utilities and composables for Vue 3

1,394 1

Version History

Version Released Vue License
0.5.0 ^3.4.0 MIT
0.4.0 ^3.4.0 MIT
0.3.2 ^3.4.0 MIT