@triggery/core 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +30 -10
- package/package.json +10 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @triggery/core
|
|
2
2
|
|
|
3
|
+
## 0.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 35936d1: Polished package metadata for framework-agnostic positioning.
|
|
8
|
+
|
|
9
|
+
- `@triggery/core` description corrected: it is **framework-agnostic** (React, Solid, Vue, or any binding you write), not React-only. Keywords now include `solid`, `vue`, `framework-agnostic`, `zero-dependencies`. README expanded to spell out what runs where.
|
|
10
|
+
- `@triggery/testing` README + description now mention **zero runtime dependencies** and that the kit works under Vitest, Jest, and `node:test` alike (no `vi.useFakeTimers` coupling).
|
|
11
|
+
- `@triggery/devtools-bridge`, `@triggery/devtools-redux`, `@triggery/vite` descriptions clarified as framework-agnostic / runtime-pure.
|
|
12
|
+
- `@triggery/react / solid / vue` descriptions now explicitly say **zero runtime dependencies** — the binding is a thin lifecycle adapter, nothing else.
|
|
13
|
+
|
|
14
|
+
No API or behaviour changes.
|
|
15
|
+
|
|
3
16
|
## 0.1.0
|
|
4
17
|
|
|
5
18
|
First public preview release.
|
package/README.md
CHANGED
|
@@ -1,23 +1,43 @@
|
|
|
1
1
|
# @triggery/core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The runtime that powers [Triggery](https://github.com/triggeryjs/triggery) — a declarative `event → conditions → actions` orchestration layer.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- `createTrigger<Schema>(config)` — define a trigger.
|
|
8
|
-
- `createRuntime()` — isolated runtime (registry + scheduler + inspector).
|
|
9
|
-
- `getDefaultRuntime()` / `setDefaultRuntime()` — global singleton.
|
|
10
|
-
- Lifecycle middleware chain.
|
|
11
|
-
- Public types and helpers.
|
|
12
|
-
|
|
13
|
-
You usually do not consume this package directly — use [`@triggery/react`](../react).
|
|
5
|
+
**Framework-agnostic.** `@triggery/core` itself has **zero runtime dependencies** and knows nothing about React, Solid or Vue. The framework bindings (`@triggery/react`, `@triggery/solid`, `@triggery/vue`) and the state adapters are thin layers on top of this runtime — and they can be replaced by anything you author yourself in ~50 lines.
|
|
14
6
|
|
|
15
7
|
## Install
|
|
16
8
|
|
|
17
9
|
```bash
|
|
18
10
|
pnpm add @triggery/core
|
|
11
|
+
# plus your framework binding of choice
|
|
12
|
+
pnpm add @triggery/react # or @triggery/solid, @triggery/vue
|
|
19
13
|
```
|
|
20
14
|
|
|
15
|
+
## What's in the box
|
|
16
|
+
|
|
17
|
+
- `createTrigger<Schema>(config)` — declare a scenario in one file (events, conditions, required gate, handler).
|
|
18
|
+
- `createRuntime(options)` — instantiate an isolated runtime: indexed dispatch (`Map<eventKey, RuntimeTrigger[]>`), microtask + sync schedulers, middleware chain (`onFire` / `onBeforeMatch` / `onSkip` / `onActionStart` / `onActionEnd` / `onError` / `onCascade`), cascade safety (depth limit + cycle detection), inspector ring buffer with DEV/PROD auto-detection.
|
|
19
|
+
- `getDefaultRuntime()` / `setDefaultRuntime()` — global singleton for apps that don't want explicit provider wiring.
|
|
20
|
+
- Concurrency strategies for async handlers (`take-latest` / `take-every` / `take-first` / `queue` / `exhaust` / `sync`) with `AbortSignal`.
|
|
21
|
+
- `actions.debounce / throttle / defer / queue` chainable action wrappers.
|
|
22
|
+
- Last-mount-wins ownership with DEV warn-once.
|
|
23
|
+
|
|
24
|
+
You normally don't consume this package directly — pick a binding:
|
|
25
|
+
|
|
26
|
+
- [`@triggery/react`](https://www.npmjs.com/package/@triggery/react)
|
|
27
|
+
- [`@triggery/solid`](https://www.npmjs.com/package/@triggery/solid)
|
|
28
|
+
- [`@triggery/vue`](https://www.npmjs.com/package/@triggery/vue)
|
|
29
|
+
|
|
30
|
+
## Why "framework-agnostic"
|
|
31
|
+
|
|
32
|
+
The runtime is a plain object with a `Map`-based registry. It does not import React. It does not import a vDOM. It can be embedded in:
|
|
33
|
+
|
|
34
|
+
- a worker / service worker
|
|
35
|
+
- a Node.js process (CLI, server, edge)
|
|
36
|
+
- React Native (it just works — no DOM adapters needed for the runtime itself)
|
|
37
|
+
- a vanilla JS page
|
|
38
|
+
|
|
39
|
+
The same `createTrigger({...})` declaration runs unchanged across all of those. Bindings only wire `useEvent` / `useCondition` / `useAction` to the host framework's lifecycle.
|
|
40
|
+
|
|
21
41
|
## License
|
|
22
42
|
|
|
23
43
|
MIT © Aleksey Skhomenko
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@triggery/core",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Declarative business-logic orchestration
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Declarative business-logic orchestration — framework-agnostic runtime (React, Solid, Vue, or any binding you write). Zero runtime dependencies.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Aleksey Skhomenko",
|
|
7
7
|
"homepage": "https://triggeryjs.github.io/triggery",
|
|
@@ -22,13 +22,17 @@
|
|
|
22
22
|
}
|
|
23
23
|
],
|
|
24
24
|
"keywords": [
|
|
25
|
-
"react",
|
|
26
25
|
"triggers",
|
|
27
26
|
"events",
|
|
28
27
|
"orchestration",
|
|
29
28
|
"business-logic",
|
|
30
29
|
"rule-engine",
|
|
31
|
-
"side-effects"
|
|
30
|
+
"side-effects",
|
|
31
|
+
"framework-agnostic",
|
|
32
|
+
"react",
|
|
33
|
+
"solid",
|
|
34
|
+
"vue",
|
|
35
|
+
"zero-dependencies"
|
|
32
36
|
],
|
|
33
37
|
"type": "module",
|
|
34
38
|
"main": "./dist/index.js",
|
|
@@ -51,7 +55,8 @@
|
|
|
51
55
|
],
|
|
52
56
|
"sideEffects": false,
|
|
53
57
|
"publishConfig": {
|
|
54
|
-
"access": "public"
|
|
58
|
+
"access": "public",
|
|
59
|
+
"provenance": true
|
|
55
60
|
},
|
|
56
61
|
"devDependencies": {
|
|
57
62
|
"tsup": "^8.5.1",
|