effect 3.2.9 → 3.3.0

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.
Files changed (142) hide show
  1. package/Redacted/package.json +6 -0
  2. package/dist/cjs/Config.js +9 -1
  3. package/dist/cjs/Config.js.map +1 -1
  4. package/dist/cjs/Either.js +2 -1
  5. package/dist/cjs/Either.js.map +1 -1
  6. package/dist/cjs/Iterable.js +15 -2
  7. package/dist/cjs/Iterable.js.map +1 -1
  8. package/dist/cjs/Layer.js +11 -1
  9. package/dist/cjs/Layer.js.map +1 -1
  10. package/dist/cjs/Option.js +7 -1
  11. package/dist/cjs/Option.js.map +1 -1
  12. package/dist/cjs/Pool.js +26 -0
  13. package/dist/cjs/Pool.js.map +1 -1
  14. package/dist/cjs/Predicate.js +51 -1
  15. package/dist/cjs/Predicate.js.map +1 -1
  16. package/dist/cjs/Redacted.js +65 -0
  17. package/dist/cjs/Redacted.js.map +1 -0
  18. package/dist/cjs/STM.js.map +1 -1
  19. package/dist/cjs/Secret.js +7 -0
  20. package/dist/cjs/Secret.js.map +1 -1
  21. package/dist/cjs/Stream.js +32 -1
  22. package/dist/cjs/Stream.js.map +1 -1
  23. package/dist/cjs/Tuple.js +15 -1
  24. package/dist/cjs/Tuple.js.map +1 -1
  25. package/dist/cjs/Utils.js.map +1 -1
  26. package/dist/cjs/index.js +4 -2
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/internal/config.js +8 -1
  29. package/dist/cjs/internal/config.js.map +1 -1
  30. package/dist/cjs/internal/layer.js +14 -2
  31. package/dist/cjs/internal/layer.js.map +1 -1
  32. package/dist/cjs/internal/pool.js +206 -235
  33. package/dist/cjs/internal/pool.js.map +1 -1
  34. package/dist/cjs/internal/redacted.js +87 -0
  35. package/dist/cjs/internal/redacted.js.map +1 -0
  36. package/dist/cjs/internal/secret.js +40 -23
  37. package/dist/cjs/internal/secret.js.map +1 -1
  38. package/dist/cjs/internal/stm/stm.js +2 -1
  39. package/dist/cjs/internal/stm/stm.js.map +1 -1
  40. package/dist/cjs/internal/stream.js +15 -7
  41. package/dist/cjs/internal/stream.js.map +1 -1
  42. package/dist/cjs/internal/version.js +1 -1
  43. package/dist/dts/Config.d.ts +9 -0
  44. package/dist/dts/Config.d.ts.map +1 -1
  45. package/dist/dts/Either.d.ts.map +1 -1
  46. package/dist/dts/Iterable.d.ts +7 -0
  47. package/dist/dts/Iterable.d.ts.map +1 -1
  48. package/dist/dts/Layer.d.ts +20 -0
  49. package/dist/dts/Layer.d.ts.map +1 -1
  50. package/dist/dts/Option.d.ts.map +1 -1
  51. package/dist/dts/Pool.d.ts +31 -0
  52. package/dist/dts/Pool.d.ts.map +1 -1
  53. package/dist/dts/Predicate.d.ts +57 -0
  54. package/dist/dts/Predicate.d.ts.map +1 -1
  55. package/dist/dts/Redacted.d.ts +68 -0
  56. package/dist/dts/Redacted.d.ts.map +1 -0
  57. package/dist/dts/STM.d.ts +4 -1
  58. package/dist/dts/STM.d.ts.map +1 -1
  59. package/dist/dts/Secret.d.ts +14 -1
  60. package/dist/dts/Secret.d.ts.map +1 -1
  61. package/dist/dts/Stream.d.ts +61 -4
  62. package/dist/dts/Stream.d.ts.map +1 -1
  63. package/dist/dts/Tuple.d.ts +51 -0
  64. package/dist/dts/Tuple.d.ts.map +1 -1
  65. package/dist/dts/Types.d.ts +46 -0
  66. package/dist/dts/Types.d.ts.map +1 -1
  67. package/dist/dts/Utils.d.ts +6 -5
  68. package/dist/dts/Utils.d.ts.map +1 -1
  69. package/dist/dts/index.d.ts +5 -0
  70. package/dist/dts/index.d.ts.map +1 -1
  71. package/dist/dts/internal/layer.d.ts +15 -1
  72. package/dist/dts/internal/layer.d.ts.map +1 -1
  73. package/dist/dts/internal/redacted.d.ts +2 -0
  74. package/dist/dts/internal/redacted.d.ts.map +1 -0
  75. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  76. package/dist/dts/internal/stream.d.ts +1 -0
  77. package/dist/dts/internal/stream.d.ts.map +1 -1
  78. package/dist/esm/Config.js +8 -0
  79. package/dist/esm/Config.js.map +1 -1
  80. package/dist/esm/Either.js +2 -1
  81. package/dist/esm/Either.js.map +1 -1
  82. package/dist/esm/Iterable.js +12 -0
  83. package/dist/esm/Iterable.js.map +1 -1
  84. package/dist/esm/Layer.js +10 -0
  85. package/dist/esm/Layer.js.map +1 -1
  86. package/dist/esm/Option.js +7 -1
  87. package/dist/esm/Option.js.map +1 -1
  88. package/dist/esm/Pool.js +26 -0
  89. package/dist/esm/Pool.js.map +1 -1
  90. package/dist/esm/Predicate.js +50 -0
  91. package/dist/esm/Predicate.js.map +1 -1
  92. package/dist/esm/Redacted.js +33 -0
  93. package/dist/esm/Redacted.js.map +1 -0
  94. package/dist/esm/STM.js.map +1 -1
  95. package/dist/esm/Secret.js +7 -0
  96. package/dist/esm/Secret.js.map +1 -1
  97. package/dist/esm/Stream.js +31 -0
  98. package/dist/esm/Stream.js.map +1 -1
  99. package/dist/esm/Tuple.js +51 -0
  100. package/dist/esm/Tuple.js.map +1 -1
  101. package/dist/esm/Utils.js.map +1 -1
  102. package/dist/esm/index.js +5 -0
  103. package/dist/esm/index.js.map +1 -1
  104. package/dist/esm/internal/config.js +6 -0
  105. package/dist/esm/internal/config.js.map +1 -1
  106. package/dist/esm/internal/layer.js +12 -0
  107. package/dist/esm/internal/layer.js.map +1 -1
  108. package/dist/esm/internal/pool.js +205 -235
  109. package/dist/esm/internal/pool.js.map +1 -1
  110. package/dist/esm/internal/redacted.js +52 -0
  111. package/dist/esm/internal/redacted.js.map +1 -0
  112. package/dist/esm/internal/secret.js +39 -22
  113. package/dist/esm/internal/secret.js.map +1 -1
  114. package/dist/esm/internal/stm/stm.js +2 -1
  115. package/dist/esm/internal/stm/stm.js.map +1 -1
  116. package/dist/esm/internal/stream.js +13 -4
  117. package/dist/esm/internal/stream.js.map +1 -1
  118. package/dist/esm/internal/version.js +1 -1
  119. package/package.json +9 -1
  120. package/src/Config.ts +10 -0
  121. package/src/Either.ts +4 -1
  122. package/src/Iterable.ts +13 -0
  123. package/src/Layer.ts +22 -0
  124. package/src/Option.ts +7 -1
  125. package/src/Pool.ts +39 -6
  126. package/src/Predicate.ts +59 -0
  127. package/src/Redacted.ts +79 -0
  128. package/src/STM.ts +7 -2
  129. package/src/Secret.ts +14 -1
  130. package/src/Stream.ts +67 -7
  131. package/src/Tuple.ts +53 -0
  132. package/src/Types.ts +48 -0
  133. package/src/Utils.ts +9 -6
  134. package/src/index.ts +6 -0
  135. package/src/internal/config.ts +11 -0
  136. package/src/internal/layer.ts +63 -0
  137. package/src/internal/pool.ts +320 -447
  138. package/src/internal/redacted.ts +69 -0
  139. package/src/internal/secret.ts +39 -28
  140. package/src/internal/stm/stm.ts +4 -1
  141. package/src/internal/stream.ts +111 -50
  142. package/src/internal/version.ts +1 -1
@@ -1,261 +1,231 @@
1
1
  import * as Context from "../Context.js";
2
2
  import * as Duration from "../Duration.js";
3
- import * as Equal from "../Equal.js";
4
- import { dual, pipe } from "../Function.js";
5
- import * as Hash from "../Hash.js";
6
- import * as HashSet from "../HashSet.js";
3
+ import { dual, identity } from "../Function.js";
4
+ import * as Iterable from "../Iterable.js";
7
5
  import { pipeArguments } from "../Pipeable.js";
8
6
  import { hasProperty } from "../Predicate.js";
9
- import * as effect from "./core-effect.js";
7
+ import * as coreEffect from "./core-effect.js";
10
8
  import * as core from "./core.js";
9
+ import * as defaultServices from "./defaultServices.js";
10
+ import * as circular from "./effect/circular.js";
11
11
  import * as fiberRuntime from "./fiberRuntime.js";
12
- import * as queue from "./queue.js";
13
- import * as ref from "./ref.js";
12
+ import * as internalQueue from "./queue.js";
14
13
  /** @internal */
15
- const PoolSymbolKey = "effect/Pool";
16
- /** @internal */
17
- export const PoolTypeId = /*#__PURE__*/Symbol.for(PoolSymbolKey);
14
+ export const PoolTypeId = /*#__PURE__*/Symbol.for("effect/Pool");
18
15
  const poolVariance = {
19
16
  /* c8 ignore next */
20
17
  _E: _ => _,
21
18
  /* c8 ignore next */
22
19
  _A: _ => _
23
20
  };
24
- /**
25
- * A strategy that does nothing to shrink excess items. This is useful when
26
- * the minimum size of the pool is equal to its maximum size and so there is
27
- * nothing to do.
28
- */
29
- class NoneStrategy {
30
- initial() {
31
- return core.void;
32
- }
33
- track() {
34
- return core.void;
35
- }
36
- run() {
37
- return core.void;
38
- }
39
- }
40
- /**
41
- * A strategy that shrinks the pool down to its minimum size if items in the
42
- * pool have not been used for the specified duration.
43
- */
44
- class TimeToLiveStrategy {
45
- timeToLive;
46
- constructor(timeToLive) {
47
- this.timeToLive = timeToLive;
48
- }
49
- initial() {
50
- return core.flatMap(effect.clock, clock => core.flatMap(clock.currentTimeMillis, now => core.map(ref.make(now), ref => [clock, ref])));
51
- }
52
- track(state) {
53
- return core.asVoid(core.flatMap(state[0].currentTimeMillis, now => ref.set(state[1], now)));
54
- }
55
- run(state, getExcess, shrink) {
56
- return core.flatMap(getExcess, excess => excess <= 0 ? core.zipRight(state[0].sleep(this.timeToLive), this.run(state, getExcess, shrink)) : pipe(core.zipWith(ref.get(state[1]), state[0].currentTimeMillis, (start, end) => end - start), core.flatMap(duration => {
57
- if (duration >= Duration.toMillis(this.timeToLive)) {
58
- return core.zipRight(shrink, this.run(state, getExcess, shrink));
59
- } else {
60
- return core.zipRight(state[0].sleep(this.timeToLive), this.run(state, getExcess, shrink));
61
- }
62
- })));
63
- }
64
- }
21
+ /** @internal */
22
+ export const isPool = u => hasProperty(u, PoolTypeId);
23
+ /** @internal */
24
+ export const makeWith = options => core.uninterruptibleMask(restore => core.flatMap(core.context(), context => {
25
+ const scope = Context.get(context, fiberRuntime.scopeTag);
26
+ const acquire = core.mapInputContext(options.acquire, input => Context.merge(context, input));
27
+ const pool = new PoolImpl(acquire, options.concurrency ?? 1, options.min, options.max, options.strategy, Math.min(Math.max(options.targetUtilization ?? 1, 0.1), 1));
28
+ const initialize = core.tap(fiberRuntime.forkDaemon(restore(pool.resize)), fiber => scope.addFinalizer(() => core.interruptFiber(fiber)));
29
+ const runStrategy = core.tap(fiberRuntime.forkDaemon(restore(options.strategy.run(pool))), fiber => scope.addFinalizer(() => core.interruptFiber(fiber)));
30
+ return core.succeed(pool).pipe(core.zipLeft(scope.addFinalizer(() => pool.shutdown)), core.zipLeft(initialize), core.zipLeft(runStrategy));
31
+ }));
32
+ /** @internal */
33
+ export const make = options => makeWith({
34
+ ...options,
35
+ min: options.size,
36
+ max: options.size,
37
+ strategy: strategyNoop()
38
+ });
39
+ /** @internal */
40
+ export const makeWithTTL = options => core.flatMap(options.timeToLiveStrategy === "creation" ? strategyCreationTTL(options.timeToLive) : strategyUsageTTL(options.timeToLive), strategy => makeWith({
41
+ ...options,
42
+ strategy
43
+ }));
44
+ /** @internal */
45
+ export const get = self => self.get;
46
+ /** @internal */
47
+ export const invalidate = /*#__PURE__*/dual(2, (self, item) => self.invalidate(item));
65
48
  class PoolImpl {
66
- creator;
67
- min;
68
- max;
69
- isShuttingDown;
70
- state;
71
- items;
72
- invalidated;
73
- track;
74
- [PoolTypeId] = poolVariance;
75
- constructor(creator, min, max, isShuttingDown, state, items, invalidated, track) {
76
- this.creator = creator;
77
- this.min = min;
78
- this.max = max;
79
- this.isShuttingDown = isShuttingDown;
80
- this.state = state;
81
- this.items = items;
82
- this.invalidated = invalidated;
83
- this.track = track;
84
- }
85
- [Hash.symbol]() {
86
- return pipe(Hash.hash(this.creator), Hash.combine(Hash.number(this.min)), Hash.combine(Hash.number(this.max)), Hash.combine(Hash.hash(this.isShuttingDown)), Hash.combine(Hash.hash(this.state)), Hash.combine(Hash.hash(this.items)), Hash.combine(Hash.hash(this.invalidated)), Hash.combine(Hash.hash(this.track)), Hash.cached(this));
87
- }
88
- [Equal.symbol](that) {
89
- return isPool(that) && Equal.equals(this.creator, that.creator) && this.min === that.min && this.max === that.max && Equal.equals(this.isShuttingDown, that.isShuttingDown) && Equal.equals(this.state, that.state) && Equal.equals(this.items, that.items) && Equal.equals(this.invalidated, that.invalidated) && Equal.equals(this.track, that.track);
90
- }
91
- pipe() {
92
- return pipeArguments(this, arguments);
93
- }
94
- get get() {
95
- const acquire = restore => core.flatMap(ref.get(this.isShuttingDown), down => down ? core.interrupt : core.flatten(ref.modify(this.state, state => {
96
- if (state.free > 0 || state.size >= this.max) {
97
- return [core.flatMap(queue.take(this.items), attempted => core.exitMatch(attempted.result, {
98
- onFailure: () => core.succeed(attempted),
99
- onSuccess: item => core.flatMap(ref.get(this.invalidated), set => {
100
- if (pipe(set, HashSet.has(item))) {
101
- return core.zipRight(finalizeInvalid(this, attempted), acquire(restore));
102
- }
103
- return core.succeed(attempted);
104
- })
105
- })), {
106
- ...state,
107
- free: state.free - 1
108
- }];
109
- }
110
- if (state.size >= 0) {
111
- return [core.zipRight(allocate(this, restore), acquire(restore)), {
112
- size: state.size + 1,
113
- free: state.free + 1
114
- }];
49
+ acquire;
50
+ concurrency;
51
+ minSize;
52
+ maxSize;
53
+ strategy;
54
+ targetUtilization;
55
+ [PoolTypeId];
56
+ isShuttingDown = false;
57
+ semaphore;
58
+ items = new Set();
59
+ available = new Set();
60
+ invalidated = new Set();
61
+ waiters = 0;
62
+ constructor(acquire, concurrency, minSize, maxSize, strategy, targetUtilization) {
63
+ this.acquire = acquire;
64
+ this.concurrency = concurrency;
65
+ this.minSize = minSize;
66
+ this.maxSize = maxSize;
67
+ this.strategy = strategy;
68
+ this.targetUtilization = targetUtilization;
69
+ this[PoolTypeId] = poolVariance;
70
+ this.semaphore = circular.unsafeMakeSemaphore(concurrency * maxSize);
71
+ }
72
+ allocate = core.acquireUseRelease(fiberRuntime.scopeMake(), scope => this.acquire.pipe(fiberRuntime.scopeExtend(scope), core.exit, core.flatMap(exit => {
73
+ const item = {
74
+ exit,
75
+ finalizer: core.catchAllCause(scope.close(exit), reportUnhandledError),
76
+ refCount: 0
77
+ };
78
+ this.items.add(item);
79
+ this.available.add(item);
80
+ return core.as(exit._tag === "Success" ? this.strategy.onAcquire(item) : core.zipRight(item.finalizer, this.strategy.onAcquire(item)), item);
81
+ })), (scope, exit) => exit._tag === "Failure" ? scope.close(exit) : core.void);
82
+ get currentUsage() {
83
+ let count = this.waiters;
84
+ for (const item of this.items) {
85
+ count += item.refCount;
86
+ }
87
+ return count;
88
+ }
89
+ get targetSize() {
90
+ if (this.isShuttingDown) return 0;
91
+ const utilization = this.currentUsage / this.targetUtilization;
92
+ const target = Math.ceil(utilization / this.concurrency);
93
+ return Math.min(Math.max(this.minSize, target), this.maxSize);
94
+ }
95
+ get activeSize() {
96
+ return this.items.size - this.invalidated.size;
97
+ }
98
+ resizeLoop = core.suspend(() => {
99
+ if (this.activeSize >= this.targetSize) {
100
+ return core.void;
101
+ }
102
+ return core.zipRight(this.allocate, this.resizeLoop);
103
+ });
104
+ resizeSemaphore = circular.unsafeMakeSemaphore(1);
105
+ resize = this.resizeSemaphore.withPermits(1)(this.resizeLoop);
106
+ getPoolItem = core.uninterruptibleMask(restore => restore(this.semaphore.take(1)).pipe(core.zipRight(fiberRuntime.scopeTag), core.flatMap(scope => core.suspend(() => {
107
+ this.waiters++;
108
+ if (this.isShuttingDown) {
109
+ return core.interrupt;
110
+ } else if (this.targetSize > this.activeSize) {
111
+ return core.zipRight(restore(this.resize), core.sync(() => Iterable.unsafeHead(this.available)));
112
+ }
113
+ return core.succeed(Iterable.unsafeHead(this.available));
114
+ }).pipe(fiberRuntime.ensuring(core.sync(() => this.waiters--)), core.tap(item => {
115
+ if (item.exit._tag === "Failure") {
116
+ this.items.delete(item);
117
+ this.invalidated.delete(item);
118
+ this.available.delete(item);
119
+ return this.semaphore.release(1);
120
+ }
121
+ item.refCount++;
122
+ this.available.delete(item);
123
+ if (item.refCount < this.concurrency) {
124
+ this.available.add(item);
125
+ }
126
+ return scope.addFinalizer(() => core.zipRight(core.suspend(() => {
127
+ item.refCount--;
128
+ if (this.invalidated.has(item)) {
129
+ return this.invalidatePoolItem(item);
115
130
  }
116
- return [core.interrupt, state];
117
- })));
118
- const release = attempted => core.exitMatch(attempted.result, {
119
- onFailure: () => core.zipRight(attempted.finalizer, core.flatten(ref.modify(this.state, state => {
120
- if (state.size <= this.min) {
121
- return [allocateUinterruptible(this), {
122
- ...state,
123
- free: state.free + 1
124
- }];
125
- }
126
- return [core.void, {
127
- ...state,
128
- size: state.size - 1
129
- }];
130
- }))),
131
- onSuccess: item => core.flatMap(ref.get(this.invalidated), set => {
132
- if (pipe(set, HashSet.has(item))) {
133
- return finalizeInvalid(this, attempted);
131
+ this.available.add(item);
132
+ return core.void;
133
+ }), this.semaphore.release(1)));
134
+ }), core.onInterrupt(() => this.semaphore.release(1))))));
135
+ get = core.flatMap(core.suspend(() => this.isShuttingDown ? core.interrupt : this.getPoolItem), _ => _.exit);
136
+ invalidate(item) {
137
+ return core.suspend(() => {
138
+ if (this.isShuttingDown) return core.void;
139
+ for (const poolItem of this.items) {
140
+ if (poolItem.exit._tag === "Success" && poolItem.exit.value === item) {
141
+ return core.uninterruptible(this.invalidatePoolItem(poolItem));
134
142
  }
135
- return pipe(ref.update(this.state, state => ({
136
- ...state,
137
- free: state.free + 1
138
- })), core.zipRight(queue.offer(this.items, attempted)), core.zipRight(this.track(attempted.result)), core.zipRight(core.whenEffect(getAndShutdown(this), ref.get(this.isShuttingDown))));
139
- })
143
+ }
144
+ return core.void;
140
145
  });
141
- return pipe(core.uninterruptibleMask(restore => core.tap(acquire(restore), a => fiberRuntime.addFinalizer(_exit => release(a)))), fiberRuntime.withEarlyRelease, fiberRuntime.disconnect, core.flatMap(([release, attempted]) => pipe(effect.when(release, () => isFailure(attempted)), core.zipRight(toEffect(attempted)))));
142
- }
143
- invalidate(item) {
144
- return ref.update(this.invalidated, HashSet.add(item));
145
146
  }
146
- }
147
- const allocate = (self, restore) => core.flatMap(fiberRuntime.scopeMake(), scope => core.flatMap(core.exit(restore(fiberRuntime.scopeExtend(self.creator, scope))), exit => core.flatMap(core.succeed({
148
- result: exit,
149
- finalizer: core.scopeClose(scope, core.exitSucceed(void 0))
150
- }), attempted => pipe(queue.offer(self.items, attempted), core.zipRight(self.track(attempted.result)), core.zipRight(core.whenEffect(getAndShutdown(self), ref.get(self.isShuttingDown))), core.as(attempted)))));
151
- const allocateUinterruptible = self => core.uninterruptibleMask(restore => allocate(self, restore));
152
- /**
153
- * Returns the number of items in the pool in excess of the minimum size.
154
- */
155
- const excess = self => core.map(ref.get(self.state), state => state.size - Math.min(self.min, state.free));
156
- const finalizeInvalid = (self, attempted) => pipe(forEach(attempted, a => ref.update(self.invalidated, HashSet.remove(a))), core.zipRight(attempted.finalizer), core.zipRight(core.flatten(ref.modify(self.state, state => {
157
- if (state.size <= self.min) {
158
- return [allocateUinterruptible(self), {
159
- ...state,
160
- free: state.free + 1
161
- }];
147
+ invalidatePoolItem(poolItem) {
148
+ return core.suspend(() => {
149
+ if (!this.items.has(poolItem)) {
150
+ return core.void;
151
+ } else if (poolItem.refCount === 0) {
152
+ this.items.delete(poolItem);
153
+ this.available.delete(poolItem);
154
+ this.invalidated.delete(poolItem);
155
+ return core.zipRight(poolItem.finalizer, this.resize);
156
+ }
157
+ this.invalidated.add(poolItem);
158
+ this.available.delete(poolItem);
159
+ return core.void;
160
+ });
162
161
  }
163
- return [core.void, {
164
- ...state,
165
- size: state.size - 1
166
- }];
167
- }))));
168
- /**
169
- * Gets items from the pool and shuts them down as long as there are items
170
- * free, signalling shutdown of the pool if the pool is empty.
171
- */
172
- const getAndShutdown = self => core.flatten(ref.modify(self.state, state => {
173
- if (state.free > 0) {
174
- return [core.matchCauseEffect(queue.take(self.items), {
175
- onFailure: () => core.void,
176
- onSuccess: attempted => pipe(forEach(attempted, a => ref.update(self.invalidated, HashSet.remove(a))), core.zipRight(attempted.finalizer), core.zipRight(ref.update(self.state, state => ({
177
- ...state,
178
- size: state.size - 1
179
- }))), core.flatMap(() => getAndShutdown(self)))
180
- }), {
181
- ...state,
182
- free: state.free - 1
183
- }];
162
+ get shutdown() {
163
+ return core.suspend(() => {
164
+ if (this.isShuttingDown) return core.void;
165
+ this.isShuttingDown = true;
166
+ const size = this.items.size;
167
+ const semaphore = circular.unsafeMakeSemaphore(size);
168
+ return core.forEachSequentialDiscard(this.items, item => {
169
+ if (item.refCount > 0) {
170
+ item.finalizer = core.zipLeft(item.finalizer, semaphore.release(1));
171
+ this.invalidated.add(item);
172
+ return semaphore.take(1);
173
+ }
174
+ this.items.delete(item);
175
+ this.available.delete(item);
176
+ this.invalidated.delete(item);
177
+ return item.finalizer;
178
+ }).pipe(core.zipRight(this.semaphore.releaseAll), core.zipRight(semaphore.take(size)));
179
+ });
184
180
  }
185
- if (state.size > 0) {
186
- return [core.void, state];
181
+ pipe() {
182
+ return pipeArguments(this, arguments);
187
183
  }
188
- return [queue.shutdown(self.items), {
189
- ...state,
190
- size: state.size - 1
191
- }];
184
+ }
185
+ const strategyNoop = () => ({
186
+ run: _ => core.void,
187
+ onAcquire: _ => core.void
188
+ });
189
+ const strategyCreationTTL = ttl => defaultServices.clockWith(clock => core.map(internalQueue.unbounded(), queue => {
190
+ const ttlMillis = Duration.toMillis(ttl);
191
+ const creationTimes = new WeakMap();
192
+ return identity({
193
+ run: pool => {
194
+ const process = item => core.suspend(() => {
195
+ if (!pool.items.has(item) || pool.invalidated.has(item)) {
196
+ return core.void;
197
+ }
198
+ const now = clock.unsafeCurrentTimeMillis();
199
+ const created = creationTimes.get(item);
200
+ const remaining = ttlMillis - (now - created);
201
+ return remaining > 0 ? coreEffect.delay(process(item), remaining) : pool.invalidatePoolItem(item);
202
+ });
203
+ return queue.take.pipe(core.tap(process), coreEffect.forever);
204
+ },
205
+ onAcquire: item => core.suspend(() => {
206
+ creationTimes.set(item, clock.unsafeCurrentTimeMillis());
207
+ return queue.offer(item);
208
+ })
209
+ });
192
210
  }));
193
- /**
194
- * Begins pre-allocating pool entries based on minimum pool size.
195
- */
196
- const initialize = self => fiberRuntime.replicateEffect(core.uninterruptibleMask(restore => core.flatten(ref.modify(self.state, state => {
197
- if (state.size < self.min && state.size >= 0) {
198
- return [allocate(self, restore), {
199
- size: state.size + 1,
200
- free: state.free + 1
201
- }];
202
- }
203
- return [core.void, state];
204
- }))), self.min, {
205
- discard: true
211
+ const strategyUsageTTL = ttl => core.map(internalQueue.unbounded(), queue => {
212
+ return identity({
213
+ run: pool => {
214
+ const process = core.suspend(() => {
215
+ const excess = pool.activeSize - pool.targetSize;
216
+ if (excess <= 0) return core.void;
217
+ return queue.take.pipe(core.tap(item => pool.invalidatePoolItem(item)), core.zipRight(process));
218
+ });
219
+ return process.pipe(coreEffect.delay(ttl), coreEffect.forever);
220
+ },
221
+ onAcquire: item => queue.offer(item)
222
+ });
206
223
  });
207
- /**
208
- * Shrinks the pool down, but never to less than the minimum size.
209
- */
210
- const shrink = self => core.uninterruptible(core.flatten(ref.modify(self.state, state => {
211
- if (state.size > self.min && state.free > 0) {
212
- return [pipe(queue.take(self.items), core.flatMap(attempted => pipe(forEach(attempted, a => ref.update(self.invalidated, HashSet.remove(a))), core.zipRight(attempted.finalizer), core.zipRight(ref.update(self.state, state => ({
213
- ...state,
214
- size: state.size - 1
215
- })))))), {
216
- ...state,
217
- free: state.free - 1
218
- }];
224
+ const reportUnhandledError = cause => core.withFiberRuntime(fiber => {
225
+ const unhandledLogLevel = fiber.getFiberRef(core.currentUnhandledErrorLogLevel);
226
+ if (unhandledLogLevel._tag === "Some") {
227
+ fiber.log("Unhandled error in pool finalizer", cause, unhandledLogLevel);
219
228
  }
220
- return [core.void, state];
221
- })));
222
- const shutdown = self => core.flatten(ref.modify(self.isShuttingDown, down => down ? [queue.awaitShutdown(self.items), true] : [core.zipRight(getAndShutdown(self), queue.awaitShutdown(self.items)), true]));
223
- const isFailure = self => core.exitIsFailure(self.result);
224
- const forEach = (self, f) => core.exitMatch(self.result, {
225
- onFailure: () => core.void,
226
- onSuccess: f
229
+ return core.void;
227
230
  });
228
- const toEffect = self => self.result;
229
- /**
230
- * A more powerful variant of `make` that allows specifying a `Strategy` that
231
- * describes how a pool whose excess items are not being used will be shrunk
232
- * down to the minimum size.
233
- */
234
- const makeWith = options => core.uninterruptibleMask(restore => pipe(fiberRuntime.all([core.context(), ref.make(false), ref.make({
235
- size: 0,
236
- free: 0
237
- }), queue.bounded(options.max), ref.make(HashSet.empty()), options.strategy.initial()]), core.flatMap(([context, down, state, items, inv, initial]) => {
238
- const pool = new PoolImpl(core.mapInputContext(options.acquire, old => Context.merge(old)(context)), options.min, options.max, down, state, items, inv, exit => options.strategy.track(initial, exit));
239
- return pipe(fiberRuntime.forkDaemon(restore(initialize(pool))), core.flatMap(fiber => core.flatMap(fiberRuntime.forkDaemon(restore(options.strategy.run(initial, excess(pool), shrink(pool)))), shrink => fiberRuntime.addFinalizer(() => pipe(shutdown(pool), core.zipRight(core.interruptFiber(fiber)), core.zipRight(core.interruptFiber(shrink)))))), core.as(pool));
240
- })));
241
- /** @internal */
242
- export const isPool = u => hasProperty(u, PoolTypeId);
243
- /** @internal */
244
- export const make = options => makeWith({
245
- acquire: options.acquire,
246
- min: options.size,
247
- max: options.size,
248
- strategy: new NoneStrategy()
249
- });
250
- /** @internal */
251
- export const makeWithTTL = options => makeWith({
252
- acquire: options.acquire,
253
- min: options.min,
254
- max: options.max,
255
- strategy: new TimeToLiveStrategy(Duration.decode(options.timeToLive))
256
- });
257
- /** @internal */
258
- export const get = self => self.get;
259
- /** @internal */
260
- export const invalidate = /*#__PURE__*/dual(2, (self, value) => self.invalidate(value));
261
231
  //# sourceMappingURL=pool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pool.js","names":["Context","Duration","Equal","dual","pipe","Hash","HashSet","pipeArguments","hasProperty","effect","core","fiberRuntime","queue","ref","PoolSymbolKey","PoolTypeId","Symbol","for","poolVariance","_E","_","_A","NoneStrategy","initial","void","track","run","TimeToLiveStrategy","timeToLive","constructor","flatMap","clock","currentTimeMillis","now","map","make","state","asVoid","set","getExcess","shrink","excess","zipRight","sleep","zipWith","get","start","end","duration","toMillis","PoolImpl","creator","min","max","isShuttingDown","items","invalidated","symbol","hash","combine","number","cached","that","isPool","equals","arguments","acquire","restore","down","interrupt","flatten","modify","free","size","take","attempted","exitMatch","result","onFailure","succeed","onSuccess","item","has","finalizeInvalid","allocate","release","finalizer","allocateUinterruptible","update","offer","whenEffect","getAndShutdown","uninterruptibleMask","tap","a","addFinalizer","_exit","withEarlyRelease","disconnect","when","isFailure","toEffect","invalidate","add","self","scopeMake","scope","exit","scopeExtend","scopeClose","exitSucceed","as","Math","forEach","remove","matchCauseEffect","shutdown","initialize","replicateEffect","discard","uninterruptible","awaitShutdown","exitIsFailure","f","makeWith","options","all","context","bounded","empty","strategy","inv","pool","mapInputContext","old","merge","forkDaemon","fiber","interruptFiber","u","makeWithTTL","decode","value"],"sources":["../../../src/internal/pool.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"pool.js","names":["Context","Duration","dual","identity","Iterable","pipeArguments","hasProperty","coreEffect","core","defaultServices","circular","fiberRuntime","internalQueue","PoolTypeId","Symbol","for","poolVariance","_E","_","_A","isPool","u","makeWith","options","uninterruptibleMask","restore","flatMap","context","scope","get","scopeTag","acquire","mapInputContext","input","merge","pool","PoolImpl","concurrency","min","max","strategy","Math","targetUtilization","initialize","tap","forkDaemon","resize","fiber","addFinalizer","interruptFiber","runStrategy","run","succeed","pipe","zipLeft","shutdown","make","size","strategyNoop","makeWithTTL","timeToLiveStrategy","strategyCreationTTL","timeToLive","strategyUsageTTL","self","invalidate","item","minSize","maxSize","isShuttingDown","semaphore","items","Set","available","invalidated","waiters","constructor","unsafeMakeSemaphore","allocate","acquireUseRelease","scopeMake","scopeExtend","exit","finalizer","catchAllCause","close","reportUnhandledError","refCount","add","as","_tag","onAcquire","zipRight","void","currentUsage","count","targetSize","utilization","target","ceil","activeSize","resizeLoop","suspend","resizeSemaphore","withPermits","getPoolItem","take","interrupt","sync","unsafeHead","ensuring","delete","release","has","invalidatePoolItem","onInterrupt","poolItem","value","uninterruptible","forEachSequentialDiscard","releaseAll","arguments","ttl","clockWith","clock","map","unbounded","queue","ttlMillis","toMillis","creationTimes","WeakMap","process","now","unsafeCurrentTimeMillis","created","remaining","delay","forever","set","offer","excess","cause","withFiberRuntime","unhandledLogLevel","getFiberRef","currentUnhandledErrorLogLevel","log"],"sources":["../../../src/internal/pool.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ import * as Equal from "../Equal.js";
2
+ import { pipe } from "../Function.js";
3
+ import { globalValue } from "../GlobalValue.js";
4
+ import * as Hash from "../Hash.js";
5
+ import { pipeArguments } from "../Pipeable.js";
6
+ import { hasProperty } from "../Predicate.js";
7
+ /** @internal */
8
+ const RedactedSymbolKey = "effect/Redacted";
9
+ /** @internal */
10
+ export const redactedRegistry = /*#__PURE__*/globalValue("effect/Redacted/redactedRegistry", () => new WeakMap());
11
+ /** @internal */
12
+ export const RedactedTypeId = /*#__PURE__*/Symbol.for(RedactedSymbolKey);
13
+ /** @internal */
14
+ export const proto = {
15
+ [RedactedTypeId]: {
16
+ _A: _ => _
17
+ },
18
+ pipe() {
19
+ return pipeArguments(this, arguments);
20
+ },
21
+ toString() {
22
+ return "<redacted>";
23
+ },
24
+ toJSON() {
25
+ return "<redacted>";
26
+ },
27
+ [Hash.symbol]() {
28
+ return pipe(Hash.hash(RedactedSymbolKey), Hash.combine(Hash.hash(redactedRegistry.get(this))), Hash.cached(this));
29
+ },
30
+ [Equal.symbol](that) {
31
+ return isRedacted(that) && Equal.equals(redactedRegistry.get(this), redactedRegistry.get(that));
32
+ }
33
+ };
34
+ /** @internal */
35
+ export const isRedacted = u => hasProperty(u, RedactedTypeId);
36
+ /** @internal */
37
+ export const make = value => {
38
+ const redacted = Object.create(proto);
39
+ redactedRegistry.set(redacted, value);
40
+ return redacted;
41
+ };
42
+ /** @internal */
43
+ export const value = self => {
44
+ if (redactedRegistry.has(self)) {
45
+ return redactedRegistry.get(self);
46
+ } else {
47
+ throw new Error("Unable to get redacted value");
48
+ }
49
+ };
50
+ /** @internal */
51
+ export const unsafeWipe = self => redactedRegistry.delete(self);
52
+ //# sourceMappingURL=redacted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redacted.js","names":["Equal","pipe","globalValue","Hash","pipeArguments","hasProperty","RedactedSymbolKey","redactedRegistry","WeakMap","RedactedTypeId","Symbol","for","proto","_A","_","arguments","toString","toJSON","symbol","hash","combine","get","cached","that","isRedacted","equals","u","make","value","redacted","Object","create","set","self","has","Error","unsafeWipe","delete"],"sources":["../../../src/internal/redacted.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,aAAa;AACpC,SAASC,IAAI,QAAQ,gBAAgB;AACrC,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,OAAO,KAAKC,IAAI,MAAM,YAAY;AAClC,SAASC,aAAa,QAAQ,gBAAgB;AAC9C,SAASC,WAAW,QAAQ,iBAAiB;AAG7C;AACA,MAAMC,iBAAiB,GAAG,iBAAiB;AAE3C;AACA,OAAO,MAAMC,gBAAgB,gBAAGL,WAAW,CACzC,kCAAkC,EAClC,MAAM,IAAIM,OAAO,EAA+B,CACjD;AAED;AACA,OAAO,MAAMC,cAAc,gBAA4BC,MAAM,CAACC,GAAG,CAC/DL,iBAAiB,CACS;AAE5B;AACA,OAAO,MAAMM,KAAK,GAAG;EACnB,CAACH,cAAc,GAAG;IAChBI,EAAE,EAAGC,CAAQ,IAAKA;GACnB;EACDb,IAAIA,CAAA;IACF,OAAOG,aAAa,CAAC,IAAI,EAAEW,SAAS,CAAC;EACvC,CAAC;EACDC,QAAQA,CAAA;IACN,OAAO,YAAY;EACrB,CAAC;EACDC,MAAMA,CAAA;IACJ,OAAO,YAAY;EACrB,CAAC;EACD,CAACd,IAAI,CAACe,MAAM,IAAC;IACX,OAAOjB,IAAI,CACTE,IAAI,CAACgB,IAAI,CAACb,iBAAiB,CAAC,EAC5BH,IAAI,CAACiB,OAAO,CAACjB,IAAI,CAACgB,IAAI,CAACZ,gBAAgB,CAACc,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EACnDlB,IAAI,CAACmB,MAAM,CAAC,IAAI,CAAC,CAClB;EACH,CAAC;EACD,CAACtB,KAAK,CAACkB,MAAM,EAAiCK,IAAa;IACzD,OAAOC,UAAU,CAACD,IAAI,CAAC,IAAIvB,KAAK,CAACyB,MAAM,CAAClB,gBAAgB,CAACc,GAAG,CAAC,IAAI,CAAC,EAAEd,gBAAgB,CAACc,GAAG,CAACE,IAAI,CAAC,CAAC;EACjG;CACD;AAED;AACA,OAAO,MAAMC,UAAU,GAAIE,CAAU,IAAsCrB,WAAW,CAACqB,CAAC,EAAEjB,cAAc,CAAC;AAEzG;AACA,OAAO,MAAMkB,IAAI,GAAOC,KAAQ,IAA0B;EACxD,MAAMC,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAACnB,KAAK,CAAC;EACrCL,gBAAgB,CAACyB,GAAG,CAACH,QAAQ,EAAED,KAAK,CAAC;EACrC,OAAOC,QAAQ;AACjB,CAAC;AAED;AACA,OAAO,MAAMD,KAAK,GAAOK,IAA0B,IAAO;EACxD,IAAI1B,gBAAgB,CAAC2B,GAAG,CAACD,IAAI,CAAC,EAAE;IAC9B,OAAO1B,gBAAgB,CAACc,GAAG,CAACY,IAAI,CAAC;EACnC,CAAC,MAAM;IACL,MAAM,IAAIE,KAAK,CAAC,8BAA8B,CAAC;EACjD;AACF,CAAC;AAED;AACA,OAAO,MAAMC,UAAU,GAAOH,IAA0B,IAAc1B,gBAAgB,CAAC8B,MAAM,CAACJ,IAAI,CAAC","ignoreList":[]}