@effect/io
Advanced tools
Comparing version 0.25.1 to 0.25.2
@@ -261,3 +261,3 @@ "use strict"; | ||
const parKeys = parallelCollectionKeys(parallel); | ||
if (seqHeadKeys.length === 1 && parKeys.length === 1 && Equal.equals(seqHeadKeys, parKeys)) { | ||
if (seqHeadKeys.length === 1 && parKeys.length === 1 && Equal.equals(seqHeadKeys[0], parKeys[0])) { | ||
return List.cons(sequentialCollectionCombine(sequential.head, parallelCollectionToSequentialCollection(parallel)), sequential.tail); | ||
@@ -264,0 +264,0 @@ } |
@@ -8,9 +8,6 @@ "use strict"; | ||
var _Global = /*#__PURE__*/require("@effect/data/Global"); | ||
var HashMap = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/HashMap")); | ||
var _core = /*#__PURE__*/require("@effect/io/internal_effect_untraced/core"); | ||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } | ||
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } | ||
/** @internal */ | ||
const currentRequestMap = /*#__PURE__*/(0, _Global.globalValue)( /*#__PURE__*/Symbol.for("@effect/io/FiberRef/currentRequestMap"), () => (0, _core.fiberRefUnsafeMake)(HashMap.empty())); | ||
const currentRequestMap = /*#__PURE__*/(0, _Global.globalValue)( /*#__PURE__*/Symbol.for("@effect/io/FiberRef/currentRequestMap"), () => (0, _core.fiberRefUnsafeMake)(new Map())); | ||
exports.currentRequestMap = currentRequestMap; | ||
//# sourceMappingURL=completedRequestMap.js.map |
@@ -31,5 +31,6 @@ "use strict"; | ||
return core.flatMap(core.isEffect(dataSource) ? dataSource : core.succeed(dataSource), ds => core.fiberIdWith(id => { | ||
const proxy = new Proxy(request, {}); | ||
return core.fiberRefGetWith(currentCacheEnabled, cacheEnabled => { | ||
if (cacheEnabled) { | ||
return core.fiberRefGetWith(currentCache, cache => core.flatMap(cache.getEither(request), orNew => { | ||
return core.fiberRefGetWith(currentCache, cache => core.flatMap(cache.getEither(proxy), orNew => { | ||
switch (orNew._tag) { | ||
@@ -46,3 +47,3 @@ case "Left": | ||
orNew.left.listeners.decrement(); | ||
return core.flatMap(cache.invalidateWhen(request, entry => entry.handle === orNew.left.handle), () => fromRequest(request, dataSource)); | ||
return core.flatMap(cache.invalidateWhen(proxy, entry => entry.handle === orNew.left.handle), () => fromRequest(proxy, dataSource)); | ||
} | ||
@@ -57,3 +58,3 @@ return core.blocked(BlockedRequests.empty, (0, _fiberRuntime.ensuring)(core.deferredAwait(orNew.left.handle), core.sync(() => orNew.left.listeners.decrement()))); | ||
orNew.right.listeners.increment(); | ||
return core.blocked(BlockedRequests.single(ds, BlockedRequests.makeEntry(request, orNew.right.handle, orNew.right.listeners, id, { | ||
return core.blocked(BlockedRequests.single(ds, BlockedRequests.makeEntry(proxy, orNew.right.handle, orNew.right.listeners, id, { | ||
completed: false | ||
@@ -70,3 +71,3 @@ })), core.uninterruptibleMask(restore => core.flatMap(core.exit(restore(core.deferredAwait(orNew.right.handle))), exit => { | ||
listeners.increment(); | ||
return core.flatMap(core.deferredMake(), ref => core.blocked(BlockedRequests.single(ds, BlockedRequests.makeEntry(request, ref, listeners, id, { | ||
return core.flatMap(core.deferredMake(), ref => core.blocked(BlockedRequests.single(ds, BlockedRequests.makeEntry(proxy, ref, listeners, id, { | ||
completed: false | ||
@@ -73,0 +74,0 @@ })), (0, _fiberRuntime.ensuring)(core.deferredAwait(ref), core.sync(() => listeners.decrement())))); |
@@ -9,4 +9,2 @@ "use strict"; | ||
var Debug = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Debug")); | ||
var HashMap = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/HashMap")); | ||
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Option")); | ||
var completedRequestMap = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/internal_effect_untraced/completedRequestMap")); | ||
@@ -48,6 +46,8 @@ var core = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/internal_effect_untraced/core")); | ||
const complete = /*#__PURE__*/Debug.dualWithTrace(2, trace => (self, result) => core.fiberRefGetWith(completedRequestMap.currentRequestMap, map => core.sync(() => { | ||
const entry = HashMap.unsafeGet(map, self); | ||
if (!entry.state.completed) { | ||
entry.state.completed = true; | ||
core.deferredUnsafeDone(entry.result, result); | ||
if (map.has(self)) { | ||
const entry = map.get(self); | ||
if (!entry.state.completed) { | ||
entry.state.completed = true; | ||
core.deferredUnsafeDone(entry.result, result); | ||
} | ||
} | ||
@@ -90,4 +90,4 @@ })).traced(trace)); | ||
exports.Listeners = Listeners; | ||
const filterOutCompleted = requests => core.fiberRefGetWith(completedRequestMap.currentRequestMap, map => core.succeed(requests.filter(request => !(Option.getOrUndefined(HashMap.get(map, request))?.state.completed === true)))); | ||
const filterOutCompleted = requests => core.fiberRefGetWith(completedRequestMap.currentRequestMap, map => core.succeed(requests.filter(request => !(map.get(request)?.state.completed === true)))); | ||
exports.filterOutCompleted = filterOutCompleted; | ||
//# sourceMappingURL=request.js.map |
{ | ||
"name": "@effect/io", | ||
"version": "0.25.1", | ||
"version": "0.25.2", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "repository": { |
@@ -73,16 +73,2 @@ import * as Either from "@effect/data/Either" | ||
// /** @internal */ | ||
// export const ContramapContextReducer = <R0, R>( | ||
// f: (context: Context.Context<R0>) => Context.Context<R> | ||
// ): BlockedRequests.Reducer<R, BlockedRequests<R0>> => ({ | ||
// emptyCase: () => empty, | ||
// parCase: (left, right) => par(left, right), | ||
// seqCase: (left, right) => seq(left, right), | ||
// singleCase: (dataSource, blockedRequest) => | ||
// single( | ||
// _dataSource.contramapContext(dataSource, f), | ||
// blockedRequest | ||
// ) | ||
// }) | ||
type BlockedRequestsCase = ParCase | SeqCase | ||
@@ -306,3 +292,3 @@ | ||
parKeys.length === 1 && | ||
Equal.equals(seqHeadKeys, parKeys) | ||
Equal.equals(seqHeadKeys[0], parKeys[0]) | ||
) { | ||
@@ -309,0 +295,0 @@ return List.cons( |
import { globalValue } from "@effect/data/Global" | ||
import * as HashMap from "@effect/data/HashMap" | ||
import { fiberRefUnsafeMake } from "@effect/io/internal_effect_untraced/core" | ||
@@ -9,3 +8,3 @@ import type * as Request from "@effect/io/Request" | ||
Symbol.for("@effect/io/FiberRef/currentRequestMap"), | ||
() => fiberRefUnsafeMake(HashMap.empty<any, Request.Entry<any>>()) | ||
() => fiberRefUnsafeMake(new Map<any, Request.Entry<any>>()) | ||
) |
@@ -55,6 +55,7 @@ import * as Debug from "@effect/data/Debug" | ||
core.fiberIdWith((id) => { | ||
const proxy = new Proxy(request, {}) | ||
return core.fiberRefGetWith(currentCacheEnabled, (cacheEnabled) => { | ||
if (cacheEnabled) { | ||
return core.fiberRefGetWith(currentCache, (cache) => | ||
core.flatMap(cache.getEither(request), (orNew) => { | ||
core.flatMap(cache.getEither(proxy), (orNew) => { | ||
switch (orNew._tag) { | ||
@@ -80,6 +81,6 @@ case "Left": { | ||
cache.invalidateWhen( | ||
request, | ||
proxy, | ||
(entry) => entry.handle === orNew.left.handle | ||
), | ||
() => fromRequest(request, dataSource) | ||
() => fromRequest(proxy, dataSource) | ||
) | ||
@@ -103,3 +104,3 @@ } | ||
ds as any, | ||
BlockedRequests.makeEntry(request, orNew.right.handle, orNew.right.listeners, id, { | ||
BlockedRequests.makeEntry(proxy, orNew.right.handle, orNew.right.listeners, id, { | ||
completed: false | ||
@@ -130,3 +131,3 @@ }) | ||
ds as any, | ||
BlockedRequests.makeEntry(request, ref, listeners, id, { completed: false }) | ||
BlockedRequests.makeEntry(proxy, ref, listeners, id, { completed: false }) | ||
), | ||
@@ -133,0 +134,0 @@ ensuring( |
import * as Data from "@effect/data/Data" | ||
import * as Debug from "@effect/data/Debug" | ||
import * as HashMap from "@effect/data/HashMap" | ||
import * as Option from "@effect/data/Option" | ||
import type * as Effect from "@effect/io/Effect" | ||
@@ -64,6 +62,8 @@ import * as completedRequestMap from "@effect/io/internal_effect_untraced/completedRequestMap" | ||
core.sync(() => { | ||
const entry = HashMap.unsafeGet(map, self) | ||
if (!entry.state.completed) { | ||
entry.state.completed = true | ||
core.deferredUnsafeDone(entry.result, result) | ||
if (map.has(self)) { | ||
const entry = map.get(self)! | ||
if (!entry.state.completed) { | ||
entry.state.completed = true | ||
core.deferredUnsafeDone(entry.result, result) | ||
} | ||
} | ||
@@ -140,4 +140,4 @@ }) | ||
core.succeed( | ||
requests.filter((request) => !(Option.getOrUndefined(HashMap.get(map, request))?.state.completed === true)) | ||
requests.filter((request) => !(map.get(request)?.state.completed === true)) | ||
) | ||
) |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
6732773
115878