UNPKG

@hazae41/box

Version:

Rust-like Box and similar objects for TypeScript

1 lines 2.31 kB
{"version":3,"file":"index.cjs","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 value: T[] = []\n ) { }\n\n [Symbol.iterator]() {\n return this.value[Symbol.iterator]()\n }\n\n [Symbol.dispose](this: Stack<Disposable>) {\n for (const value of this.value)\n value[Symbol.dispose]()\n //\n }\n\n async [Symbol.asyncDispose]() {\n this[Symbol.dispose]()\n }\n\n push(value: T) {\n this.value.push(value)\n }\n\n get() {\n return this.value\n }\n\n}\n\nexport class AsyncStack<T extends AsyncDisposable> {\n\n /**\n * A stack of disposable objects\n */\n constructor(\n readonly value: T[] = []\n ) { }\n\n [Symbol.iterator]() {\n return this.value[Symbol.iterator]()\n }\n\n async [Symbol.asyncDispose]() {\n for (const value of this.value)\n await value[Symbol.asyncDispose]()\n //\n }\n\n push(value: T) {\n this.value.push(value)\n }\n\n get() {\n return this.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,QAAQ,CAAC,GAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;KACrC;IAED,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;IAED,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;KAClB;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;IAEL,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;KACrC;AAED,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;IAED,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;KAClB;AAEF;;;;;"}