UNPKG

@hazae41/box

Version:

Rust-like Box and similar objects for TypeScript

1 lines 1.78 kB
{"version":3,"file":"index.mjs","sources":["../../../../../src/mods/stack/index.ts"],"sourcesContent":["/**\n * A stack of disposable objects\n */\nexport class Stack<T extends Disposable> {\n\n /**\n * A stack of disposable objects\n */\n constructor(\n readonly array: T[] = []\n ) { }\n\n [Symbol.dispose](this: Stack<Disposable>) {\n for (const value of this.array)\n value[Symbol.dispose]()\n //\n }\n\n async [Symbol.asyncDispose]() {\n this[Symbol.dispose]()\n }\n\n push(value: T) {\n this.array.push(value)\n }\n\n}\n\nexport class AsyncStack<T extends AsyncDisposable> {\n\n /**\n * A stack of disposable objects\n */\n constructor(\n readonly array: T[] = []\n ) { }\n\n async [Symbol.asyncDispose]() {\n for (const value of this.array)\n await value[Symbol.asyncDispose]()\n //\n }\n\n push(value: T) {\n this.array.push(value)\n }\n\n}\n\n"],"names":[],"mappings":"AAAA;;AAEG;MACU,KAAK,CAAA;AAML,IAAA,KAAA,CAAA;AAJX;;AAEG;AACH,IAAA,WAAA,CACW,QAAa,EAAE,EAAA;QAAf,IAAK,CAAA,KAAA,GAAL,KAAK,CAAU;KACrB;IAEL,CAAC,MAAM,CAAC,OAAO,CAAC,GAAA;AACd,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK;AAC5B,YAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;;KAE1B;AAED,IAAA,OAAO,MAAM,CAAC,YAAY,CAAC,GAAA;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;KACvB;AAED,IAAA,IAAI,CAAC,KAAQ,EAAA;AACX,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACvB;AAEF,CAAA;MAEY,UAAU,CAAA;AAMV,IAAA,KAAA,CAAA;AAJX;;AAEG;AACH,IAAA,WAAA,CACW,QAAa,EAAE,EAAA;QAAf,IAAK,CAAA,KAAA,GAAL,KAAK,CAAU;KACrB;AAEL,IAAA,OAAO,MAAM,CAAC,YAAY,CAAC,GAAA;AACzB,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK;AAC5B,YAAA,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAA;;KAErC;AAED,IAAA,IAAI,CAAC,KAAQ,EAAA;AACX,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACvB;AAEF;;;;"}