@neabyte/utils-core
v0.1.0
Published
Zero-dependency utilities for modern development across all runtimes
Maintainers
Readme
Utils Core
Zero-dependency utilities for modern development across all runtimes.
Features
- Zero dependencies - No external packages required.
- Broadcast - Global named-channel event bus.
- Sequential - Async function queue with sequential execution guarantee.
- Signal - Typed event emitter with error-isolated listeners.
- Store - Reactive state container with reducer updates.
Installation
[!NOTE] Prerequisites: For Deno (install from deno.com). For npm use Node.js (e.g. nodejs.org).
Deno (JSR):
deno add jsr:@neabyte/utils-corenpm:
npm install @neabyte/utils-coreCDN (jsDelivr/unpkg/esm.sh):
<script type="module">
import {
createSignal,
createStore,
broadcast
} from 'https://cdn.jsdelivr.net/npm/@neabyte/[email protected]/dist/index.mjs'
</script>Or via esm.sh:
<script type="module">
import { createSignal, createStore, broadcast } from 'https://esm.sh/@neabyte/[email protected]'
</script>Or via importmap:
<script type="importmap">
{
"imports": {
"@neabyte/utils-core": "https://cdn.jsdelivr.net/npm/@neabyte/[email protected]/dist/index.mjs"
}
}
</script>
<script type="module">
import { createSignal } from '@neabyte/utils-core'
</script>Quick Start
import { createSignal, createStore, broadcast } from '@neabyte/utils-core'
// Signal - event emitter
const signal = createSignal<[string]>()
signal.subscribe(msg => console.log(msg))
signal.emit('hello') // 'hello'
// Store - reactive state
const store = createStore(0)
store.subscribe(() => console.log(store.getState()))
store.setState(n => n + 1) // 1
// Broadcast - global event bus
broadcast.on('user:login', user => console.log(user))
broadcast.emit('user:login', { id: 1 })- docs/README.md for full documentation.
Build
npm build (bundles to dist/):
npm run buildTesting
Type check - format, lint, and type-check:
deno task checkUnit tests - format/lint tests and run all tests:
deno task test- Tests live under
tests/(signal, store, and broadcast tests). - The test task uses
--allow-read,--allow-write, and--allow-env.
License
This project is licensed under the MIT license. See the LICENSE file for details.
