veffect
Version:
powerful TypeScript validation library built on the robust foundation of Effect combining exceptional type safety, high performance, and developer experience. Taking inspiration from Effect's functional principles, VEffect delivers a balanced approach tha
261 lines (259 loc) • 8.06 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.unbounded = exports.takeUpTo = exports.takeN = exports.takeBetween = exports.takeAll = exports.take = exports.sliding = exports.size = exports.shutdown = exports.seek = exports.poll = exports.peekOption = exports.peek = exports.offerAll = exports.offer = exports.isTQueue = exports.isTEnqueue = exports.isTDequeue = exports.isShutdown = exports.isFull = exports.isEmpty = exports.dropping = exports.capacity = exports.bounded = exports.awaitShutdown = exports.TEnqueueTypeId = exports.TDequeueTypeId = void 0;
var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./internal/stm/tQueue.js"));
function _getRequireWildcardCache(e) {
if ("function" != typeof WeakMap) return null;
var r = new WeakMap(),
t = new WeakMap();
return (_getRequireWildcardCache = function (e) {
return e ? t : r;
})(e);
}
function _interopRequireWildcard(e, r) {
if (!r && e && e.__esModule) return e;
if (null === e || "object" != typeof e && "function" != typeof e) return {
default: e
};
var t = _getRequireWildcardCache(r);
if (t && t.has(e)) return t.get(e);
var n = {
__proto__: null
},
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
}
return n.default = e, t && t.set(e, n), n;
}
/**
* @since 2.0.0
*/
/**
* @since 2.0.0
* @category symbols
*/
const TDequeueTypeId = exports.TDequeueTypeId = internal.TDequeueTypeId;
/**
* @since 2.0.0
* @category symbols
*/
const TEnqueueTypeId = exports.TEnqueueTypeId = internal.TEnqueueTypeId;
/**
* Returns `true` if the specified value is a `TQueue`, `false` otherwise.
*
* @since 2.0.0
* @category refinements
*/
const isTQueue = exports.isTQueue = internal.isTQueue;
/**
* Returns `true` if the specified value is a `TDequeue`, `false` otherwise.
*
* @since 2.0.0
* @category refinements
*/
const isTDequeue = exports.isTDequeue = internal.isTDequeue;
/**
* Returns `true` if the specified value is a `TEnqueue`, `false` otherwise.
*
* @since 2.0.0
* @category refinements
*/
const isTEnqueue = exports.isTEnqueue = internal.isTEnqueue;
/**
* Waits until the queue is shutdown. The `STM` returned by this method will
* not resume until the queue has been shutdown. If the queue is already
* shutdown, the `STM` will resume right away.
*
* @since 2.0.0
* @category mutations
*/
const awaitShutdown = exports.awaitShutdown = internal.awaitShutdown;
/**
* Creates a bounded queue with the back pressure strategy. The queue will
* retain values until they have been taken, applying back pressure to
* offerors if the queue is at capacity.
*
* For best performance use capacities that are powers of two.
*
* @since 2.0.0
* @category constructors
*/
const bounded = exports.bounded = internal.bounded;
/**
* Returns the number of elements the queue can hold.
*
* @since 2.0.0
* @category getters
*/
const capacity = exports.capacity = internal.capacity;
/**
* Creates a bounded queue with the dropping strategy. The queue will drop new
* values if the queue is at capacity.
*
* For best performance use capacities that are powers of two.
*
* @since 2.0.0
* @category constructors
*/
const dropping = exports.dropping = internal.dropping;
/**
* Returns `true` if the `TQueue` contains zero elements, `false` otherwise.
*
* @since 2.0.0
* @category getters
*/
const isEmpty = exports.isEmpty = internal.isEmpty;
/**
* Returns `true` if the `TQueue` contains at least one element, `false`
* otherwise.
*
* @since 2.0.0
* @category getters
*/
const isFull = exports.isFull = internal.isFull;
/**
* Returns `true` if `shutdown` has been called, otherwise returns `false`.
*
* @since 2.0.0
* @category getters
*/
const isShutdown = exports.isShutdown = internal.isShutdown;
/**
* Places one value in the queue.
*
* @since 2.0.0
* @category mutations
*/
const offer = exports.offer = internal.offer;
/**
* For Bounded TQueue: uses the `BackPressure` Strategy, places the values in
* the queue and always returns true. If the queue has reached capacity, then
* the fiber performing the `offerAll` will be suspended until there is room
* in the queue.
*
* For Unbounded TQueue: Places all values in the queue and returns true.
*
* For Sliding TQueue: uses `Sliding` Strategy If there is room in the queue,
* it places the values otherwise it removes the old elements and enqueues the
* new ones. Always returns true.
*
* For Dropping TQueue: uses `Dropping` Strategy, It places the values in the
* queue but if there is no room it will not enqueue them and return false.
*
* @since 2.0.0
* @category mutations
*/
const offerAll = exports.offerAll = internal.offerAll;
/**
* Views the next element in the queue without removing it, retrying if the
* queue is empty.
*
* @since 2.0.0
* @category getters
*/
const peek = exports.peek = internal.peek;
/**
* Views the next element in the queue without removing it, returning `None`
* if the queue is empty.
*
* @since 2.0.0
* @category getters
*/
const peekOption = exports.peekOption = internal.peekOption;
/**
* Takes a single element from the queue, returning `None` if the queue is
* empty.
*
* @since 2.0.0
* @category getters
*/
const poll = exports.poll = internal.poll;
/**
* Drops elements from the queue while they do not satisfy the predicate,
* taking and returning the first element that does satisfy the predicate.
* Retries if no elements satisfy the predicate.
*
* @since 2.0.0
* @category mutations
*/
const seek = exports.seek = internal.seek;
/**
* Interrupts any fibers that are suspended on `offer` or `take`. Future calls
* to `offer*` and `take*` will be interrupted immediately.
*
* @since 2.0.0
* @category mutations
*/
const shutdown = exports.shutdown = internal.shutdown;
/**
* Retrieves the size of the queue, which is equal to the number of elements
* in the queue. This may be negative if fibers are suspended waiting for
* elements to be added to the queue.
*
* @since 2.0.0
* @category getters
*/
const size = exports.size = internal.size;
/**
* Creates a bounded queue with the sliding strategy. The queue will add new
* values and drop old values if the queue is at capacity.
*
* For best performance use capacities that are powers of two.
*
* @since 2.0.0
* @category constructors
*/
const sliding = exports.sliding = internal.sliding;
/**
* Takes the oldest value in the queue. If the queue is empty, this will return
* a computation that resumes when an item has been added to the queue.
*
* @since 2.0.0
* @category mutations
*/
const take = exports.take = internal.take;
/**
* Takes all the values in the queue and returns the values. If the queue is
* empty returns an empty collection.
*
* @since 2.0.0
* @category mutations
*/
const takeAll = exports.takeAll = internal.takeAll;
/**
* Takes a number of elements from the queue between the specified minimum and
* maximum. If there are fewer than the minimum number of elements available,
* retries until at least the minimum number of elements have been collected.
*
* @since 2.0.0
* @category mutations
*/
const takeBetween = exports.takeBetween = internal.takeBetween;
/**
* Takes the specified number of elements from the queue. If there are fewer
* than the specified number of elements available, it retries until they
* become available.
*
* @since 2.0.0
* @category mutations
*/
const takeN = exports.takeN = internal.takeN;
/**
* Takes up to max number of values from the queue.
*
* @since 2.0.0
* @category mutations
*/
const takeUpTo = exports.takeUpTo = internal.takeUpTo;
/**
* Creates an unbounded queue.
*
* @since 2.0.0
* @category constructors
*/
const unbounded = exports.unbounded = internal.unbounded;
//# sourceMappingURL=TQueue.js.map