@irrelon/emitter 5.0.6 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +2 -1
- package/.prettierignore +2 -1
- package/.prettierrc.yml +18 -1
- package/dist/cjs/src/Emitter.d.ts +23 -16
- package/dist/cjs/src/Emitter.js +51 -74
- package/dist/cjs/tests/Emitter.test.js +102 -52
- package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/{mjs → esm}/src/Emitter.d.ts +23 -16
- package/dist/{mjs → esm}/src/Emitter.js +51 -63
- package/dist/{mjs → esm}/tests/Emitter.test.js +100 -50
- package/dist/esm/tsconfig-esm.tsbuildinfo +1 -0
- package/fixup.sh +1 -1
- package/package.json +68 -67
- package/readme.md +84 -20
- package/src/Emitter.ts +178 -106
- package/tests/Emitter.test.ts +210 -76
- package/tsconfig-cjs.json +1 -1
- package/tsconfig-esm.json +8 -0
- package/tsconfig.json +33 -5
- package/tsconfig-base.json +0 -36
- /package/dist/{mjs → esm}/package.json +0 -0
- /package/dist/{mjs → esm}/tests/Emitter.test.d.ts +0 -0
- /package/dist/{mjs → esm}/tsconfig.tsbuildinfo +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../src/emitter.ts","../../tests/emitter.test.ts","../../node_modules/@types/node/ts4.8/assert.d.ts","../../node_modules/@types/node/ts4.8/assert/strict.d.ts","../../node_modules/@types/node/ts4.8/globals.d.ts","../../node_modules/@types/node/ts4.8/async_hooks.d.ts","../../node_modules/@types/node/ts4.8/buffer.d.ts","../../node_modules/@types/node/ts4.8/child_process.d.ts","../../node_modules/@types/node/ts4.8/cluster.d.ts","../../node_modules/@types/node/ts4.8/console.d.ts","../../node_modules/@types/node/ts4.8/constants.d.ts","../../node_modules/@types/node/ts4.8/crypto.d.ts","../../node_modules/@types/node/ts4.8/dgram.d.ts","../../node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../node_modules/@types/node/ts4.8/dns.d.ts","../../node_modules/@types/node/ts4.8/dns/promises.d.ts","../../node_modules/@types/node/ts4.8/domain.d.ts","../../node_modules/@types/node/ts4.8/events.d.ts","../../node_modules/@types/node/ts4.8/fs.d.ts","../../node_modules/@types/node/ts4.8/fs/promises.d.ts","../../node_modules/@types/node/ts4.8/http.d.ts","../../node_modules/@types/node/ts4.8/http2.d.ts","../../node_modules/@types/node/ts4.8/https.d.ts","../../node_modules/@types/node/ts4.8/inspector.d.ts","../../node_modules/@types/node/ts4.8/module.d.ts","../../node_modules/@types/node/ts4.8/net.d.ts","../../node_modules/@types/node/ts4.8/os.d.ts","../../node_modules/@types/node/ts4.8/path.d.ts","../../node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../node_modules/@types/node/ts4.8/process.d.ts","../../node_modules/@types/node/ts4.8/punycode.d.ts","../../node_modules/@types/node/ts4.8/querystring.d.ts","../../node_modules/@types/node/ts4.8/readline.d.ts","../../node_modules/@types/node/ts4.8/readline/promises.d.ts","../../node_modules/@types/node/ts4.8/repl.d.ts","../../node_modules/@types/node/ts4.8/stream.d.ts","../../node_modules/@types/node/ts4.8/stream/promises.d.ts","../../node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../node_modules/@types/node/ts4.8/stream/web.d.ts","../../node_modules/@types/node/ts4.8/string_decoder.d.ts","../../node_modules/@types/node/ts4.8/test.d.ts","../../node_modules/@types/node/ts4.8/timers.d.ts","../../node_modules/@types/node/ts4.8/timers/promises.d.ts","../../node_modules/@types/node/ts4.8/tls.d.ts","../../node_modules/@types/node/ts4.8/trace_events.d.ts","../../node_modules/@types/node/ts4.8/tty.d.ts","../../node_modules/@types/node/ts4.8/url.d.ts","../../node_modules/@types/node/ts4.8/util.d.ts","../../node_modules/@types/node/ts4.8/v8.d.ts","../../node_modules/@types/node/ts4.8/vm.d.ts","../../node_modules/@types/node/ts4.8/wasi.d.ts","../../node_modules/@types/node/ts4.8/worker_threads.d.ts","../../node_modules/@types/node/ts4.8/zlib.d.ts","../../node_modules/@types/node/ts4.8/globals.global.d.ts","../../node_modules/@types/node/ts4.8/index.d.ts","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"b70aa0fb83e36865d0a0eaf6c48ac44e20cf3f24a63327803b98af47bfb3cb78","signature":"95de3cc79ce33b1197a6c7a1fb78998b3fb77583c814bf16eb58906126ac5333"},{"version":"35c646323071a40f8561d46a3ab38f101a817e4891948299ebb098d2f6957a92","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"002d6d5f044365b3fbfba0ba9be3bb57cac09b81547c8df4b0795755d2081d90","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","c4cfc9a6e2ebb8bc8c0e2392dfc4056993ced3b35069ebf132ac18ca7a562881","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"bae4ea23beb8397755b935cb84d3cdc6cdb0b1b4a329b90de9fc6c8774d71994","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","df36874d9e56aff601e921c4b3971d37cf66d14f6455935ce821e6cad13b1823","3c135ff5bda0355f6b52a10ea931736ec7c5a80b7fb8772019054e0eaa0fd6b6","1abb206a4ecd13b21536b677d7d5f66e0d7316f0d44610197cfcc5776f78884a","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"76527127c8b749bee5977408861ce3ee56ec19ddcea8704c628f98ca610283e6","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b68bd7bef90dab08b1866a9fee24f03d9fee10bcb3f587b074e96e61abf6d3f0","cb4f3f03480e1727eae46400606cecaa97f550186ff8fa909ebc00db4180531b",{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","556bf5c36deb62cffa1bf697c1789fe008ec82db0273025001db66732714e9d9","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","0830071706fa0e477fb5e95f0955cc1062b5948b146b7d4e03a126f12ad6085f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true},"2d526e6f21d8cc66ac11ada32874e95ae88d870c6c9d3d9d4e03b1d1f9ad7b8e","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","d2ec52f565f0570e90b659811347bd689f8c6039b11eaaccd0f243759d46da6e","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"ecd8eb2ed2ea3f7e17ae00a2ce61db2c199e6e3944f6ff4a02de85c1a98e38eb","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","032cbd1883827ca3728c1400145403b62e65b7b584a0d2115ae538c9edec7936","427ce5854885cfc34387e09de05c1d5c1acf94c2143e1693f1d9ff54880573e7","bed2c4f96fab3348be4a34d88dcb12578c1b2475b07c6acd369e99e227718d81","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","3b105d5a0dacc73812d93e90d3c7243fd5a9c0566a2e63bc2964ca12d882c8e8",{"version":"458e2fd1185e659cb800ef68d01ef77de70dcab8860bedf6d94eaebe736751f1","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"downlevelIteration":true,"esModuleInterop":true,"inlineSourceMap":false,"module":1,"outDir":"./","skipLibCheck":false,"strict":true,"target":2},"fileIdsList":[[101],[101,111],[101,113,116],[56,101],[59,101],[60,65,101],[61,71,72,79,89,100,101],[61,62,71,79,101],[63,101],[64,65,72,80,101],[65,89,97,101],[66,68,71,79,101],[67,101],[68,69,101],[70,71,101],[71,101],[71,72,73,89,100,101],[71,72,73,89,92,101],[101,105],[74,79,89,100,101],[71,72,74,75,79,89,97,100,101],[74,76,89,97,100,101],[56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107],[71,77,101],[78,100,101],[68,71,79,89,101],[80,101],[81,101],[59,82,101],[83,99,101,105],[84,101],[85,101],[71,86,87,101],[86,88,101,103],[71,89,90,91,92,101],[89,91,101],[89,90,101],[92,101],[93,101],[71,95,96,101],[95,96,101],[65,79,89,97,101],[98,101],[79,99,101],[60,74,85,100,101],[65,101],[89,101,102],[101,103],[101,104],[60,65,71,73,82,89,100,101,103,105],[89,101,106],[101,109,115],[101,113],[101,110,114],[101,112],[54,56,101]],"referencedMap":[[109,1],[112,2],[111,1],[117,3],[56,4],[57,4],[59,5],[60,6],[61,7],[62,8],[63,9],[64,10],[65,11],[66,12],[67,13],[68,14],[69,14],[70,15],[71,16],[72,17],[73,18],[58,19],[107,1],[74,20],[75,21],[76,22],[108,23],[77,24],[78,25],[79,26],[80,27],[81,28],[82,29],[83,30],[84,31],[85,32],[86,33],[87,33],[88,34],[89,35],[91,36],[90,37],[92,38],[93,39],[94,1],[95,40],[96,41],[97,42],[98,43],[99,44],[100,45],[101,46],[102,47],[103,48],[104,49],[105,50],[106,51],[116,52],[114,53],[115,54],[110,1],[113,55],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[8,1],[46,1],[43,1],[44,1],[45,1],[47,1],[9,1],[48,1],[49,1],[50,1],[51,1],[52,1],[1,1],[10,1],[53,1],[54,1],[55,56]],"exportedModulesMap":[[109,1],[112,2],[111,1],[117,3],[56,4],[57,4],[59,5],[60,6],[61,7],[62,8],[63,9],[64,10],[65,11],[66,12],[67,13],[68,14],[69,14],[70,15],[71,16],[72,17],[73,18],[58,19],[107,1],[74,20],[75,21],[76,22],[108,23],[77,24],[78,25],[79,26],[80,27],[81,28],[82,29],[83,30],[84,31],[85,32],[86,33],[87,33],[88,34],[89,35],[91,36],[90,37],[92,38],[93,39],[94,1],[95,40],[96,41],[97,42],[98,43],[99,44],[100,45],[101,46],[102,47],[103,48],[104,49],[105,50],[106,51],[116,52],[114,53],[115,54],[110,1],[113,55],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[8,1],[46,1],[43,1],[44,1],[45,1],[47,1],[9,1],[48,1],[49,1],[50,1],[51,1],[52,1],[1,1],[10,1],[53,1]],"semanticDiagnosticsPerFile":[109,112,111,117,56,57,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,58,107,74,75,76,108,77,78,79,80,81,82,83,84,85,86,87,88,89,91,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,116,114,115,110,113,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,36,41,42,37,38,39,40,8,46,43,44,45,47,9,48,49,50,51,52,1,10,53,54,55]},"version":"4.8.4"}
|
|
1
|
+
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../src/emitter.ts","../../tests/emitter.test.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"26fbc5e2e6ca6b5341a2c1b0f2a22d7727cb461f45924569dee7c39b41477756","signature":"815c63ed250d406ad551ba3690048484ee5fc4a788410760301a13d5b2af10d8"},{"version":"f7f80f896c5dbc24c28c7d2589e922de1e6258c3a47509d4e97ebe94000d58c9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"e31b69b603075736c59065f0c89606f93068600d94b456dda77248c8b2a803a9","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"002d6d5f044365b3fbfba0ba9be3bb57cac09b81547c8df4b0795755d2081d90","affectsGlobalScope":true},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","c4cfc9a6e2ebb8bc8c0e2392dfc4056993ced3b35069ebf132ac18ca7a562881","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"bae4ea23beb8397755b935cb84d3cdc6cdb0b1b4a329b90de9fc6c8774d71994","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","df36874d9e56aff601e921c4b3971d37cf66d14f6455935ce821e6cad13b1823","3c135ff5bda0355f6b52a10ea931736ec7c5a80b7fb8772019054e0eaa0fd6b6","1abb206a4ecd13b21536b677d7d5f66e0d7316f0d44610197cfcc5776f78884a","dbe5aa5a5dd8bd1c6a8d11b1310c3f0cdabaacc78a37b394a8c7b14faeb5fb84","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"76527127c8b749bee5977408861ce3ee56ec19ddcea8704c628f98ca610283e6","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b68bd7bef90dab08b1866a9fee24f03d9fee10bcb3f587b074e96e61abf6d3f0","cb4f3f03480e1727eae46400606cecaa97f550186ff8fa909ebc00db4180531b",{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","556bf5c36deb62cffa1bf697c1789fe008ec82db0273025001db66732714e9d9","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","24ad30a03d6c9266b63540956868dd70fa2dc523d60d780d6586eb0c281946bc",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true},"2d526e6f21d8cc66ac11ada32874e95ae88d870c6c9d3d9d4e03b1d1f9ad7b8e","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","d2ec52f565f0570e90b659811347bd689f8c6039b11eaaccd0f243759d46da6e","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"854a39fe9c9e32cc0855380e0f16bbb25217c3b62d8a687fe2b663ba44b3b5a1","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","032cbd1883827ca3728c1400145403b62e65b7b584a0d2115ae538c9edec7936","427ce5854885cfc34387e09de05c1d5c1acf94c2143e1693f1d9ff54880573e7","bed2c4f96fab3348be4a34d88dcb12578c1b2475b07c6acd369e99e227718d81","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","3b105d5a0dacc73812d93e90d3c7243fd5a9c0566a2e63bc2964ca12d882c8e8",{"version":"458e2fd1185e659cb800ef68d01ef77de70dcab8860bedf6d94eaebe736751f1","affectsGlobalScope":true}],"root":[64,65],"options":{"allowJs":false,"allowSyntheticDefaultImports":true,"declaration":true,"downlevelIteration":true,"esModuleInterop":true,"inlineSourceMap":false,"module":1,"outDir":"./","skipLibCheck":false,"strict":true,"target":2},"fileIdsList":[[111],[111,121],[111,123,126],[66,111],[69,111],[70,75,111],[71,81,82,89,99,110,111],[71,72,81,89,111],[73,111],[74,75,82,90,111],[75,99,107,111],[76,78,81,89,111],[77,111],[78,79,111],[80,81,111],[81,111],[81,82,83,99,110,111],[81,82,83,99,102,111],[111,115],[84,89,99,110,111],[81,82,84,85,89,99,107,110,111],[84,86,99,107,110,111],[66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],[81,87,111],[88,110,111],[78,81,89,99,111],[90,111],[91,111],[69,92,111],[93,109,111,115],[94,111],[95,111],[81,96,97,111],[96,98,111,113],[81,99,100,101,102,111],[99,101,111],[99,100,111],[102,111],[103,111],[81,105,106,111],[105,106,111],[75,89,99,107,111],[108,111],[89,109,111],[70,84,95,110,111],[75,111],[99,111,112],[111,113],[111,114],[70,75,81,83,92,99,110,111,113,115],[99,111,116],[111,119,125],[111,123],[111,120,124],[111,122],[64,66,111]],"referencedMap":[[119,1],[122,2],[121,1],[127,3],[66,4],[67,4],[69,5],[70,6],[71,7],[72,8],[73,9],[74,10],[75,11],[76,12],[77,13],[78,14],[79,14],[80,15],[81,16],[82,17],[83,18],[68,19],[117,1],[84,20],[85,21],[86,22],[118,23],[87,24],[88,25],[89,26],[90,27],[91,28],[92,29],[93,30],[94,31],[95,32],[96,33],[97,33],[98,34],[99,35],[101,36],[100,37],[102,38],[103,39],[104,1],[105,40],[106,41],[107,42],[108,43],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[115,50],[116,51],[126,52],[124,53],[125,54],[120,1],[123,55],[62,1],[63,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[56,1],[54,1],[55,1],[57,1],[58,1],[10,1],[1,1],[11,1],[61,1],[60,1],[59,1],[64,1],[65,56]],"exportedModulesMap":[[119,1],[122,2],[121,1],[127,3],[66,4],[67,4],[69,5],[70,6],[71,7],[72,8],[73,9],[74,10],[75,11],[76,12],[77,13],[78,14],[79,14],[80,15],[81,16],[82,17],[83,18],[68,19],[117,1],[84,20],[85,21],[86,22],[118,23],[87,24],[88,25],[89,26],[90,27],[91,28],[92,29],[93,30],[94,31],[95,32],[96,33],[97,33],[98,34],[99,35],[101,36],[100,37],[102,38],[103,39],[104,1],[105,40],[106,41],[107,42],[108,43],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[115,50],[116,51],[126,52],[124,53],[125,54],[120,1],[123,55],[62,1],[63,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[56,1],[54,1],[55,1],[57,1],[58,1],[10,1],[1,1],[11,1],[61,1],[60,1],[59,1]],"semanticDiagnosticsPerFile":[119,122,121,127,66,67,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,68,117,84,85,86,118,87,88,89,90,91,92,93,94,95,96,97,98,99,101,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,126,124,125,120,123,62,63,13,12,2,14,15,16,17,18,19,20,21,3,4,22,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,58,10,1,11,61,60,59,64,65]},"version":"5.3.2"}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export declare enum
|
|
4
|
-
none =
|
|
5
|
-
cancel =
|
|
1
|
+
export type AnyFunction<ReturnType = any> = (...args: any[]) => ReturnType;
|
|
2
|
+
export type AnyConstructor = new (...args: any[]) => any;
|
|
3
|
+
export declare enum ListenerReturnFlag {
|
|
4
|
+
none = "!+_NONE",
|
|
5
|
+
cancel = "!+_CANCEL"
|
|
6
6
|
}
|
|
7
|
-
export
|
|
7
|
+
export type EventListenerCallback<EventCallbackFunctionSignature extends AnyFunction = AnyFunction> = (...args: Parameters<EventCallbackFunctionSignature>) => ReturnType<EventCallbackFunctionSignature>;
|
|
8
8
|
export interface EventStaticEmitterObject<EventCallbackFunctionSignature extends AnyFunction = AnyFunction> {
|
|
9
9
|
id: string;
|
|
10
10
|
args: Parameters<EventCallbackFunctionSignature>;
|
|
11
11
|
}
|
|
12
|
-
export interface
|
|
12
|
+
export interface EmitterAnyEventsInterface {
|
|
13
13
|
[key: string]: AnyFunction;
|
|
14
14
|
}
|
|
15
|
-
export
|
|
15
|
+
export type EmitterEventsInterface<T> = {
|
|
16
16
|
[K in keyof T]: T[K];
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
19
|
* Creates a new class with the capability to emit events.
|
|
20
20
|
*/
|
|
21
|
-
export declare class Emitter<EventsInterface extends EmitterEventsInterface =
|
|
21
|
+
export declare class Emitter<EventsInterface extends EmitterEventsInterface<EventsInterface> = EmitterAnyEventsInterface> {
|
|
22
22
|
_eventsEmitting: boolean;
|
|
23
23
|
_eventRemovalQueue: any[];
|
|
24
24
|
_eventListeners?: {
|
|
25
|
-
[EventName in
|
|
25
|
+
[EventName in keyof EventsInterface]?: Record<string, EventListenerCallback<EventsInterface[EventName]>[]>;
|
|
26
26
|
};
|
|
27
27
|
_eventStaticEmitters: {
|
|
28
|
-
[EventName in
|
|
28
|
+
[EventName in keyof EventsInterface]?: EventStaticEmitterObject<EventsInterface[EventName]>[];
|
|
29
29
|
};
|
|
30
30
|
_eventsAllowDefer: boolean;
|
|
31
31
|
_eventsDeferTimeouts: Record<any, number>;
|
|
@@ -101,6 +101,7 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface = Em
|
|
|
101
101
|
off<EventName extends keyof EventsInterface>(eventName: EventName, id: string, listener?: EventListenerCallback<EventsInterface[EventName]>): this;
|
|
102
102
|
off<EventName extends keyof EventsInterface>(eventName: EventName, listener?: EventListenerCallback<EventsInterface[EventName]>): this;
|
|
103
103
|
off<EventName extends keyof EventsInterface>(eventName: EventName): this;
|
|
104
|
+
_emitToArrayOfListeners<EventName extends keyof EventsInterface>(arr: EventListenerCallback<EventsInterface[EventName]>[], data: Parameters<EventsInterface[EventName]>): (ReturnType<EventsInterface[EventName]> | ListenerReturnFlag)[];
|
|
104
105
|
/**
|
|
105
106
|
* Emit an event by name.
|
|
106
107
|
* @param eventName The name of the event to emit.
|
|
@@ -130,8 +131,8 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface = Em
|
|
|
130
131
|
* // The console output is:
|
|
131
132
|
* // data1, data2
|
|
132
133
|
*/
|
|
133
|
-
emit<EventName extends keyof EventsInterface>(eventName: EventName, ...data: Parameters<EventsInterface[EventName]>):
|
|
134
|
-
emitId<EventName extends keyof EventsInterface>(eventName: EventName, id: string, ...data: Parameters<EventsInterface[EventName]>):
|
|
134
|
+
emit<EventName extends keyof EventsInterface>(eventName: EventName, ...data: Parameters<EventsInterface[EventName]>): (ReturnType<EventsInterface[EventName]> | ListenerReturnFlag)[];
|
|
135
|
+
emitId<EventName extends keyof EventsInterface>(eventName: EventName, id: string, ...data: Parameters<EventsInterface[EventName]>): (ReturnType<EventsInterface[EventName]> | ListenerReturnFlag)[];
|
|
135
136
|
/**
|
|
136
137
|
* Creates a persistent emitter record that will fire a listener if
|
|
137
138
|
* one is added for this event after the emitStatic() call has been
|
|
@@ -186,13 +187,19 @@ export declare class Emitter<EventsInterface extends EmitterEventsInterface = Em
|
|
|
186
187
|
* @returns The emitter instance.
|
|
187
188
|
*/
|
|
188
189
|
deferEmit<EventName extends keyof EventsInterface>(eventName: EventName, ...data: Parameters<EventsInterface[EventName]>): this;
|
|
190
|
+
/**
|
|
191
|
+
* Returns true if the result from an emit() call passed as the first
|
|
192
|
+
* argument contains a cancellation flag.
|
|
193
|
+
* @param resultArr
|
|
194
|
+
*/
|
|
195
|
+
didCancel(resultArr: (unknown | ListenerReturnFlag)[]): boolean;
|
|
189
196
|
/**
|
|
190
197
|
* If events are cleared with the off() method while the event emitter is
|
|
191
198
|
* actively processing any events then the off() calls get added to a
|
|
192
199
|
* queue to be executed after the event emitter is finished. This stops
|
|
193
|
-
* errors that might occur by potentially
|
|
194
|
-
* the emitter is running through them. This method is called after
|
|
195
|
-
* event emitter is finished processing.
|
|
200
|
+
* errors that might occur by potentially mutating the event listener array
|
|
201
|
+
* while the emitter is running through them. This method is called after
|
|
202
|
+
* the event emitter is finished processing.
|
|
196
203
|
* @private
|
|
197
204
|
*/
|
|
198
205
|
_processRemovalQueue(): void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export var
|
|
2
|
-
(function (
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
})(
|
|
1
|
+
export var ListenerReturnFlag;
|
|
2
|
+
(function (ListenerReturnFlag) {
|
|
3
|
+
ListenerReturnFlag["none"] = "!+_NONE";
|
|
4
|
+
ListenerReturnFlag["cancel"] = "!+_CANCEL";
|
|
5
|
+
})(ListenerReturnFlag || (ListenerReturnFlag = {}));
|
|
6
6
|
/**
|
|
7
7
|
* Creates a new class with the capability to emit events.
|
|
8
8
|
*/
|
|
@@ -28,11 +28,13 @@ export class Emitter {
|
|
|
28
28
|
}, 1);
|
|
29
29
|
};
|
|
30
30
|
this._eventListeners = this._eventListeners || {};
|
|
31
|
-
const nonNullableEventListeners = this._eventListeners[eventName] = this._eventListeners[eventName] || {};
|
|
31
|
+
const nonNullableEventListeners = (this._eventListeners[eventName] = this._eventListeners[eventName] || {});
|
|
32
32
|
nonNullableEventListeners[id] = nonNullableEventListeners[id] || [];
|
|
33
33
|
nonNullableEventListeners[id].push(listener);
|
|
34
34
|
// Check for any static emitters, and fire the event if any exist
|
|
35
|
-
if (!this._eventStaticEmitters ||
|
|
35
|
+
if (!this._eventStaticEmitters ||
|
|
36
|
+
!this._eventStaticEmitters[eventName] ||
|
|
37
|
+
!this._eventStaticEmitters[eventName].length)
|
|
36
38
|
return this;
|
|
37
39
|
// Emit events for each emitter
|
|
38
40
|
for (let i = 0; i < this._eventStaticEmitters[eventName].length; i++) {
|
|
@@ -145,6 +147,24 @@ export class Emitter {
|
|
|
145
147
|
// Both id and listener were provided, remove for the specific id
|
|
146
148
|
return this._off(eventName, rest[0], rest[1]);
|
|
147
149
|
}
|
|
150
|
+
_emitToArrayOfListeners(arr, data) {
|
|
151
|
+
const arrCount = arr.length;
|
|
152
|
+
const resultArr = [];
|
|
153
|
+
for (let arrIndex = 0; arrIndex < arrCount; arrIndex++) {
|
|
154
|
+
// Check we have a function to execute
|
|
155
|
+
const tmpFunc = arr[arrIndex];
|
|
156
|
+
if (typeof tmpFunc !== "function") {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
const eventListenerResponse = tmpFunc(...data);
|
|
160
|
+
resultArr.push(eventListenerResponse);
|
|
161
|
+
if (eventListenerResponse === ListenerReturnFlag.cancel) {
|
|
162
|
+
// Cancel further event processing
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return resultArr;
|
|
167
|
+
}
|
|
148
168
|
/**
|
|
149
169
|
* Emit an event by name.
|
|
150
170
|
* @param eventName The name of the event to emit.
|
|
@@ -174,68 +194,28 @@ export class Emitter {
|
|
|
174
194
|
* // The console output is:
|
|
175
195
|
* // data1, data2
|
|
176
196
|
*/
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return EventReturnFlag.none;
|
|
180
|
-
}
|
|
181
|
-
const id = "*";
|
|
182
|
-
let returnFlag = EventReturnFlag.none;
|
|
183
|
-
this._eventsEmitting = true;
|
|
184
|
-
if (this._eventListeners[eventName] && this._eventListeners[eventName][id]) {
|
|
185
|
-
// Handle global emit
|
|
186
|
-
const arr = this._eventListeners[eventName][id];
|
|
187
|
-
const promiseArr = arr.map((tmpFunc) => {
|
|
188
|
-
if (typeof tmpFunc !== "function")
|
|
189
|
-
return;
|
|
190
|
-
return tmpFunc(...data);
|
|
191
|
-
});
|
|
192
|
-
const result = (await Promise.all(promiseArr)).find((tmpResult) => tmpResult !== EventReturnFlag.none);
|
|
193
|
-
if (result) {
|
|
194
|
-
returnFlag = EventReturnFlag.cancel;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
this._eventsEmitting = false;
|
|
198
|
-
this._processRemovalQueue();
|
|
199
|
-
return returnFlag;
|
|
197
|
+
emit(eventName, ...data) {
|
|
198
|
+
return this.emitId(eventName, "*", ...data);
|
|
200
199
|
}
|
|
201
200
|
emitId(eventName, id, ...data) {
|
|
202
|
-
if (!this._eventListeners) {
|
|
203
|
-
return
|
|
201
|
+
if (!this._eventListeners || !this._eventListeners[eventName]) {
|
|
202
|
+
return [];
|
|
204
203
|
}
|
|
205
|
-
|
|
204
|
+
let emitterResult = [];
|
|
206
205
|
this._eventsEmitting = true;
|
|
207
|
-
if (!this._eventListeners[eventName]) {
|
|
208
|
-
this._eventsEmitting = false;
|
|
209
|
-
this._processRemovalQueue();
|
|
210
|
-
return EventReturnFlag.none;
|
|
211
|
-
}
|
|
212
206
|
// Handle id emit
|
|
213
207
|
if (this._eventListeners[eventName][id]) {
|
|
214
208
|
const arr = this._eventListeners[eventName][id];
|
|
215
|
-
|
|
216
|
-
for (let arrIndex = 0; arrIndex < arrCount; arrIndex++) {
|
|
217
|
-
// Check we have a function to execute
|
|
218
|
-
const tmpFunc = arr[arrIndex];
|
|
219
|
-
if (typeof tmpFunc === "function") {
|
|
220
|
-
tmpFunc.call(this, ...data);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
209
|
+
emitterResult = emitterResult.concat(this._emitToArrayOfListeners(arr, data));
|
|
223
210
|
}
|
|
224
|
-
// Handle global emit
|
|
225
|
-
if (this._eventListeners[eventName]["*"]) {
|
|
211
|
+
// Handle global emit if the id passed wasn't already a global (*) id
|
|
212
|
+
if (id !== "*" && this._eventListeners[eventName]["*"]) {
|
|
226
213
|
const arr = this._eventListeners[eventName]["*"];
|
|
227
|
-
|
|
228
|
-
for (let arrIndex = 0; arrIndex < arrCount; arrIndex++) {
|
|
229
|
-
// Check we have a function to execute
|
|
230
|
-
const tmpFunc = arr[arrIndex];
|
|
231
|
-
if (typeof tmpFunc === "function") {
|
|
232
|
-
tmpFunc.call(this, ...data);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
214
|
+
emitterResult = emitterResult.concat(this._emitToArrayOfListeners(arr, data));
|
|
235
215
|
}
|
|
236
216
|
this._eventsEmitting = false;
|
|
237
217
|
this._processRemovalQueue();
|
|
238
|
-
return
|
|
218
|
+
return emitterResult;
|
|
239
219
|
}
|
|
240
220
|
/**
|
|
241
221
|
* Creates a persistent emitter record that will fire a listener if
|
|
@@ -266,8 +246,8 @@ export class Emitter {
|
|
|
266
246
|
this._eventStaticEmitters = this._eventStaticEmitters || {};
|
|
267
247
|
this._eventStaticEmitters[eventName] = this._eventStaticEmitters[eventName] || [];
|
|
268
248
|
this._eventStaticEmitters[eventName].push({
|
|
269
|
-
|
|
270
|
-
|
|
249
|
+
id: "*",
|
|
250
|
+
args: data
|
|
271
251
|
});
|
|
272
252
|
this._processRemovalQueue();
|
|
273
253
|
return this;
|
|
@@ -318,7 +298,7 @@ export class Emitter {
|
|
|
318
298
|
this._eventStaticEmitters[eventName] = this._eventStaticEmitters[eventName] || [];
|
|
319
299
|
this._eventStaticEmitters[eventName].push({
|
|
320
300
|
id,
|
|
321
|
-
|
|
301
|
+
args: data
|
|
322
302
|
});
|
|
323
303
|
this._processRemovalQueue();
|
|
324
304
|
return this;
|
|
@@ -420,13 +400,21 @@ export class Emitter {
|
|
|
420
400
|
}
|
|
421
401
|
return this;
|
|
422
402
|
}
|
|
403
|
+
/**
|
|
404
|
+
* Returns true if the result from an emit() call passed as the first
|
|
405
|
+
* argument contains a cancellation flag.
|
|
406
|
+
* @param resultArr
|
|
407
|
+
*/
|
|
408
|
+
didCancel(resultArr) {
|
|
409
|
+
return resultArr.findIndex((result) => result === ListenerReturnFlag.cancel) > -1;
|
|
410
|
+
}
|
|
423
411
|
/**
|
|
424
412
|
* If events are cleared with the off() method while the event emitter is
|
|
425
413
|
* actively processing any events then the off() calls get added to a
|
|
426
414
|
* queue to be executed after the event emitter is finished. This stops
|
|
427
|
-
* errors that might occur by potentially
|
|
428
|
-
* the emitter is running through them. This method is called after
|
|
429
|
-
* event emitter is finished processing.
|
|
415
|
+
* errors that might occur by potentially mutating the event listener array
|
|
416
|
+
* while the emitter is running through them. This method is called after
|
|
417
|
+
* the event emitter is finished processing.
|
|
430
418
|
* @private
|
|
431
419
|
*/
|
|
432
420
|
_processRemovalQueue() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import assert from "assert";
|
|
2
|
-
import { Emitter } from "../src/Emitter";
|
|
2
|
+
import { Emitter, ListenerReturnFlag } from "../src/Emitter";
|
|
3
3
|
let expectedAssertions = 0;
|
|
4
4
|
let actualAssertions = 0;
|
|
5
5
|
function expect(val) {
|
|
@@ -24,11 +24,12 @@ describe("Emitter", () => {
|
|
|
24
24
|
describe("new Emitter()", () => {
|
|
25
25
|
it("Creates emitter instance by instantiation", () => {
|
|
26
26
|
const myClass = new Emitter();
|
|
27
|
-
myClass.on("moo", () => {
|
|
28
|
-
});
|
|
27
|
+
myClass.on("moo", () => { });
|
|
29
28
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 1, "Listener registered on event");
|
|
30
29
|
myClass.off("moo");
|
|
31
|
-
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
30
|
+
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
31
|
+
!myClass._eventListeners.moo["*"] ||
|
|
32
|
+
myClass._eventListeners.moo["*"].length, true, "Listeners all removed from event");
|
|
32
33
|
});
|
|
33
34
|
it("Supports extending Emitter as a base class", () => {
|
|
34
35
|
let testFuncCount = 0;
|
|
@@ -77,26 +78,34 @@ describe("Emitter", () => {
|
|
|
77
78
|
myClass.emitId("moo", "testId", "foo");
|
|
78
79
|
assert.strictEqual(emitCount, 1, "Event fired correctly");
|
|
79
80
|
myClass.off("moo", "testId");
|
|
80
|
-
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
82
|
+
!myClass._eventListeners?.moo["testId"] ||
|
|
83
|
+
myClass._eventListeners?.moo["testId"].length === 0, true, "Listeners all removed from event");
|
|
84
|
+
assert.strictEqual(myClass._eventListeners?.moo &&
|
|
85
|
+
myClass._eventListeners?.moo["^^noId"] &&
|
|
86
|
+
myClass._eventListeners?.moo["^^noId"].length === 1, true, "Global listener still there");
|
|
87
|
+
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
88
|
+
!myClass._eventListeners?.moo["*"] ||
|
|
89
|
+
myClass._eventListeners?.moo["*"].length === 0, true, "Global listener still there");
|
|
83
90
|
myClass.off("moo");
|
|
84
|
-
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
91
|
+
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
92
|
+
!myClass._eventListeners?.moo["*"] ||
|
|
93
|
+
myClass._eventListeners?.moo["*"].length === 0, true, "Listeners all removed from event");
|
|
85
94
|
});
|
|
86
95
|
});
|
|
87
96
|
describe("emit()", () => {
|
|
88
97
|
it("Supports type safe usage", async () => {
|
|
89
98
|
const emitter = new Emitter();
|
|
90
99
|
let listenerFiredCount = 0;
|
|
91
|
-
emitter.on("person",
|
|
100
|
+
emitter.on("person", (name) => {
|
|
92
101
|
return new Promise((resolve) => {
|
|
93
102
|
setTimeout(() => {
|
|
94
103
|
listenerFiredCount++;
|
|
95
|
-
resolve();
|
|
104
|
+
resolve(name);
|
|
96
105
|
}, 1000);
|
|
97
106
|
});
|
|
98
107
|
});
|
|
99
|
-
emitter.on("post",
|
|
108
|
+
emitter.on("post", () => {
|
|
100
109
|
return new Promise((resolve) => {
|
|
101
110
|
setTimeout(() => {
|
|
102
111
|
listenerFiredCount++;
|
|
@@ -104,7 +113,7 @@ describe("Emitter", () => {
|
|
|
104
113
|
}, 1000);
|
|
105
114
|
});
|
|
106
115
|
});
|
|
107
|
-
emitter.on("post",
|
|
116
|
+
emitter.on("post", () => {
|
|
108
117
|
return new Promise((resolve) => {
|
|
109
118
|
setTimeout(() => {
|
|
110
119
|
listenerFiredCount++;
|
|
@@ -113,9 +122,10 @@ describe("Emitter", () => {
|
|
|
113
122
|
});
|
|
114
123
|
});
|
|
115
124
|
const time = new Date().getTime();
|
|
116
|
-
await emitter.emit("post");
|
|
125
|
+
await Promise.all(emitter.emit("post"));
|
|
117
126
|
const delta = new Date().getTime() - time;
|
|
118
127
|
assert.ok(delta > 900, `Delta was not correct, await may not have paused? Delta was: ${delta}`);
|
|
128
|
+
assert.ok(listenerFiredCount === 2, `listenerFiredCount was not correct, await may not have paused? listenerFiredCount was: ${listenerFiredCount}`);
|
|
119
129
|
});
|
|
120
130
|
it("Supports awaiting async listeners", async () => {
|
|
121
131
|
const emitter = new Emitter();
|
|
@@ -137,42 +147,84 @@ describe("Emitter", () => {
|
|
|
137
147
|
});
|
|
138
148
|
});
|
|
139
149
|
const time = new Date().getTime();
|
|
140
|
-
await emitter.emit("foo");
|
|
150
|
+
await Promise.all(emitter.emit("foo"));
|
|
151
|
+
const delta = new Date().getTime() - time;
|
|
152
|
+
assert.ok(delta > 900, "Delta was not correct, await may not have paused?");
|
|
153
|
+
});
|
|
154
|
+
it("Supports awaiting async and non-async listener return data", async () => {
|
|
155
|
+
const emitter = new Emitter();
|
|
156
|
+
let listenerFiredCount = 0;
|
|
157
|
+
emitter.on("foo", () => {
|
|
158
|
+
return new Promise((resolve) => {
|
|
159
|
+
setTimeout(() => {
|
|
160
|
+
listenerFiredCount++;
|
|
161
|
+
resolve("Foo1 Return Value");
|
|
162
|
+
}, 1000);
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
emitter.on("foo", () => {
|
|
166
|
+
return "Foo2 Return Value";
|
|
167
|
+
});
|
|
168
|
+
const time = new Date().getTime();
|
|
169
|
+
const results = await Promise.all(emitter.emit("foo"));
|
|
141
170
|
const delta = new Date().getTime() - time;
|
|
142
171
|
assert.ok(delta > 900, "Delta was not correct, await may not have paused?");
|
|
172
|
+
assert.ok(listenerFiredCount === 1, "listenerFiredCount was not correct, await may not have been used?");
|
|
173
|
+
assert.strictEqual(results[0], "Foo1 Return Value", "Return data for foo1 was not correct");
|
|
174
|
+
assert.strictEqual(results[1], "Foo2 Return Value", "Return data for foo2 was not correct");
|
|
175
|
+
});
|
|
176
|
+
it("Supports responding with a cancellation signal", async () => {
|
|
177
|
+
const emitter = new Emitter();
|
|
178
|
+
let listenerFiredCount = 0;
|
|
179
|
+
emitter.on("foo", () => {
|
|
180
|
+
listenerFiredCount++;
|
|
181
|
+
return "Foo1 Return Value";
|
|
182
|
+
});
|
|
183
|
+
emitter.on("foo", () => {
|
|
184
|
+
listenerFiredCount++;
|
|
185
|
+
// This listener will respond with a cancellation, this should terminate further listener calls
|
|
186
|
+
return ListenerReturnFlag.cancel;
|
|
187
|
+
});
|
|
188
|
+
emitter.on("foo", () => {
|
|
189
|
+
listenerFiredCount++;
|
|
190
|
+
return "Foo3 Return Value";
|
|
191
|
+
});
|
|
192
|
+
emitter.on("foo", () => {
|
|
193
|
+
listenerFiredCount++;
|
|
194
|
+
return "Foo4 Return Value";
|
|
195
|
+
});
|
|
196
|
+
const results = emitter.emit("foo");
|
|
197
|
+
assert.ok(listenerFiredCount === 2, "listenerFiredCount was not correct, await may not have been used?");
|
|
198
|
+
assert.strictEqual(results[0], "Foo1 Return Value", "Return data should be a cancel flag");
|
|
199
|
+
assert.strictEqual(results[1], ListenerReturnFlag.cancel, "Return data should be a cancel flag");
|
|
200
|
+
assert.ok(emitter.didCancel(results), "didCancel should detect a cancel flag");
|
|
143
201
|
});
|
|
144
202
|
});
|
|
145
203
|
describe("off()", () => {
|
|
146
204
|
it("Cancels all listeners (event)", () => {
|
|
147
205
|
const myClass = new Emitter();
|
|
148
|
-
const listener1 = () => {
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
};
|
|
152
|
-
myClass.on("moo", () => {
|
|
153
|
-
});
|
|
206
|
+
const listener1 = () => { };
|
|
207
|
+
const listener2 = () => { };
|
|
208
|
+
myClass.on("moo", () => { });
|
|
154
209
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 1, "Listeners registered on event");
|
|
155
|
-
myClass.on("moo", "testId", () => {
|
|
156
|
-
});
|
|
210
|
+
myClass.on("moo", "testId", () => { });
|
|
157
211
|
assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
|
|
158
212
|
myClass.on("moo", listener1);
|
|
159
213
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
|
|
160
214
|
myClass.on("moo", "testId", listener2);
|
|
161
215
|
assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 2, "Listeners registered on event");
|
|
162
216
|
myClass.off("moo");
|
|
163
|
-
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
217
|
+
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
218
|
+
(myClass._eventListeners?.moo["*"].length === 0 &&
|
|
219
|
+
myClass._eventListeners?.moo["testId"].length === 0), true, "Listeners all removed from event");
|
|
164
220
|
});
|
|
165
221
|
it("Cancels id-based listeners (event, id)", () => {
|
|
166
222
|
const myClass = new Emitter();
|
|
167
|
-
const listener1 = () => {
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
};
|
|
171
|
-
myClass.on("moo", () => {
|
|
172
|
-
});
|
|
223
|
+
const listener1 = () => { };
|
|
224
|
+
const listener2 = () => { };
|
|
225
|
+
myClass.on("moo", () => { });
|
|
173
226
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 1, "Listeners registered on event");
|
|
174
|
-
myClass.on("moo", "testId", () => {
|
|
175
|
-
});
|
|
227
|
+
myClass.on("moo", "testId", () => { });
|
|
176
228
|
assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
|
|
177
229
|
myClass.on("moo", listener1);
|
|
178
230
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
|
|
@@ -184,15 +236,11 @@ describe("Emitter", () => {
|
|
|
184
236
|
});
|
|
185
237
|
it("Cancels listener-based listeners (event, listener)", () => {
|
|
186
238
|
const myClass = new Emitter();
|
|
187
|
-
const listener1 = () => {
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
};
|
|
191
|
-
myClass.on("moo", () => {
|
|
192
|
-
});
|
|
239
|
+
const listener1 = () => { };
|
|
240
|
+
const listener2 = () => { };
|
|
241
|
+
myClass.on("moo", () => { });
|
|
193
242
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 1, "Listeners registered on event");
|
|
194
|
-
myClass.on("moo", "testId", () => {
|
|
195
|
-
});
|
|
243
|
+
myClass.on("moo", "testId", () => { });
|
|
196
244
|
assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
|
|
197
245
|
myClass.on("moo", listener1);
|
|
198
246
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
|
|
@@ -204,15 +252,11 @@ describe("Emitter", () => {
|
|
|
204
252
|
});
|
|
205
253
|
it("Cancels id-based + listener-based listeners (event, id, listener)", () => {
|
|
206
254
|
const myClass = new Emitter();
|
|
207
|
-
const listener1 = () => {
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
};
|
|
211
|
-
myClass.on("moo", () => {
|
|
212
|
-
});
|
|
255
|
+
const listener1 = () => { };
|
|
256
|
+
const listener2 = () => { };
|
|
257
|
+
myClass.on("moo", () => { });
|
|
213
258
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 1, "Listeners registered on event");
|
|
214
|
-
myClass.on("moo", "testId", () => {
|
|
215
|
-
});
|
|
259
|
+
myClass.on("moo", "testId", () => { });
|
|
216
260
|
assert.strictEqual(myClass._eventListeners?.moo["testId"].length, 1, "Listeners registered on event");
|
|
217
261
|
myClass.on("moo", listener1);
|
|
218
262
|
assert.strictEqual(myClass._eventListeners?.moo["*"].length, 2, "Listeners registered on event");
|
|
@@ -327,10 +371,16 @@ describe("Emitter", () => {
|
|
|
327
371
|
myClass.emitId("moo", "testId", "foo");
|
|
328
372
|
assert.strictEqual(emitCount, 2, "Event fired correctly");
|
|
329
373
|
myClass.off("moo", "testId");
|
|
330
|
-
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
331
|
-
|
|
374
|
+
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
375
|
+
!myClass._eventListeners?.moo["testId"] ||
|
|
376
|
+
myClass._eventListeners?.moo["testId"].length, true, "Listeners all removed from event");
|
|
377
|
+
assert.strictEqual(myClass._eventListeners?.moo &&
|
|
378
|
+
myClass._eventListeners?.moo["*"] &&
|
|
379
|
+
myClass._eventListeners?.moo["*"].length === 1, true, "Global listener still there");
|
|
332
380
|
myClass.off("moo");
|
|
333
|
-
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
381
|
+
assert.strictEqual(!myClass._eventListeners?.moo ||
|
|
382
|
+
!myClass._eventListeners?.moo["*"] ||
|
|
383
|
+
myClass._eventListeners?.moo["*"].length === 0, true, "Listeners all removed from event");
|
|
334
384
|
});
|
|
335
385
|
});
|
|
336
386
|
});
|