@hazae41/box
Version:
Rust-like Box and similar objects for TypeScript
1 lines • 2.55 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../../src/mods/tick/index.ts"],"sourcesContent":["/**\n * A reference that will be disposed after some delay\n */\nexport class Tick<T extends Disposable> {\n\n #timeout: NodeJS.Timeout\n\n /**\n * A reference that will be disposed after some delay\n * @param value \n * @param delay \n */\n constructor(\n readonly value: T,\n readonly delay: number = 0\n ) {\n this.#timeout = setTimeout(() => this.value[Symbol.dispose](), delay)\n }\n\n [Symbol.dispose]() {\n clearTimeout(this.#timeout)\n }\n\n async [Symbol.asyncDispose]() {\n this[Symbol.dispose]()\n }\n\n get() {\n return this.value\n }\n\n}\n\n/**\n * A reference that will be disposed after some delay\n */\nexport class AsyncTick<T extends AsyncDisposable> {\n\n #timeout: NodeJS.Timeout\n\n /**\n * A reference that will be disposed after some delay\n * @param value \n * @param delay \n */\n constructor(\n readonly value: T,\n readonly delay: number = 0\n ) {\n this.#timeout = setTimeout(() => this.value[Symbol.asyncDispose]().then(undefined, console.error), delay)\n }\n\n [Symbol.dispose]() {\n clearTimeout(this.#timeout)\n }\n\n async [Symbol.asyncDispose]() {\n this[Symbol.dispose]()\n }\n\n get() {\n return this.value\n }\n\n}"],"names":[],"mappings":";;AAAA;;AAEG;MACU,IAAI,CAAA;AAUJ,IAAA,KAAA,CAAA;AACA,IAAA,KAAA,CAAA;AATX,IAAA,QAAQ,CAAgB;AAExB;;;;AAIG;IACH,WACW,CAAA,KAAQ,EACR,KAAA,GAAgB,CAAC,EAAA;QADjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAG;QACR,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAE1B,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;KACtE;IAED,CAAC,MAAM,CAAC,OAAO,CAAC,GAAA;AACd,QAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;KAC5B;AAED,IAAA,OAAO,MAAM,CAAC,YAAY,CAAC,GAAA;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;KACvB;IAED,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;KAClB;AAEF,CAAA;AAED;;AAEG;MACU,SAAS,CAAA;AAUT,IAAA,KAAA,CAAA;AACA,IAAA,KAAA,CAAA;AATX,IAAA,QAAQ,CAAgB;AAExB;;;;AAIG;IACH,WACW,CAAA,KAAQ,EACR,KAAA,GAAgB,CAAC,EAAA;QADjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAG;QACR,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;AAE1B,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;KAC1G;IAED,CAAC,MAAM,CAAC,OAAO,CAAC,GAAA;AACd,QAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;KAC5B;AAED,IAAA,OAAO,MAAM,CAAC,YAAY,CAAC,GAAA;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;KACvB;IAED,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;KAClB;AAEF;;;;;"}