effect 2.4.17 → 2.4.19
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/Readable/package.json +6 -0
- package/RegExp/package.json +6 -0
- package/Subscribable/package.json +6 -0
- package/dist/cjs/Duration.js +39 -2
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/List.js +5 -4
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/Logger.js +11 -1
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Readable.js +79 -0
- package/dist/cjs/Readable.js.map +1 -0
- package/dist/cjs/RegExp.js +24 -0
- package/dist/cjs/RegExp.js.map +1 -0
- package/dist/cjs/Subscribable.js +91 -0
- package/dist/cjs/Subscribable.js.map +1 -0
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +2 -1
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/index.js +8 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/cause.js +3 -2
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +2 -2
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +28 -14
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core.js +16 -85
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +5 -0
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/errors.js +13 -0
- package/dist/cjs/internal/errors.js.map +1 -0
- package/dist/cjs/internal/fiberRuntime.js +94 -61
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/hashMap.js +1 -1
- package/dist/cjs/internal/hashMap.js.map +1 -1
- package/dist/cjs/internal/matcher.js +5 -4
- package/dist/cjs/internal/matcher.js.map +1 -1
- package/dist/cjs/internal/ref.js +6 -1
- package/dist/cjs/internal/ref.js.map +1 -1
- package/dist/cjs/internal/schedule/intervals.js +2 -1
- package/dist/cjs/internal/schedule/intervals.js.map +1 -1
- package/dist/cjs/internal/subscriptionRef.js +8 -0
- package/dist/cjs/internal/subscriptionRef.js.map +1 -1
- package/dist/cjs/internal/trie.js +1 -1
- package/dist/cjs/internal/trie.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Duration.d.ts +16 -0
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +10 -0
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/Readable.d.ts +55 -0
- package/dist/dts/Readable.d.ts.map +1 -0
- package/dist/dts/Ref.d.ts +2 -2
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/RegExp.d.ts +17 -0
- package/dist/dts/RegExp.d.ts.map +1 -0
- package/dist/dts/Subscribable.d.ts +59 -0
- package/dist/dts/Subscribable.d.ts.map +1 -0
- package/dist/dts/SubscriptionRef.d.ts +2 -2
- package/dist/dts/SubscriptionRef.d.ts.map +1 -1
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/index.d.ts +14 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/errors.d.ts +5 -0
- package/dist/dts/internal/errors.d.ts.map +1 -0
- package/dist/esm/Duration.js +38 -1
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/List.js +4 -3
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/Logger.js +10 -0
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Readable.js +45 -0
- package/dist/esm/Readable.js.map +1 -0
- package/dist/esm/RegExp.js +17 -0
- package/dist/esm/RegExp.js.map +1 -0
- package/dist/esm/Subscribable.js +56 -0
- package/dist/esm/Subscribable.js.map +1 -0
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/TestAnnotation.js +2 -1
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/index.js +14 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/cause.js +3 -2
- package/dist/esm/internal/cause.js.map +1 -1
- package/dist/esm/internal/configProvider.js +2 -2
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/core-effect.js +25 -12
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core.js +13 -82
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +5 -0
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/errors.js +6 -0
- package/dist/esm/internal/errors.js.map +1 -0
- package/dist/esm/internal/fiberRuntime.js +90 -57
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/hashMap.js +1 -1
- package/dist/esm/internal/hashMap.js.map +1 -1
- package/dist/esm/internal/matcher.js +4 -3
- package/dist/esm/internal/matcher.js.map +1 -1
- package/dist/esm/internal/ref.js +6 -1
- package/dist/esm/internal/ref.js.map +1 -1
- package/dist/esm/internal/schedule/intervals.js +2 -1
- package/dist/esm/internal/schedule/intervals.js.map +1 -1
- package/dist/esm/internal/subscriptionRef.js +8 -0
- package/dist/esm/internal/subscriptionRef.js.map +1 -1
- package/dist/esm/internal/trie.js +1 -1
- package/dist/esm/internal/trie.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +25 -1
- package/src/Duration.ts +54 -1
- package/src/List.ts +5 -3
- package/src/Logger.ts +12 -0
- package/src/Readable.ts +92 -0
- package/src/Ref.ts +2 -2
- package/src/RegExp.ts +17 -0
- package/src/Subscribable.ts +99 -0
- package/src/SubscriptionRef.ts +2 -2
- package/src/TestAnnotation.ts +2 -1
- package/src/index.ts +17 -0
- package/src/internal/cause.ts +3 -2
- package/src/internal/configProvider.ts +2 -3
- package/src/internal/core-effect.ts +78 -66
- package/src/internal/core.ts +13 -150
- package/src/internal/effect/circular.ts +7 -1
- package/src/internal/errors.ts +7 -0
- package/src/internal/fiberRuntime.ts +136 -111
- package/src/internal/hashMap.ts +1 -1
- package/src/internal/matcher.ts +5 -3
- package/src/internal/ref.ts +8 -2
- package/src/internal/schedule/intervals.ts +2 -1
- package/src/internal/subscriptionRef.ts +8 -0
- package/src/internal/trie.ts +1 -1
- package/src/internal/version.ts +1 -1
|
@@ -1094,31 +1094,23 @@ export class FiberRuntime {
|
|
|
1094
1094
|
/** @internal */
|
|
1095
1095
|
export const currentMinimumLogLevel = /*#__PURE__*/globalValue("effect/FiberRef/currentMinimumLogLevel", () => core.fiberRefUnsafeMake(LogLevel.fromLiteral("Info")));
|
|
1096
1096
|
/** @internal */
|
|
1097
|
-
export const
|
|
1098
|
-
const
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
};
|
|
1097
|
+
export const loggerWithConsoleLog = self => internalLogger.makeLogger(opts => {
|
|
1098
|
+
const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices);
|
|
1099
|
+
Context.get(services, consoleTag).unsafe.log(self.log(opts));
|
|
1100
|
+
});
|
|
1102
1101
|
/** @internal */
|
|
1103
|
-
export const
|
|
1104
|
-
const
|
|
1105
|
-
|
|
1106
|
-
})
|
|
1102
|
+
export const loggerWithConsoleError = self => internalLogger.makeLogger(opts => {
|
|
1103
|
+
const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices);
|
|
1104
|
+
Context.get(services, consoleTag).unsafe.error(self.log(opts));
|
|
1105
|
+
});
|
|
1107
1106
|
/** @internal */
|
|
1108
|
-
export const
|
|
1109
|
-
const formatted = internalLogger.jsonLogger.log(options);
|
|
1110
|
-
getConsole(options.context).log(formatted);
|
|
1111
|
-
}));
|
|
1107
|
+
export const defaultLogger = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("effect/Logger/defaultLogger"), () => loggerWithConsoleLog(internalLogger.stringLogger));
|
|
1112
1108
|
/** @internal */
|
|
1113
|
-
export const
|
|
1114
|
-
const formatted = internalLogger.logfmtLogger.log(options);
|
|
1115
|
-
getConsole(options.context).log(formatted);
|
|
1116
|
-
}));
|
|
1109
|
+
export const jsonLogger = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("effect/Logger/jsonLogger"), () => loggerWithConsoleLog(internalLogger.jsonLogger));
|
|
1117
1110
|
/** @internal */
|
|
1118
|
-
export const
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
}));
|
|
1111
|
+
export const logFmtLogger = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("effect/Logger/logFmtLogger"), () => loggerWithConsoleLog(internalLogger.logfmtLogger));
|
|
1112
|
+
/** @internal */
|
|
1113
|
+
export const structuredLogger = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("effect/Logger/structuredLogger"), () => loggerWithConsoleLog(internalLogger.structuredLogger));
|
|
1122
1114
|
/** @internal */
|
|
1123
1115
|
export const tracerLogger = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("effect/Logger/tracerLogger"), () => internalLogger.makeLogger(({
|
|
1124
1116
|
annotations,
|
|
@@ -1611,7 +1603,7 @@ export const finalizersMask = strategy => self => core.contextWithEffect(context
|
|
|
1611
1603
|
/* @internal */
|
|
1612
1604
|
export const scopeWith = f => core.flatMap(scopeTag, f);
|
|
1613
1605
|
/* @internal */
|
|
1614
|
-
export const scopedEffect = effect => core.flatMap(scopeMake(), scope => scopeUse(scope)
|
|
1606
|
+
export const scopedEffect = effect => core.flatMap(scopeMake(), scope => scopeUse(effect, scope));
|
|
1615
1607
|
/* @internal */
|
|
1616
1608
|
export const sequentialFinalizers = self => core.contextWithEffect(context => Option.match(Context.getOption(context, scopeTag), {
|
|
1617
1609
|
onNone: () => self,
|
|
@@ -1684,50 +1676,80 @@ export const withRuntimeFlagsScoped = update => {
|
|
|
1684
1676
|
return pipe(core.updateRuntimeFlags(update), core.zipRight(addFinalizer(() => core.updateRuntimeFlags(revertRuntimeFlags))), core.asUnit);
|
|
1685
1677
|
}), core.uninterruptible);
|
|
1686
1678
|
};
|
|
1687
|
-
// circular with ReleaseMap
|
|
1688
|
-
/* @internal */
|
|
1689
|
-
export const releaseMapReleaseAll = (strategy, exit) => self => core.suspend(() => {
|
|
1690
|
-
switch (self.state._tag) {
|
|
1691
|
-
case "Exited":
|
|
1692
|
-
{
|
|
1693
|
-
return core.unit;
|
|
1694
|
-
}
|
|
1695
|
-
case "Running":
|
|
1696
|
-
{
|
|
1697
|
-
const finalizersMap = self.state.finalizers;
|
|
1698
|
-
const update = self.state.update;
|
|
1699
|
-
const finalizers = Array.from(finalizersMap.keys()).sort((a, b) => b - a).map(key => finalizersMap.get(key));
|
|
1700
|
-
self.state = {
|
|
1701
|
-
_tag: "Exited",
|
|
1702
|
-
nextKey: self.state.nextKey,
|
|
1703
|
-
exit,
|
|
1704
|
-
update
|
|
1705
|
-
};
|
|
1706
|
-
return executionStrategy.isSequential(strategy) ? pipe(finalizers, core.forEachSequential(fin => core.exit(update(fin)(exit))), core.flatMap(results => pipe(core.exitCollectAll(results), Option.map(core.exitAsUnit), Option.getOrElse(() => core.exitUnit)))) : executionStrategy.isParallel(strategy) ? pipe(forEachParUnbounded(finalizers, fin => core.exit(update(fin)(exit)), false), core.flatMap(results => pipe(core.exitCollectAll(results, {
|
|
1707
|
-
parallel: true
|
|
1708
|
-
}), Option.map(core.exitAsUnit), Option.getOrElse(() => core.exitUnit)))) : pipe(forEachParN(finalizers, strategy.parallelism, fin => core.exit(update(fin)(exit)), false), core.flatMap(results => pipe(core.exitCollectAll(results, {
|
|
1709
|
-
parallel: true
|
|
1710
|
-
}), Option.map(core.exitAsUnit), Option.getOrElse(() => core.exitUnit))));
|
|
1711
|
-
}
|
|
1712
|
-
}
|
|
1713
|
-
});
|
|
1714
1679
|
// circular with Scope
|
|
1715
1680
|
/** @internal */
|
|
1716
1681
|
export const scopeTag = /*#__PURE__*/Context.GenericTag("effect/Scope");
|
|
1717
1682
|
/* @internal */
|
|
1718
1683
|
export const scope = scopeTag;
|
|
1719
|
-
|
|
1720
|
-
|
|
1684
|
+
const scopeUnsafeAddFinalizer = (scope, fin) => {
|
|
1685
|
+
if (scope.state._tag === "Open") {
|
|
1686
|
+
scope.state.finalizers.add(fin);
|
|
1687
|
+
}
|
|
1688
|
+
};
|
|
1689
|
+
const ScopeImplProto = {
|
|
1721
1690
|
[core.ScopeTypeId]: core.ScopeTypeId,
|
|
1722
1691
|
[core.CloseableScopeTypeId]: core.CloseableScopeTypeId,
|
|
1723
|
-
strategy,
|
|
1724
1692
|
pipe() {
|
|
1725
1693
|
return pipeArguments(this, arguments);
|
|
1726
1694
|
},
|
|
1727
|
-
fork
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1695
|
+
fork(strategy) {
|
|
1696
|
+
return core.sync(() => {
|
|
1697
|
+
const newScope = scopeUnsafeMake(strategy);
|
|
1698
|
+
if (this.state._tag === "Closed") {
|
|
1699
|
+
newScope.state = this.state;
|
|
1700
|
+
return newScope;
|
|
1701
|
+
}
|
|
1702
|
+
const fin = exit => newScope.close(exit);
|
|
1703
|
+
this.state.finalizers.add(fin);
|
|
1704
|
+
scopeUnsafeAddFinalizer(newScope, _ => core.sync(() => {
|
|
1705
|
+
if (this.state._tag === "Open") {
|
|
1706
|
+
this.state.finalizers.delete(fin);
|
|
1707
|
+
}
|
|
1708
|
+
}));
|
|
1709
|
+
return newScope;
|
|
1710
|
+
});
|
|
1711
|
+
},
|
|
1712
|
+
close(exit) {
|
|
1713
|
+
return core.suspend(() => {
|
|
1714
|
+
if (this.state._tag === "Closed") {
|
|
1715
|
+
return core.unit;
|
|
1716
|
+
}
|
|
1717
|
+
const finalizers = Array.from(this.state.finalizers.values()).reverse();
|
|
1718
|
+
this.state = {
|
|
1719
|
+
_tag: "Closed",
|
|
1720
|
+
exit
|
|
1721
|
+
};
|
|
1722
|
+
if (finalizers.length === 0) {
|
|
1723
|
+
return core.unit;
|
|
1724
|
+
}
|
|
1725
|
+
return executionStrategy.isSequential(this.strategy) ? pipe(core.forEachSequential(finalizers, fin => core.exit(fin(exit))), core.flatMap(results => pipe(core.exitCollectAll(results), Option.map(core.exitAsUnit), Option.getOrElse(() => core.exitUnit)))) : executionStrategy.isParallel(this.strategy) ? pipe(forEachParUnbounded(finalizers, fin => core.exit(fin(exit)), false), core.flatMap(results => pipe(core.exitCollectAll(results, {
|
|
1726
|
+
parallel: true
|
|
1727
|
+
}), Option.map(core.exitAsUnit), Option.getOrElse(() => core.exitUnit)))) : pipe(forEachParN(finalizers, this.strategy.parallelism, fin => core.exit(fin(exit)), false), core.flatMap(results => pipe(core.exitCollectAll(results, {
|
|
1728
|
+
parallel: true
|
|
1729
|
+
}), Option.map(core.exitAsUnit), Option.getOrElse(() => core.exitUnit))));
|
|
1730
|
+
});
|
|
1731
|
+
},
|
|
1732
|
+
addFinalizer(fin) {
|
|
1733
|
+
return core.suspend(() => {
|
|
1734
|
+
if (this.state._tag === "Closed") {
|
|
1735
|
+
return fin(this.state.exit);
|
|
1736
|
+
}
|
|
1737
|
+
this.state.finalizers.add(fin);
|
|
1738
|
+
return core.unit;
|
|
1739
|
+
});
|
|
1740
|
+
}
|
|
1741
|
+
};
|
|
1742
|
+
const scopeUnsafeMake = (strategy = executionStrategy.sequential) => {
|
|
1743
|
+
const scope = Object.create(ScopeImplProto);
|
|
1744
|
+
scope.strategy = strategy;
|
|
1745
|
+
scope.state = {
|
|
1746
|
+
_tag: "Open",
|
|
1747
|
+
finalizers: new Set()
|
|
1748
|
+
};
|
|
1749
|
+
return scope;
|
|
1750
|
+
};
|
|
1751
|
+
/* @internal */
|
|
1752
|
+
export const scopeMake = (strategy = executionStrategy.sequential) => core.sync(() => scopeUnsafeMake(strategy));
|
|
1731
1753
|
/* @internal */
|
|
1732
1754
|
export const scopeExtend = /*#__PURE__*/dual(2, (effect, scope) => core.mapInputContext(effect,
|
|
1733
1755
|
// @ts-expect-error
|
|
@@ -1913,7 +1935,18 @@ export const interruptWhenPossible = /*#__PURE__*/dual(2, (self, all) => core.fi
|
|
|
1913
1935
|
})));
|
|
1914
1936
|
// circular Tracer
|
|
1915
1937
|
/** @internal */
|
|
1916
|
-
export const makeSpanScoped = (name, options) =>
|
|
1938
|
+
export const makeSpanScoped = (name, options) => core.uninterruptible(core.withFiberRuntime(fiber => {
|
|
1939
|
+
const scope = Context.unsafeGet(fiber.getFiberRef(core.currentContext), scopeTag);
|
|
1940
|
+
const span = internalEffect.unsafeMakeSpan(fiber, name, options);
|
|
1941
|
+
const timingEnabled = fiber.getFiberRef(core.currentTracerTimingEnabled);
|
|
1942
|
+
const clock_ = Context.get(fiber.getFiberRef(defaultServices.currentServices), clock.clockTag);
|
|
1943
|
+
return core.as(core.scopeAddFinalizerExit(scope, exit => core.sync(() => {
|
|
1944
|
+
if (span.status._tag === "Ended") {
|
|
1945
|
+
return;
|
|
1946
|
+
}
|
|
1947
|
+
span.end(timingEnabled ? clock_.unsafeCurrentTimeNanos() : BigInt(0), exit);
|
|
1948
|
+
})), span);
|
|
1949
|
+
}));
|
|
1917
1950
|
/* @internal */
|
|
1918
1951
|
export const withTracerScoped = value => fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(tracer.tracerTag, value));
|
|
1919
1952
|
/** @internal */
|