Добавлена ДБ
This commit is contained in:
55
node_modules/effect/src/TestSized.ts
generated
vendored
Normal file
55
node_modules/effect/src/TestSized.ts
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* @since 2.0.0
|
||||
*/
|
||||
import * as Context from "./Context.js"
|
||||
import type * as Effect from "./Effect.js"
|
||||
import type * as FiberRef from "./FiberRef.js"
|
||||
import * as core from "./internal/core.js"
|
||||
|
||||
/**
|
||||
* @since 2.0.0
|
||||
*/
|
||||
export const TestSizedTypeId: unique symbol = Symbol.for("effect/TestSized")
|
||||
|
||||
/**
|
||||
* @since 2.0.0
|
||||
*/
|
||||
export type TestSizedTypeId = typeof TestSizedTypeId
|
||||
|
||||
/**
|
||||
* @since 2.0.0
|
||||
*/
|
||||
export interface TestSized {
|
||||
readonly [TestSizedTypeId]: TestSizedTypeId
|
||||
readonly fiberRef: FiberRef.FiberRef<number>
|
||||
readonly size: Effect.Effect<number>
|
||||
withSize(size: number): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 2.0.0
|
||||
*/
|
||||
export const TestSized: Context.Tag<TestSized, TestSized> = Context.GenericTag("effect/TestSized")
|
||||
|
||||
/** @internal */
|
||||
class SizedImpl implements TestSized {
|
||||
readonly [TestSizedTypeId]: TestSizedTypeId = TestSizedTypeId
|
||||
constructor(readonly fiberRef: FiberRef.FiberRef<number>) {}
|
||||
get size(): Effect.Effect<number> {
|
||||
return core.fiberRefGet(this.fiberRef)
|
||||
}
|
||||
withSize(size: number) {
|
||||
return <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
|
||||
core.fiberRefLocally(this.fiberRef, size)(effect)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 2.0.0
|
||||
*/
|
||||
export const make = (size: number): TestSized => new SizedImpl(core.fiberRefUnsafeMake(size))
|
||||
|
||||
/**
|
||||
* @since 2.0.0
|
||||
*/
|
||||
export const fromFiberRef = (fiberRef: FiberRef.FiberRef<number>): TestSized => new SizedImpl(fiberRef)
|
||||
Reference in New Issue
Block a user