brass-runtime 1.0.0 → 1.0.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/README.md +8 -8
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# 🛠️ brass-
|
|
1
|
+
# 🛠️ brass-runtime — Mini runtime funcional al estilo ZIO en TypeScript
|
|
2
2
|
|
|
3
|
-
**brass-
|
|
3
|
+
**brass-runtime** es un runtime funcional inspirado en **ZIO 2**, escrito en **TypeScript vanilla** y **sin usar Promises ni async/await** como primitiva principal de modelado.
|
|
4
4
|
|
|
5
5
|
El objetivo del proyecto es explorar cómo construir, desde cero, un sistema de:
|
|
6
6
|
|
|
@@ -21,7 +21,7 @@ Todo con un diseño **determinístico**, **pure FP**, y sin depender de `Promise
|
|
|
21
21
|
|
|
22
22
|
### 1. `Effect` sincrónico (núcleo funcional)
|
|
23
23
|
|
|
24
|
-
En `brass-
|
|
24
|
+
En `brass-runtime`, un efecto puro se modela como:
|
|
25
25
|
|
|
26
26
|
```ts
|
|
27
27
|
type Exit<E, A> =
|
|
@@ -48,7 +48,7 @@ Este núcleo no usa `Promise` ni `async/await`. Es **100% sincrónico y determin
|
|
|
48
48
|
|
|
49
49
|
### 2. `Async` — efectos asincrónicos sin Promises
|
|
50
50
|
|
|
51
|
-
Para modelar operaciones asincrónicas, `brass-
|
|
51
|
+
Para modelar operaciones asincrónicas, `brass-runtime` define un tipo de datos algebraico:
|
|
52
52
|
|
|
53
53
|
```ts
|
|
54
54
|
type Async<R, E, A> =
|
|
@@ -147,7 +147,7 @@ si algo vive en un `Scope`, se limpia cuando el scope termina.
|
|
|
147
147
|
|
|
148
148
|
### 6. Acquire / Release — Resource Safety
|
|
149
149
|
|
|
150
|
-
Al estilo `ZIO.acquireRelease`, `brass-
|
|
150
|
+
Al estilo `ZIO.acquireRelease`, `brass-runtime` implementa:
|
|
151
151
|
|
|
152
152
|
```ts
|
|
153
153
|
acquireRelease(
|
|
@@ -199,7 +199,7 @@ Esto replica la semántica de **ZIO 2 structured concurrency**.
|
|
|
199
199
|
|
|
200
200
|
### 8. ZStream-like — Streams estructurados con backpressure
|
|
201
201
|
|
|
202
|
-
`brass-
|
|
202
|
+
`brass-runtime` incluye una base de **streams estructurados** inspirados en `ZStream`:
|
|
203
203
|
|
|
204
204
|
```ts
|
|
205
205
|
type Pull<R, E, A> = Async<R, Option<E>, A>;
|
|
@@ -241,7 +241,7 @@ y el scope del stream garantiza que todos los recursos/finalizers se limpien al
|
|
|
241
241
|
|
|
242
242
|
## 📁 Estructura sugerida del proyecto
|
|
243
243
|
|
|
244
|
-
Una posible organización de archivos para tu repo de **brass-
|
|
244
|
+
Una posible organización de archivos para tu repo de **brass-runtime**:
|
|
245
245
|
|
|
246
246
|
```bash
|
|
247
247
|
src/
|
|
@@ -357,5 +357,5 @@ Algunas direcciones interesantes para futuro:
|
|
|
357
357
|
|
|
358
358
|
Hecho con ❤️ en TypeScript, para aprender y jugar con runtimes funcionales.
|
|
359
359
|
|
|
360
|
-
**Nombre del proyecto:** `brass-
|
|
360
|
+
**Nombre del proyecto:** `brass-runtime`
|
|
361
361
|
**Objetivo:** construir un mini ZIO-like runtime en el ecosistema JS/TS, pero manteniendo el control total sobre la semántica de los efectos desde el código de usuario.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brass-runtime",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Effect runtime utilities for TypeScript",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"@semantic-release/github": "^11.0.0",
|
|
26
26
|
"@semantic-release/npm": "^13.1.3",
|
|
27
27
|
"@semantic-release/release-notes-generator": "^14.0.0",
|
|
28
|
+
"conventional-changelog-conventionalcommits": "^7.x.x",
|
|
28
29
|
"semantic-release": "^25.0.2",
|
|
29
30
|
"ts-node-dev": "^2.0.0",
|
|
30
31
|
"typescript": "^5.9.3"
|