@hazae41/box
Version:
Rust-like Box and similar objects for TypeScript
59 lines (56 loc) • 1.13 kB
JavaScript
;
/**
* A stack of disposable objects
*/
class Stack {
value;
/**
* A stack of disposable objects
*/
constructor(value = []) {
this.value = value;
}
[Symbol.iterator]() {
return this.value[Symbol.iterator]();
}
[Symbol.dispose]() {
for (const value of this.value)
value[Symbol.dispose]();
//
}
async [Symbol.asyncDispose]() {
this[Symbol.dispose]();
}
push(value) {
this.value.push(value);
}
get() {
return this.value;
}
}
class AsyncStack {
value;
/**
* A stack of disposable objects
*/
constructor(value = []) {
this.value = value;
}
[Symbol.iterator]() {
return this.value[Symbol.iterator]();
}
async [Symbol.asyncDispose]() {
for (const value of this.value)
await value[Symbol.asyncDispose]();
//
}
push(value) {
this.value.push(value);
}
get() {
return this.value;
}
}
exports.AsyncStack = AsyncStack;
exports.Stack = Stack;
//# sourceMappingURL=index.cjs.map