@kithinji/orca 1.0.15 → 1.0.16
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 +7 -1
- package/dist/browser/index.iife.js +93 -11
- package/dist/browser/index.iife.js.map +3 -3
- package/dist/browser/index.mjs +93 -11
- package/dist/browser/index.mjs.map +3 -3
- package/dist/node/index.cjs +97 -12
- package/dist/node/index.cjs.map +3 -3
- package/dist/node/index.mjs +93 -11
- package/dist/node/index.mjs.map +3 -3
- package/dist/types/shared/signal/signal.d.ts +5 -2
- package/dist/types/shared/signal/signal.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,13 @@
|
|
|
12
12
|
</p>
|
|
13
13
|
<p align="center">
|
|
14
14
|
<a href="https://www.npmjs.com/package/@kithinji/orca">
|
|
15
|
-
<img src="https://img.shields.io/badge/NPM_package-v1.0.
|
|
15
|
+
<img src="https://img.shields.io/badge/NPM_package-v1.0.16-blue" alt="Orca on npm" />
|
|
16
|
+
</a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<a href="https://github.com/kithinjibrian/pod">
|
|
21
|
+
<img src="https://img.shields.io/badge/POD CLI Tool-blue" alt="Pod on github" />
|
|
16
22
|
</a>
|
|
17
23
|
</p>
|
|
18
24
|
|
|
@@ -81,10 +81,12 @@ var kithinjiorca = (() => {
|
|
|
81
81
|
SIGNATURE_METADATA_KEY: () => SIGNATURE_METADATA_KEY,
|
|
82
82
|
Signature: () => Signature,
|
|
83
83
|
assert$: () => assert$,
|
|
84
|
+
batch: () => batch,
|
|
84
85
|
browser: () => browser_exports,
|
|
85
86
|
collectAllProvidersFromNode: () => collectAllProvidersFromNode,
|
|
86
87
|
computed: () => computed,
|
|
87
88
|
createComponent: () => createComponent,
|
|
89
|
+
createRoot: () => createRoot,
|
|
88
90
|
effect: () => effect,
|
|
89
91
|
from: () => from,
|
|
90
92
|
getCurrentInjector: () => getCurrentInjector,
|
|
@@ -109,7 +111,8 @@ var kithinjiorca = (() => {
|
|
|
109
111
|
style: () => style,
|
|
110
112
|
symbolValueReplacer: () => symbolValueReplacer,
|
|
111
113
|
symbolValueReviver: () => symbolValueReviver,
|
|
112
|
-
toSignal: () => toSignal
|
|
114
|
+
toSignal: () => toSignal,
|
|
115
|
+
untracked: () => untracked
|
|
113
116
|
});
|
|
114
117
|
var import_reflect_metadata = __require("reflect-metadata");
|
|
115
118
|
|
|
@@ -171,8 +174,10 @@ var kithinjiorca = (() => {
|
|
|
171
174
|
StringRenderer: () => StringRenderer,
|
|
172
175
|
VNode: () => VNode,
|
|
173
176
|
assert$: () => assert$,
|
|
177
|
+
batch: () => batch,
|
|
174
178
|
collectAllProvidersFromNode: () => collectAllProvidersFromNode,
|
|
175
179
|
computed: () => computed,
|
|
180
|
+
createRoot: () => createRoot,
|
|
176
181
|
effect: () => effect,
|
|
177
182
|
from: () => from,
|
|
178
183
|
getCurrentInjector: () => getCurrentInjector,
|
|
@@ -194,7 +199,8 @@ var kithinjiorca = (() => {
|
|
|
194
199
|
store: () => store,
|
|
195
200
|
symbolValueReplacer: () => symbolValueReplacer,
|
|
196
201
|
symbolValueReviver: () => symbolValueReviver,
|
|
197
|
-
toSignal: () => toSignal
|
|
202
|
+
toSignal: () => toSignal,
|
|
203
|
+
untracked: () => untracked
|
|
198
204
|
});
|
|
199
205
|
|
|
200
206
|
// src/shared/store.ts
|
|
@@ -1220,11 +1226,17 @@ var kithinjiorca = (() => {
|
|
|
1220
1226
|
|
|
1221
1227
|
// src/shared/signal/signal.ts
|
|
1222
1228
|
var currentEffect = null;
|
|
1229
|
+
var batchDepth = 0;
|
|
1230
|
+
var pendingEffects = /* @__PURE__ */ new Set();
|
|
1223
1231
|
function signal(initialValue) {
|
|
1224
1232
|
let value = initialValue;
|
|
1225
1233
|
const subscribers = /* @__PURE__ */ new Set();
|
|
1226
1234
|
const notify = () => {
|
|
1227
|
-
|
|
1235
|
+
if (batchDepth > 0) {
|
|
1236
|
+
subscribers.forEach((sub) => pendingEffects.add(sub));
|
|
1237
|
+
} else {
|
|
1238
|
+
subscribers.forEach((sub) => sub.execute());
|
|
1239
|
+
}
|
|
1228
1240
|
};
|
|
1229
1241
|
return {
|
|
1230
1242
|
_isSignal: true,
|
|
@@ -1232,6 +1244,7 @@ var kithinjiorca = (() => {
|
|
|
1232
1244
|
get value() {
|
|
1233
1245
|
if (currentEffect) {
|
|
1234
1246
|
subscribers.add(currentEffect);
|
|
1247
|
+
currentEffect.deps.add(subscribers);
|
|
1235
1248
|
}
|
|
1236
1249
|
return value;
|
|
1237
1250
|
},
|
|
@@ -1244,29 +1257,98 @@ var kithinjiorca = (() => {
|
|
|
1244
1257
|
};
|
|
1245
1258
|
}
|
|
1246
1259
|
function effect(fn) {
|
|
1247
|
-
const
|
|
1248
|
-
|
|
1260
|
+
const deps = /* @__PURE__ */ new Set();
|
|
1261
|
+
let cleanupFn;
|
|
1262
|
+
const runner = () => {
|
|
1263
|
+
runner.execute();
|
|
1264
|
+
};
|
|
1265
|
+
runner.deps = deps;
|
|
1266
|
+
runner.execute = () => {
|
|
1267
|
+
if (cleanupFn) {
|
|
1268
|
+
cleanupFn();
|
|
1269
|
+
cleanupFn = void 0;
|
|
1270
|
+
}
|
|
1271
|
+
deps.forEach((subs) => subs.delete(runner));
|
|
1272
|
+
deps.clear();
|
|
1273
|
+
const prevEffect = currentEffect;
|
|
1274
|
+
currentEffect = runner;
|
|
1249
1275
|
try {
|
|
1250
|
-
fn();
|
|
1276
|
+
const result = fn();
|
|
1277
|
+
if (typeof result === "function") {
|
|
1278
|
+
cleanupFn = result;
|
|
1279
|
+
}
|
|
1251
1280
|
} finally {
|
|
1252
|
-
currentEffect =
|
|
1281
|
+
currentEffect = prevEffect;
|
|
1253
1282
|
}
|
|
1254
1283
|
};
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1284
|
+
runner.cleanup = () => {
|
|
1285
|
+
if (cleanupFn) {
|
|
1286
|
+
cleanupFn();
|
|
1287
|
+
cleanupFn = void 0;
|
|
1288
|
+
}
|
|
1289
|
+
deps.forEach((subs) => subs.delete(runner));
|
|
1290
|
+
deps.clear();
|
|
1258
1291
|
};
|
|
1292
|
+
runner.cleanupFn = cleanupFn;
|
|
1293
|
+
runner.execute();
|
|
1294
|
+
return () => runner.cleanup();
|
|
1259
1295
|
}
|
|
1260
1296
|
function computed(fn) {
|
|
1261
1297
|
const sig = signal(fn());
|
|
1262
|
-
|
|
1298
|
+
let cleanup;
|
|
1299
|
+
cleanup = effect(() => {
|
|
1263
1300
|
sig.value = fn();
|
|
1264
1301
|
});
|
|
1302
|
+
const originalSignal = sig;
|
|
1303
|
+
const dispose = cleanup;
|
|
1304
|
+
originalSignal.dispose = dispose;
|
|
1265
1305
|
return sig;
|
|
1266
1306
|
}
|
|
1307
|
+
function batch(fn) {
|
|
1308
|
+
batchDepth++;
|
|
1309
|
+
try {
|
|
1310
|
+
fn();
|
|
1311
|
+
} finally {
|
|
1312
|
+
batchDepth--;
|
|
1313
|
+
if (batchDepth === 0) {
|
|
1314
|
+
const effects = Array.from(pendingEffects);
|
|
1315
|
+
pendingEffects.clear();
|
|
1316
|
+
effects.forEach((effect2) => effect2.execute());
|
|
1317
|
+
}
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1267
1320
|
function isSignal(value) {
|
|
1268
1321
|
return value && value._isSignal === true;
|
|
1269
1322
|
}
|
|
1323
|
+
function createRoot(fn) {
|
|
1324
|
+
const cleanups = [];
|
|
1325
|
+
const dispose = () => {
|
|
1326
|
+
cleanups.forEach((cleanup) => cleanup());
|
|
1327
|
+
cleanups.length = 0;
|
|
1328
|
+
};
|
|
1329
|
+
const prevEffect = currentEffect;
|
|
1330
|
+
const originalEffect = effect;
|
|
1331
|
+
globalThis.effect = (fn2) => {
|
|
1332
|
+
const cleanup = originalEffect(fn2);
|
|
1333
|
+
cleanups.push(cleanup);
|
|
1334
|
+
return cleanup;
|
|
1335
|
+
};
|
|
1336
|
+
try {
|
|
1337
|
+
return fn(dispose);
|
|
1338
|
+
} finally {
|
|
1339
|
+
globalThis.effect = originalEffect;
|
|
1340
|
+
currentEffect = prevEffect;
|
|
1341
|
+
}
|
|
1342
|
+
}
|
|
1343
|
+
function untracked(fn) {
|
|
1344
|
+
const prevEffect = currentEffect;
|
|
1345
|
+
currentEffect = null;
|
|
1346
|
+
try {
|
|
1347
|
+
return fn();
|
|
1348
|
+
} finally {
|
|
1349
|
+
currentEffect = prevEffect;
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1270
1352
|
|
|
1271
1353
|
// src/shared/observable/observable.ts
|
|
1272
1354
|
var Observable = class {
|