@opensumi/ide-core-common 2.12.1-next-079c1930
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/lib/application-error.d.ts +36 -0
- package/lib/application-error.d.ts.map +1 -0
- package/lib/application-error.js +64 -0
- package/lib/application-error.js.map +1 -0
- package/lib/application-props.d.ts +26 -0
- package/lib/application-props.d.ts.map +1 -0
- package/lib/application-props.js +3 -0
- package/lib/application-props.js.map +1 -0
- package/lib/arrays.d.ts +131 -0
- package/lib/arrays.d.ts.map +1 -0
- package/lib/arrays.js +533 -0
- package/lib/arrays.js.map +1 -0
- package/lib/async.d.ts +165 -0
- package/lib/async.d.ts.map +1 -0
- package/lib/async.js +417 -0
- package/lib/async.js.map +1 -0
- package/lib/browser-fs/ensure-dir.d.ts +7 -0
- package/lib/browser-fs/ensure-dir.d.ts.map +1 -0
- package/lib/browser-fs/ensure-dir.js +40 -0
- package/lib/browser-fs/ensure-dir.js.map +1 -0
- package/lib/browser-fs/util.d.ts +18 -0
- package/lib/browser-fs/util.d.ts.map +1 -0
- package/lib/browser-fs/util.js +21 -0
- package/lib/browser-fs/util.js.map +1 -0
- package/lib/cache.d.ts +12 -0
- package/lib/cache.d.ts.map +1 -0
- package/lib/cache.js +36 -0
- package/lib/cache.js.map +1 -0
- package/lib/cancellation.d.ts +23 -0
- package/lib/cancellation.d.ts.map +1 -0
- package/lib/cancellation.js +116 -0
- package/lib/cancellation.js.map +1 -0
- package/lib/charCode.d.ts +406 -0
- package/lib/charCode.d.ts.map +1 -0
- package/lib/charCode.js +8 -0
- package/lib/charCode.js.map +1 -0
- package/lib/character-classifier.d.ts +25 -0
- package/lib/character-classifier.d.ts.map +1 -0
- package/lib/character-classifier.js +58 -0
- package/lib/character-classifier.js.map +1 -0
- package/lib/command.d.ts +350 -0
- package/lib/command.d.ts.map +1 -0
- package/lib/command.js +408 -0
- package/lib/command.js.map +1 -0
- package/lib/connection.d.ts +8 -0
- package/lib/connection.d.ts.map +1 -0
- package/lib/connection.js +17 -0
- package/lib/connection.js.map +1 -0
- package/lib/const/application.d.ts +3 -0
- package/lib/const/application.d.ts.map +1 -0
- package/lib/const/application.js +6 -0
- package/lib/const/application.js.map +1 -0
- package/lib/const/encodings.d.ts +10 -0
- package/lib/const/encodings.d.ts.map +1 -0
- package/lib/const/encodings.js +244 -0
- package/lib/const/encodings.js.map +1 -0
- package/lib/const/index.d.ts +2 -0
- package/lib/const/index.d.ts.map +1 -0
- package/lib/const/index.js +5 -0
- package/lib/const/index.js.map +1 -0
- package/lib/contribution-provider.d.ts +38 -0
- package/lib/contribution-provider.d.ts.map +1 -0
- package/lib/contribution-provider.js +60 -0
- package/lib/contribution-provider.js.map +1 -0
- package/lib/credential.d.ts +21 -0
- package/lib/credential.d.ts.map +1 -0
- package/lib/credential.js +6 -0
- package/lib/credential.js.map +1 -0
- package/lib/cryptr.d.ts +7 -0
- package/lib/cryptr.d.ts.map +1 -0
- package/lib/cryptr.js +6 -0
- package/lib/cryptr.js.map +1 -0
- package/lib/date.d.ts +2 -0
- package/lib/date.d.ts.map +1 -0
- package/lib/date.js +16 -0
- package/lib/date.js.map +1 -0
- package/lib/declare.d.ts +3 -0
- package/lib/declare.d.ts.map +1 -0
- package/lib/declare.js +3 -0
- package/lib/declare.js.map +1 -0
- package/lib/di-helper/domain-helper.d.ts +14 -0
- package/lib/di-helper/domain-helper.d.ts.map +1 -0
- package/lib/di-helper/domain-helper.js +48 -0
- package/lib/di-helper/domain-helper.js.map +1 -0
- package/lib/di-helper/index.d.ts +2 -0
- package/lib/di-helper/index.d.ts.map +1 -0
- package/lib/di-helper/index.js +5 -0
- package/lib/di-helper/index.js.map +1 -0
- package/lib/disposable.d.ts +88 -0
- package/lib/disposable.d.ts.map +1 -0
- package/lib/disposable.js +309 -0
- package/lib/disposable.js.map +1 -0
- package/lib/electron.d.ts +118 -0
- package/lib/electron.d.ts.map +1 -0
- package/lib/electron.js +7 -0
- package/lib/electron.js.map +1 -0
- package/lib/encoding/index.d.ts +34 -0
- package/lib/encoding/index.d.ts.map +1 -0
- package/lib/encoding/index.js +219 -0
- package/lib/encoding/index.js.map +1 -0
- package/lib/env.d.ts +2 -0
- package/lib/env.d.ts.map +1 -0
- package/lib/env.js +5 -0
- package/lib/env.js.map +1 -0
- package/lib/errors.d.ts +60 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +148 -0
- package/lib/errors.js.map +1 -0
- package/lib/event-bus/basic-event.d.ts +5 -0
- package/lib/event-bus/basic-event.d.ts.map +1 -0
- package/lib/event-bus/basic-event.js +10 -0
- package/lib/event-bus/basic-event.js.map +1 -0
- package/lib/event-bus/event-bus-types.d.ts +66 -0
- package/lib/event-bus/event-bus-types.d.ts.map +1 -0
- package/lib/event-bus/event-bus-types.js +5 -0
- package/lib/event-bus/event-bus-types.js.map +1 -0
- package/lib/event-bus/event-bus.d.ts +13 -0
- package/lib/event-bus/event-bus.d.ts.map +1 -0
- package/lib/event-bus/event-bus.js +55 -0
- package/lib/event-bus/event-bus.js.map +1 -0
- package/lib/event-bus/event-decorator.d.ts +10 -0
- package/lib/event-bus/event-decorator.d.ts.map +1 -0
- package/lib/event-bus/event-decorator.js +34 -0
- package/lib/event-bus/event-decorator.js.map +1 -0
- package/lib/event-bus/index.d.ts +5 -0
- package/lib/event-bus/index.d.ts.map +1 -0
- package/lib/event-bus/index.js +8 -0
- package/lib/event-bus/index.js.map +1 -0
- package/lib/event.d.ts +270 -0
- package/lib/event.d.ts.map +1 -0
- package/lib/event.js +810 -0
- package/lib/event.js.map +1 -0
- package/lib/filters.d.ts +51 -0
- package/lib/filters.d.ts.map +1 -0
- package/lib/filters.js +688 -0
- package/lib/filters.js.map +1 -0
- package/lib/functional.d.ts +4 -0
- package/lib/functional.d.ts.map +1 -0
- package/lib/functional.js +45 -0
- package/lib/functional.js.map +1 -0
- package/lib/hash-calculate/WASMInterface.d.ts +61 -0
- package/lib/hash-calculate/WASMInterface.d.ts.map +1 -0
- package/lib/hash-calculate/WASMInterface.js +180 -0
- package/lib/hash-calculate/WASMInterface.js.map +1 -0
- package/lib/hash-calculate/hash-calculate.d.ts +13 -0
- package/lib/hash-calculate/hash-calculate.d.ts.map +1 -0
- package/lib/hash-calculate/hash-calculate.js +41 -0
- package/lib/hash-calculate/hash-calculate.js.map +1 -0
- package/lib/hash-calculate/lockedCreate.d.ts +4 -0
- package/lib/hash-calculate/lockedCreate.d.ts.map +1 -0
- package/lib/hash-calculate/lockedCreate.js +17 -0
- package/lib/hash-calculate/lockedCreate.js.map +1 -0
- package/lib/hash-calculate/md5.wasm.json +1 -0
- package/lib/hash-calculate/mutex.d.ts +6 -0
- package/lib/hash-calculate/mutex.d.ts.map +1 -0
- package/lib/hash-calculate/mutex.js +32 -0
- package/lib/hash-calculate/mutex.js.map +1 -0
- package/lib/hash-calculate/util.d.ts +12 -0
- package/lib/hash-calculate/util.d.ts.map +1 -0
- package/lib/hash-calculate/util.js +166 -0
- package/lib/hash-calculate/util.js.map +1 -0
- package/lib/id-generator.d.ts +8 -0
- package/lib/id-generator.d.ts.map +1 -0
- package/lib/id-generator.js +15 -0
- package/lib/id-generator.js.map +1 -0
- package/lib/index.d.ts +47 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +50 -0
- package/lib/index.js.map +1 -0
- package/lib/iterator.d.ts +14 -0
- package/lib/iterator.d.ts.map +1 -0
- package/lib/iterator.js +9 -0
- package/lib/iterator.js.map +1 -0
- package/lib/json-schema.d.ts +65 -0
- package/lib/json-schema.d.ts.map +1 -0
- package/lib/json-schema.js +3 -0
- package/lib/json-schema.js.map +1 -0
- package/lib/keyboard/index.d.ts +3 -0
- package/lib/keyboard/index.d.ts.map +1 -0
- package/lib/keyboard/index.js +6 -0
- package/lib/keyboard/index.js.map +1 -0
- package/lib/keyboard/keyboard-layout-provider.d.ts +38 -0
- package/lib/keyboard/keyboard-layout-provider.d.ts.map +1 -0
- package/lib/keyboard/keyboard-layout-provider.js +23 -0
- package/lib/keyboard/keyboard-layout-provider.js.map +1 -0
- package/lib/keyboard/keymap.d.ts +71 -0
- package/lib/keyboard/keymap.d.ts.map +1 -0
- package/lib/keyboard/keymap.js +128 -0
- package/lib/keyboard/keymap.js.map +1 -0
- package/lib/lifecycle.d.ts +17 -0
- package/lib/lifecycle.d.ts.map +1 -0
- package/lib/lifecycle.js +37 -0
- package/lib/lifecycle.js.map +1 -0
- package/lib/line-text.d.ts +17 -0
- package/lib/line-text.d.ts.map +1 -0
- package/lib/line-text.js +72 -0
- package/lib/line-text.js.map +1 -0
- package/lib/linked-list.d.ts +18 -0
- package/lib/linked-list.d.ts.map +1 -0
- package/lib/linked-list.js +138 -0
- package/lib/linked-list.js.map +1 -0
- package/lib/linkedText.d.ts +13 -0
- package/lib/linkedText.d.ts.map +1 -0
- package/lib/linkedText.js +50 -0
- package/lib/linkedText.js.map +1 -0
- package/lib/localize.d.ts +52 -0
- package/lib/localize.d.ts.map +1 -0
- package/lib/localize.js +128 -0
- package/lib/localize.js.map +1 -0
- package/lib/log.d.ts +181 -0
- package/lib/log.d.ts.map +1 -0
- package/lib/log.js +163 -0
- package/lib/log.js.map +1 -0
- package/lib/map.d.ts +124 -0
- package/lib/map.d.ts.map +1 -0
- package/lib/map.js +819 -0
- package/lib/map.js.map +1 -0
- package/lib/menu.d.ts +27 -0
- package/lib/menu.d.ts.map +1 -0
- package/lib/menu.js +5 -0
- package/lib/menu.js.map +1 -0
- package/lib/mocks/electron/browserMock.d.ts +2 -0
- package/lib/mocks/electron/browserMock.d.ts.map +1 -0
- package/lib/mocks/electron/browserMock.js +15 -0
- package/lib/mocks/electron/browserMock.js.map +1 -0
- package/lib/mocks/electron/ipcRenderer.d.ts +13 -0
- package/lib/mocks/electron/ipcRenderer.d.ts.map +1 -0
- package/lib/mocks/electron/ipcRenderer.js +32 -0
- package/lib/mocks/electron/ipcRenderer.js.map +1 -0
- package/lib/module.d.ts +23 -0
- package/lib/module.d.ts.map +1 -0
- package/lib/module.js +22 -0
- package/lib/module.js.map +1 -0
- package/lib/network.d.ts +33 -0
- package/lib/network.d.ts.map +1 -0
- package/lib/network.js +37 -0
- package/lib/network.js.map +1 -0
- package/lib/node/port.d.ts +14 -0
- package/lib/node/port.d.ts.map +1 -0
- package/lib/node/port.js +124 -0
- package/lib/node/port.js.map +1 -0
- package/lib/path.d.ts +92 -0
- package/lib/path.d.ts.map +1 -0
- package/lib/path.js +1711 -0
- package/lib/path.js.map +1 -0
- package/lib/platform.d.ts +48 -0
- package/lib/platform.d.ts.map +1 -0
- package/lib/platform.js +143 -0
- package/lib/platform.js.map +1 -0
- package/lib/preferences/index.d.ts +3 -0
- package/lib/preferences/index.d.ts.map +1 -0
- package/lib/preferences/index.js +6 -0
- package/lib/preferences/index.js.map +1 -0
- package/lib/preferences/preference-schema.d.ts +76 -0
- package/lib/preferences/preference-schema.d.ts.map +1 -0
- package/lib/preferences/preference-schema.js +59 -0
- package/lib/preferences/preference-schema.js.map +1 -0
- package/lib/preferences/preference-scope.d.ts +15 -0
- package/lib/preferences/preference-scope.d.ts.map +1 -0
- package/lib/preferences/preference-scope.js +54 -0
- package/lib/preferences/preference-scope.js.map +1 -0
- package/lib/problem-matcher.d.ts +111 -0
- package/lib/problem-matcher.d.ts.map +1 -0
- package/lib/problem-matcher.js +294 -0
- package/lib/problem-matcher.js.map +1 -0
- package/lib/problem-pattern.d.ts +193 -0
- package/lib/problem-pattern.d.ts.map +1 -0
- package/lib/problem-pattern.js +416 -0
- package/lib/problem-pattern.js.map +1 -0
- package/lib/process.d.ts +5 -0
- package/lib/process.d.ts.map +1 -0
- package/lib/process.js +15 -0
- package/lib/process.js.map +1 -0
- package/lib/progress.d.ts +56 -0
- package/lib/progress.d.ts.map +1 -0
- package/lib/progress.js +25 -0
- package/lib/progress.js.map +1 -0
- package/lib/range.d.ts +7 -0
- package/lib/range.d.ts.map +1 -0
- package/lib/range.js +28 -0
- package/lib/range.js.map +1 -0
- package/lib/reference.d.ts +35 -0
- package/lib/reference.d.ts.map +1 -0
- package/lib/reference.js +122 -0
- package/lib/reference.js.map +1 -0
- package/lib/reporter.d.ts +16 -0
- package/lib/reporter.d.ts.map +1 -0
- package/lib/reporter.js +66 -0
- package/lib/reporter.js.map +1 -0
- package/lib/sequence.d.ts +20 -0
- package/lib/sequence.d.ts.map +1 -0
- package/lib/sequence.js +17 -0
- package/lib/sequence.js.map +1 -0
- package/lib/storage.d.ts +64 -0
- package/lib/storage.d.ts.map +1 -0
- package/lib/storage.js +70 -0
- package/lib/storage.js.map +1 -0
- package/lib/task-definition.d.ts +45 -0
- package/lib/task-definition.d.ts.map +1 -0
- package/lib/task-definition.js +130 -0
- package/lib/task-definition.js.map +1 -0
- package/lib/theme.d.ts +5 -0
- package/lib/theme.d.ts.map +1 -0
- package/lib/theme.js +8 -0
- package/lib/theme.js.map +1 -0
- package/lib/types/accessibility.d.ts +5 -0
- package/lib/types/accessibility.d.ts.map +1 -0
- package/lib/types/accessibility.js +3 -0
- package/lib/types/accessibility.js.map +1 -0
- package/lib/types/application.d.ts +13 -0
- package/lib/types/application.d.ts.map +1 -0
- package/lib/types/application.js +5 -0
- package/lib/types/application.js.map +1 -0
- package/lib/types/authentication.d.ts +90 -0
- package/lib/types/authentication.d.ts.map +1 -0
- package/lib/types/authentication.js +8 -0
- package/lib/types/authentication.js.map +1 -0
- package/lib/types/common.d.ts +10 -0
- package/lib/types/common.d.ts.map +1 -0
- package/lib/types/common.js +6 -0
- package/lib/types/common.js.map +1 -0
- package/lib/types/dnd.d.ts +8 -0
- package/lib/types/dnd.d.ts.map +1 -0
- package/lib/types/dnd.js +9 -0
- package/lib/types/dnd.js.map +1 -0
- package/lib/types/editor.d.ts +157 -0
- package/lib/types/editor.d.ts.map +1 -0
- package/lib/types/editor.js +148 -0
- package/lib/types/editor.js.map +1 -0
- package/lib/types/extension.d.ts +73 -0
- package/lib/types/extension.d.ts.map +1 -0
- package/lib/types/extension.js +28 -0
- package/lib/types/extension.js.map +1 -0
- package/lib/types/file-watch.d.ts +70 -0
- package/lib/types/file-watch.d.ts.map +1 -0
- package/lib/types/file-watch.js +72 -0
- package/lib/types/file-watch.js.map +1 -0
- package/lib/types/file.d.ts +219 -0
- package/lib/types/file.d.ts.map +1 -0
- package/lib/types/file.js +51 -0
- package/lib/types/file.js.map +1 -0
- package/lib/types/index.d.ts +13 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +16 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/markers/index.d.ts +3 -0
- package/lib/types/markers/index.d.ts.map +1 -0
- package/lib/types/markers/index.js +6 -0
- package/lib/types/markers/index.js.map +1 -0
- package/lib/types/markers/markers-manager.d.ts +120 -0
- package/lib/types/markers/markers-manager.d.ts.map +1 -0
- package/lib/types/markers/markers-manager.js +307 -0
- package/lib/types/markers/markers-manager.js.map +1 -0
- package/lib/types/markers/markers.d.ts +76 -0
- package/lib/types/markers/markers.d.ts.map +1 -0
- package/lib/types/markers/markers.js +76 -0
- package/lib/types/markers/markers.js.map +1 -0
- package/lib/types/message.d.ts +7 -0
- package/lib/types/message.d.ts.map +1 -0
- package/lib/types/message.js +11 -0
- package/lib/types/message.js.map +1 -0
- package/lib/types/reporter.d.ts +83 -0
- package/lib/types/reporter.d.ts.map +1 -0
- package/lib/types/reporter.js +63 -0
- package/lib/types/reporter.js.map +1 -0
- package/lib/types/string.d.ts +4 -0
- package/lib/types/string.d.ts.map +1 -0
- package/lib/types/string.js +3 -0
- package/lib/types/string.js.map +1 -0
- package/lib/uint.d.ts +32 -0
- package/lib/uint.d.ts.map +1 -0
- package/lib/uint.js +28 -0
- package/lib/uint.js.map +1 -0
- package/lib/uri.d.ts +94 -0
- package/lib/uri.d.ts.map +1 -0
- package/lib/uri.js +226 -0
- package/lib/uri.js.map +1 -0
- package/lib/utils/ansi.d.ts +5 -0
- package/lib/utils/ansi.d.ts.map +1 -0
- package/lib/utils/ansi.js +16 -0
- package/lib/utils/ansi.js.map +1 -0
- package/lib/utils/arrays.d.ts +62 -0
- package/lib/utils/arrays.d.ts.map +1 -0
- package/lib/utils/arrays.js +254 -0
- package/lib/utils/arrays.js.map +1 -0
- package/lib/utils/buffer.d.ts +36 -0
- package/lib/utils/buffer.d.ts.map +1 -0
- package/lib/utils/buffer.js +178 -0
- package/lib/utils/buffer.js.map +1 -0
- package/lib/utils/comparers.d.ts +7 -0
- package/lib/utils/comparers.d.ts.map +1 -0
- package/lib/utils/comparers.js +135 -0
- package/lib/utils/comparers.js.map +1 -0
- package/lib/utils/decorators.d.ts +13 -0
- package/lib/utils/decorators.d.ts.map +1 -0
- package/lib/utils/decorators.js +150 -0
- package/lib/utils/decorators.js.map +1 -0
- package/lib/utils/file-uri.d.ts +30 -0
- package/lib/utils/file-uri.d.ts.map +1 -0
- package/lib/utils/file-uri.js +62 -0
- package/lib/utils/file-uri.js.map +1 -0
- package/lib/utils/glob.d.ts +46 -0
- package/lib/utils/glob.d.ts.map +1 -0
- package/lib/utils/glob.js +546 -0
- package/lib/utils/glob.js.map +1 -0
- package/lib/utils/index.d.ts +14 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +17 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/ipc.d.ts +2 -0
- package/lib/utils/ipc.d.ts.map +1 -0
- package/lib/utils/ipc.js +21 -0
- package/lib/utils/ipc.js.map +1 -0
- package/lib/utils/json.d.ts +78 -0
- package/lib/utils/json.d.ts.map +1 -0
- package/lib/utils/json.js +190 -0
- package/lib/utils/json.js.map +1 -0
- package/lib/utils/marshalling.d.ts +7 -0
- package/lib/utils/marshalling.d.ts.map +1 -0
- package/lib/utils/marshalling.js +57 -0
- package/lib/utils/marshalling.js.map +1 -0
- package/lib/utils/objects.d.ts +6 -0
- package/lib/utils/objects.d.ts.map +1 -0
- package/lib/utils/objects.js +103 -0
- package/lib/utils/objects.js.map +1 -0
- package/lib/utils/os.d.ts +42 -0
- package/lib/utils/os.d.ts.map +1 -0
- package/lib/utils/os.js +94 -0
- package/lib/utils/os.js.map +1 -0
- package/lib/utils/paths.d.ts +35 -0
- package/lib/utils/paths.d.ts.map +1 -0
- package/lib/utils/paths.js +318 -0
- package/lib/utils/paths.js.map +1 -0
- package/lib/utils/promise-util.d.ts +10 -0
- package/lib/utils/promise-util.d.ts.map +1 -0
- package/lib/utils/promise-util.js +17 -0
- package/lib/utils/promise-util.js.map +1 -0
- package/lib/utils/strings.d.ts +177 -0
- package/lib/utils/strings.d.ts.map +1 -0
- package/lib/utils/strings.js +837 -0
- package/lib/utils/strings.js.map +1 -0
- package/lib/utils/types.d.ts +65 -0
- package/lib/utils/types.d.ts.map +1 -0
- package/lib/utils/types.js +194 -0
- package/lib/utils/types.js.map +1 -0
- package/lib/uuid.d.ts +2 -0
- package/lib/uuid.d.ts.map +1 -0
- package/lib/uuid.js +10 -0
- package/lib/uuid.js.map +1 -0
- package/package.json +30 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectEncodingFromBuffer = exports.detectEncodingByBOMFromBuffer = exports.iconvEncode = exports.iconvDecode = exports.toNodeEncoding = exports.encodingExists = exports.toCanonicalName = exports.toIconvLiteEncoding = exports.isUTF8 = exports.UTF8_BOM = exports.UTF16le_BOM = exports.UTF16be_BOM = exports.UTF16le = exports.UTF16be = exports.UTF8_with_bom = exports.UTF8 = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
/*---------------------------------------------------------------------------------------------
|
|
6
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
7
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
8
|
+
*--------------------------------------------------------------------------------------------*/
|
|
9
|
+
const iconv_lite_1 = (0, tslib_1.__importDefault)(require("iconv-lite"));
|
|
10
|
+
exports.UTF8 = 'utf8';
|
|
11
|
+
exports.UTF8_with_bom = 'utf8bom';
|
|
12
|
+
exports.UTF16be = 'utf16be';
|
|
13
|
+
exports.UTF16le = 'utf16le';
|
|
14
|
+
exports.UTF16be_BOM = [0xFE, 0xFF];
|
|
15
|
+
exports.UTF16le_BOM = [0xFF, 0xFE];
|
|
16
|
+
exports.UTF8_BOM = [0xEF, 0xBB, 0xBF];
|
|
17
|
+
const ZERO_BYTE_DETECTION_BUFFER_MAX_LEN = 512; // number of bytes to look at to decide about a file being binary or not
|
|
18
|
+
const NO_ENCODING_GUESS_MIN_BYTES = 512; // when not auto guessing the encoding, small number of bytes are enough
|
|
19
|
+
const AUTO_ENCODING_GUESS_MIN_BYTES = 512 * 8; // with auto guessing we want a lot more content to be read for guessing
|
|
20
|
+
const AUTO_ENCODING_GUESS_MAX_BYTES = 512 * 128; // set an upper limit for the number of bytes we pass on to jschardet
|
|
21
|
+
function isUTF8(encoding) {
|
|
22
|
+
if (encoding) {
|
|
23
|
+
return toIconvLiteEncoding(encoding) === exports.UTF8;
|
|
24
|
+
}
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
exports.isUTF8 = isUTF8;
|
|
28
|
+
const SUPPORT_ENCODINGS_TO_ICONV_ENCODINGS = {
|
|
29
|
+
'ibm866': 'cp866',
|
|
30
|
+
'big5': 'cp950',
|
|
31
|
+
'utf8bom': 'utf8'
|
|
32
|
+
};
|
|
33
|
+
function toIconvLiteEncoding(encodingName) {
|
|
34
|
+
const normalizedEncodingName = encodingName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
|
|
35
|
+
const mapped = SUPPORT_ENCODINGS_TO_ICONV_ENCODINGS[normalizedEncodingName];
|
|
36
|
+
return mapped || normalizedEncodingName;
|
|
37
|
+
}
|
|
38
|
+
exports.toIconvLiteEncoding = toIconvLiteEncoding;
|
|
39
|
+
/**
|
|
40
|
+
* The encodings that are allowed in a settings file don't match the canonical encoding labels specified by WHATWG.
|
|
41
|
+
* See https://encoding.spec.whatwg.org/#names-and-labels
|
|
42
|
+
* Iconv-lite strips all non-alphanumeric characters, but ripgrep doesn't. For backcompat, allow these labels.
|
|
43
|
+
*/
|
|
44
|
+
function toCanonicalName(enc) {
|
|
45
|
+
switch (enc) {
|
|
46
|
+
case 'shiftjis':
|
|
47
|
+
return 'shift-jis';
|
|
48
|
+
case 'utf16le':
|
|
49
|
+
return 'utf-16le';
|
|
50
|
+
case 'utf16be':
|
|
51
|
+
return 'utf-16be';
|
|
52
|
+
case 'big5hkscs':
|
|
53
|
+
return 'big5-hkscs';
|
|
54
|
+
case 'eucjp':
|
|
55
|
+
return 'euc-jp';
|
|
56
|
+
case 'euckr':
|
|
57
|
+
return 'euc-kr';
|
|
58
|
+
case 'koi8r':
|
|
59
|
+
return 'koi8-r';
|
|
60
|
+
case 'koi8u':
|
|
61
|
+
return 'koi8-u';
|
|
62
|
+
case 'macroman':
|
|
63
|
+
return 'x-mac-roman';
|
|
64
|
+
case 'utf8bom':
|
|
65
|
+
return 'utf8';
|
|
66
|
+
default:
|
|
67
|
+
const m = enc.match(/windows(\d+)/);
|
|
68
|
+
if (m) {
|
|
69
|
+
return 'windows-' + m[1];
|
|
70
|
+
}
|
|
71
|
+
return enc;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.toCanonicalName = toCanonicalName;
|
|
75
|
+
async function encodingExists(encoding) {
|
|
76
|
+
return iconv_lite_1.default.encodingExists(toNodeEncoding(encoding));
|
|
77
|
+
}
|
|
78
|
+
exports.encodingExists = encodingExists;
|
|
79
|
+
function toNodeEncoding(enc) {
|
|
80
|
+
if (enc === exports.UTF8_with_bom || enc === null) {
|
|
81
|
+
return exports.UTF8; // iconv does not distinguish UTF 8 with or without BOM, so we need to help it
|
|
82
|
+
}
|
|
83
|
+
return enc;
|
|
84
|
+
}
|
|
85
|
+
exports.toNodeEncoding = toNodeEncoding;
|
|
86
|
+
/**
|
|
87
|
+
* nodejs 内置的 Buffer 转换编码不支持 GBK,使用第三方的 iconv-lite
|
|
88
|
+
* @param buffer Uint8Array | Buffer
|
|
89
|
+
* @param encoding 传入的是 SUPPORTED_ENCODINGS 已有的键值(已通过 tests case 的)
|
|
90
|
+
*/
|
|
91
|
+
function iconvDecode(buffer, encoding) {
|
|
92
|
+
encoding = toIconvLiteEncoding(encoding);
|
|
93
|
+
return iconv_lite_1.default.decode(buffer, encoding);
|
|
94
|
+
}
|
|
95
|
+
exports.iconvDecode = iconvDecode;
|
|
96
|
+
function iconvEncode(content, encoding) {
|
|
97
|
+
encoding = toIconvLiteEncoding(encoding);
|
|
98
|
+
return iconv_lite_1.default.encode(content, encoding);
|
|
99
|
+
}
|
|
100
|
+
exports.iconvEncode = iconvEncode;
|
|
101
|
+
function encodeLatin1(buffer) {
|
|
102
|
+
let result = '';
|
|
103
|
+
for (let i = 0; i < buffer.length; i++) {
|
|
104
|
+
result += String.fromCharCode(buffer[i]);
|
|
105
|
+
}
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
function detectEncodingByBOMFromBuffer(buffer, bytesRead) {
|
|
109
|
+
if (!buffer || bytesRead < exports.UTF16be_BOM.length) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
const b0 = buffer.readUInt8(0);
|
|
113
|
+
const b1 = buffer.readUInt8(1);
|
|
114
|
+
// UTF-16 BE
|
|
115
|
+
if (b0 === exports.UTF16be_BOM[0] && b1 === exports.UTF16be_BOM[1]) {
|
|
116
|
+
return exports.UTF16be;
|
|
117
|
+
}
|
|
118
|
+
// UTF-16 LE
|
|
119
|
+
if (b0 === exports.UTF16le_BOM[0] && b1 === exports.UTF16le_BOM[1]) {
|
|
120
|
+
return exports.UTF16le;
|
|
121
|
+
}
|
|
122
|
+
if (bytesRead < exports.UTF8_BOM.length) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
const b2 = buffer.readUInt8(2);
|
|
126
|
+
// UTF-8
|
|
127
|
+
if (b0 === exports.UTF8_BOM[0] && b1 === exports.UTF8_BOM[1] && b2 === exports.UTF8_BOM[2]) {
|
|
128
|
+
return exports.UTF8_with_bom;
|
|
129
|
+
}
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
exports.detectEncodingByBOMFromBuffer = detectEncodingByBOMFromBuffer;
|
|
133
|
+
// we explicitly ignore a specific set of encodings from auto guessing
|
|
134
|
+
// - ASCII: we never want this encoding (most UTF-8 files would happily detect as
|
|
135
|
+
// ASCII files and then you could not type non-ASCII characters anymore)
|
|
136
|
+
// - UTF-16: we have our own detection logic for UTF-16
|
|
137
|
+
// - UTF-32: we do not support this encoding in VSCode
|
|
138
|
+
const IGNORE_ENCODINGS = ['ascii', 'utf-16', 'utf-32'];
|
|
139
|
+
async function guessEncodingByBuffer(buffer) {
|
|
140
|
+
// lazy load
|
|
141
|
+
const jschardet = require('jschardet');
|
|
142
|
+
// ensure to limit buffer for guessing due to https://github.com/aadsm/jschardet/issues/53
|
|
143
|
+
const limitedBuffer = buffer.slice(0, AUTO_ENCODING_GUESS_MAX_BYTES);
|
|
144
|
+
// before guessing jschardet calls toString('binary') on input if it is a Buffer,
|
|
145
|
+
// since we are using it inside browser environment as well we do conversion ourselves
|
|
146
|
+
// https://github.com/aadsm/jschardet/blob/v2.1.1/src/index.js#L36-L40
|
|
147
|
+
const binaryString = encodeLatin1(limitedBuffer.buffer);
|
|
148
|
+
const guessed = jschardet.detect(binaryString);
|
|
149
|
+
if (!guessed || !guessed.encoding) {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
const enc = guessed.encoding.toLowerCase();
|
|
153
|
+
if (0 <= IGNORE_ENCODINGS.indexOf(enc)) {
|
|
154
|
+
return null; // see comment above why we ignore some encodings
|
|
155
|
+
}
|
|
156
|
+
return toIconvLiteEncoding(guessed.encoding);
|
|
157
|
+
}
|
|
158
|
+
function detectEncodingFromBuffer(buffer, autoGuessEncoding) {
|
|
159
|
+
const bytesRead = buffer.byteLength;
|
|
160
|
+
// Always first check for BOM to find out about encoding
|
|
161
|
+
let encoding = detectEncodingByBOMFromBuffer(buffer, bytesRead);
|
|
162
|
+
// Detect 0 bytes to see if file is binary or UTF-16 LE/BE
|
|
163
|
+
// unless we already know that this file has a UTF-16 encoding
|
|
164
|
+
let seemsBinary = false;
|
|
165
|
+
if (encoding !== exports.UTF16be && encoding !== exports.UTF16le && buffer) {
|
|
166
|
+
let couldBeUTF16LE = true; // e.g. 0xAA 0x00
|
|
167
|
+
let couldBeUTF16BE = true; // e.g. 0x00 0xAA
|
|
168
|
+
let containsZeroByte = false;
|
|
169
|
+
// This is a simplified guess to detect UTF-16 BE or LE by just checking if
|
|
170
|
+
// the first 512 bytes have the 0-byte at a specific location. For UTF-16 LE
|
|
171
|
+
// this would be the odd byte index and for UTF-16 BE the even one.
|
|
172
|
+
// Note: this can produce false positives (a binary file that uses a 2-byte
|
|
173
|
+
// encoding of the same format as UTF-16) and false negatives (a UTF-16 file
|
|
174
|
+
// that is using 4 bytes to encode a character).
|
|
175
|
+
for (let i = 0; i < bytesRead && i < ZERO_BYTE_DETECTION_BUFFER_MAX_LEN; i++) {
|
|
176
|
+
const isEndian = (i % 2 === 1); // assume 2-byte sequences typical for UTF-16
|
|
177
|
+
const isZeroByte = (buffer.readUInt8(i) === 0);
|
|
178
|
+
if (isZeroByte) {
|
|
179
|
+
containsZeroByte = true;
|
|
180
|
+
}
|
|
181
|
+
// UTF-16 LE: expect e.g. 0xAA 0x00
|
|
182
|
+
if (couldBeUTF16LE && (isEndian && !isZeroByte || !isEndian && isZeroByte)) {
|
|
183
|
+
couldBeUTF16LE = false;
|
|
184
|
+
}
|
|
185
|
+
// UTF-16 BE: expect e.g. 0x00 0xAA
|
|
186
|
+
if (couldBeUTF16BE && (isEndian && isZeroByte || !isEndian && !isZeroByte)) {
|
|
187
|
+
couldBeUTF16BE = false;
|
|
188
|
+
}
|
|
189
|
+
// Return if this is neither UTF16-LE nor UTF16-BE and thus treat as binary
|
|
190
|
+
if (isZeroByte && !couldBeUTF16LE && !couldBeUTF16BE) {
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Handle case of 0-byte included
|
|
195
|
+
if (containsZeroByte) {
|
|
196
|
+
if (couldBeUTF16LE) {
|
|
197
|
+
encoding = exports.UTF16le;
|
|
198
|
+
}
|
|
199
|
+
else if (couldBeUTF16BE) {
|
|
200
|
+
encoding = exports.UTF16be;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
seemsBinary = true;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Auto guess encoding if configured
|
|
208
|
+
if (autoGuessEncoding && !seemsBinary && !encoding && buffer) {
|
|
209
|
+
return guessEncodingByBuffer(buffer.slice(0, bytesRead)).then(guessedEncoding => {
|
|
210
|
+
return {
|
|
211
|
+
seemsBinary: false,
|
|
212
|
+
encoding: guessedEncoding
|
|
213
|
+
};
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
return { seemsBinary, encoding };
|
|
217
|
+
}
|
|
218
|
+
exports.detectEncodingFromBuffer = detectEncodingFromBuffer;
|
|
219
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/encoding/index.ts"],"names":[],"mappings":"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"}
|
package/lib/env.d.ts
ADDED
package/lib/env.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,8BAA8B,CAAC"}
|
package/lib/env.js
ADDED
package/lib/env.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAG,2BAA2B,CAAC"}
|
package/lib/errors.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export interface ErrorListenerCallback {
|
|
2
|
+
(error: any): void;
|
|
3
|
+
}
|
|
4
|
+
export interface ErrorListenerUnbind {
|
|
5
|
+
(): void;
|
|
6
|
+
}
|
|
7
|
+
export declare class ErrorHandler {
|
|
8
|
+
private unexpectedErrorHandler;
|
|
9
|
+
private listeners;
|
|
10
|
+
constructor();
|
|
11
|
+
addListener(listener: ErrorListenerCallback): ErrorListenerUnbind;
|
|
12
|
+
private emit;
|
|
13
|
+
private _removeListener;
|
|
14
|
+
setUnexpectedErrorHandler(newUnexpectedErrorHandler: (e: any) => void): void;
|
|
15
|
+
getUnexpectedErrorHandler(): (e: any) => void;
|
|
16
|
+
onUnexpectedError(e: any): void;
|
|
17
|
+
onUnexpectedExternalError(e: any): void;
|
|
18
|
+
}
|
|
19
|
+
export declare const errorHandler: ErrorHandler;
|
|
20
|
+
export declare function setUnexpectedErrorHandler(newUnexpectedErrorHandler: (e: any) => void): void;
|
|
21
|
+
export declare function onUnexpectedError(e: any): undefined;
|
|
22
|
+
export declare function onUnexpectedExternalError(e: any): undefined;
|
|
23
|
+
export interface SerializedError {
|
|
24
|
+
readonly $isError: true;
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly message: string;
|
|
27
|
+
readonly stack: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function transformErrorForSerialization(error: Error): SerializedError;
|
|
30
|
+
export declare function transformErrorForSerialization(error: any): any;
|
|
31
|
+
export interface V8CallSite {
|
|
32
|
+
getThis(): any;
|
|
33
|
+
getTypeName(): string;
|
|
34
|
+
getFunction(): string;
|
|
35
|
+
getFunctionName(): string;
|
|
36
|
+
getMethodName(): string;
|
|
37
|
+
getFileName(): string;
|
|
38
|
+
getLineNumber(): number;
|
|
39
|
+
getColumnNumber(): number;
|
|
40
|
+
getEvalOrigin(): string;
|
|
41
|
+
isToplevel(): boolean;
|
|
42
|
+
isEval(): boolean;
|
|
43
|
+
isNative(): boolean;
|
|
44
|
+
isConstructor(): boolean;
|
|
45
|
+
toString(): string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Checks if the given error is a promise in canceled state
|
|
49
|
+
*/
|
|
50
|
+
export declare function isPromiseCanceledError(error: any): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Returns an error that signals cancellation.
|
|
53
|
+
*/
|
|
54
|
+
export declare function canceled(): Error;
|
|
55
|
+
export declare function illegalArgument(name?: string): Error;
|
|
56
|
+
export declare function illegalState(name?: string): Error;
|
|
57
|
+
export declare function readonly(name?: string): Error;
|
|
58
|
+
export declare function disposed(what: string): Error;
|
|
59
|
+
export declare function getErrorMessage(err: any): string;
|
|
60
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,IAAI,CAAC;CACV;AAGD,qBAAa,YAAY;IACvB,OAAO,CAAC,sBAAsB,CAAmB;IACjD,OAAO,CAAC,SAAS,CAA0B;;IAiBpC,WAAW,CAAC,QAAQ,EAAE,qBAAqB,GAAG,mBAAmB;IAQxE,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,eAAe;IAIhB,yBAAyB,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAI5E,yBAAyB,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI;IAI7C,iBAAiB,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI;IAM/B,yBAAyB,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI;CAG/C;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC;AAE/C,wBAAgB,yBAAyB,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAE3F;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,CAMnD;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,CAM3D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAAC;AAC9E,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;AAkBhE,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,GAAG,CAAC;IACf,WAAW,IAAI,MAAM,CAAC;IACtB,WAAW,IAAI,MAAM,CAAC;IACtB,eAAe,IAAI,MAAM,CAAC;IAC1B,aAAa,IAAI,MAAM,CAAC;IACxB,WAAW,IAAI,MAAM,CAAC;IACtB,aAAa,IAAI,MAAM,CAAC;IACxB,eAAe,IAAI,MAAM,CAAC;IAC1B,aAAa,IAAI,MAAM,CAAC;IACxB,UAAU,IAAI,OAAO,CAAC;IACtB,MAAM,IAAI,OAAO,CAAC;IAClB,QAAQ,IAAI,OAAO,CAAC;IACpB,aAAa,IAAI,OAAO,CAAC;IACzB,QAAQ,IAAI,MAAM,CAAC;CACpB;AAID;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,KAAK,CAIhC;AAED,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAMpD;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAMjD;AAED,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAI7C;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAI5C;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAchD"}
|
package/lib/errors.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
// Some code copued and modified from https://github.com/microsoft/vscode/blob/1.44.0/src/vs/base/common/errors.ts
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.getErrorMessage = exports.disposed = exports.readonly = exports.illegalState = exports.illegalArgument = exports.canceled = exports.isPromiseCanceledError = exports.transformErrorForSerialization = exports.onUnexpectedExternalError = exports.onUnexpectedError = exports.setUnexpectedErrorHandler = exports.errorHandler = exports.ErrorHandler = void 0;
|
|
9
|
+
// Avoid circular dependency on EventEmitter by implementing a subset of the interface.
|
|
10
|
+
class ErrorHandler {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.listeners = [];
|
|
13
|
+
this.unexpectedErrorHandler = function (e) {
|
|
14
|
+
setTimeout(() => {
|
|
15
|
+
if (e.stack) {
|
|
16
|
+
throw new Error(e.message + '\n\n' + e.stack);
|
|
17
|
+
}
|
|
18
|
+
throw e;
|
|
19
|
+
}, 0);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
addListener(listener) {
|
|
23
|
+
this.listeners.push(listener);
|
|
24
|
+
return () => {
|
|
25
|
+
this._removeListener(listener);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
emit(e) {
|
|
29
|
+
this.listeners.forEach((listener) => {
|
|
30
|
+
listener(e);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
_removeListener(listener) {
|
|
34
|
+
this.listeners.splice(this.listeners.indexOf(listener), 1);
|
|
35
|
+
}
|
|
36
|
+
setUnexpectedErrorHandler(newUnexpectedErrorHandler) {
|
|
37
|
+
this.unexpectedErrorHandler = newUnexpectedErrorHandler;
|
|
38
|
+
}
|
|
39
|
+
getUnexpectedErrorHandler() {
|
|
40
|
+
return this.unexpectedErrorHandler;
|
|
41
|
+
}
|
|
42
|
+
onUnexpectedError(e) {
|
|
43
|
+
this.unexpectedErrorHandler(e);
|
|
44
|
+
this.emit(e);
|
|
45
|
+
}
|
|
46
|
+
// For external errors, we don't want the listeners to be called
|
|
47
|
+
onUnexpectedExternalError(e) {
|
|
48
|
+
this.unexpectedErrorHandler(e);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.ErrorHandler = ErrorHandler;
|
|
52
|
+
exports.errorHandler = new ErrorHandler();
|
|
53
|
+
function setUnexpectedErrorHandler(newUnexpectedErrorHandler) {
|
|
54
|
+
exports.errorHandler.setUnexpectedErrorHandler(newUnexpectedErrorHandler);
|
|
55
|
+
}
|
|
56
|
+
exports.setUnexpectedErrorHandler = setUnexpectedErrorHandler;
|
|
57
|
+
function onUnexpectedError(e) {
|
|
58
|
+
// ignore errors from cancelled promises
|
|
59
|
+
if (!isPromiseCanceledError(e)) {
|
|
60
|
+
exports.errorHandler.onUnexpectedError(e);
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
exports.onUnexpectedError = onUnexpectedError;
|
|
65
|
+
function onUnexpectedExternalError(e) {
|
|
66
|
+
// ignore errors from cancelled promises
|
|
67
|
+
if (!isPromiseCanceledError(e)) {
|
|
68
|
+
exports.errorHandler.onUnexpectedExternalError(e);
|
|
69
|
+
}
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
exports.onUnexpectedExternalError = onUnexpectedExternalError;
|
|
73
|
+
function transformErrorForSerialization(error) {
|
|
74
|
+
if (error instanceof Error) {
|
|
75
|
+
let { name, message } = error;
|
|
76
|
+
const stack = error.stacktrace || error.stack;
|
|
77
|
+
return {
|
|
78
|
+
$isError: true,
|
|
79
|
+
name,
|
|
80
|
+
message,
|
|
81
|
+
stack
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// return as is
|
|
85
|
+
return error;
|
|
86
|
+
}
|
|
87
|
+
exports.transformErrorForSerialization = transformErrorForSerialization;
|
|
88
|
+
const canceledName = 'Canceled';
|
|
89
|
+
/**
|
|
90
|
+
* Checks if the given error is a promise in canceled state
|
|
91
|
+
*/
|
|
92
|
+
function isPromiseCanceledError(error) {
|
|
93
|
+
return error instanceof Error && error.name === canceledName && error.message === canceledName;
|
|
94
|
+
}
|
|
95
|
+
exports.isPromiseCanceledError = isPromiseCanceledError;
|
|
96
|
+
/**
|
|
97
|
+
* Returns an error that signals cancellation.
|
|
98
|
+
*/
|
|
99
|
+
function canceled() {
|
|
100
|
+
const error = new Error(canceledName);
|
|
101
|
+
error.name = error.message;
|
|
102
|
+
return error;
|
|
103
|
+
}
|
|
104
|
+
exports.canceled = canceled;
|
|
105
|
+
function illegalArgument(name) {
|
|
106
|
+
if (name) {
|
|
107
|
+
return new Error(`Illegal argument: ${name}`);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
return new Error('Illegal argument');
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.illegalArgument = illegalArgument;
|
|
114
|
+
function illegalState(name) {
|
|
115
|
+
if (name) {
|
|
116
|
+
return new Error(`Illegal state: ${name}`);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return new Error('Illegal state');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.illegalState = illegalState;
|
|
123
|
+
function readonly(name) {
|
|
124
|
+
return name
|
|
125
|
+
? new Error(`readonly property '${name} cannot be changed'`)
|
|
126
|
+
: new Error('readonly property cannot be changed');
|
|
127
|
+
}
|
|
128
|
+
exports.readonly = readonly;
|
|
129
|
+
function disposed(what) {
|
|
130
|
+
const result = new Error(`${what} has been disposed`);
|
|
131
|
+
result.name = 'DISPOSED';
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
exports.disposed = disposed;
|
|
135
|
+
function getErrorMessage(err) {
|
|
136
|
+
if (!err) {
|
|
137
|
+
return 'Error';
|
|
138
|
+
}
|
|
139
|
+
if (err.message) {
|
|
140
|
+
return err.message;
|
|
141
|
+
}
|
|
142
|
+
if (err.stack) {
|
|
143
|
+
return err.stack.split('\n')[0];
|
|
144
|
+
}
|
|
145
|
+
return String(err);
|
|
146
|
+
}
|
|
147
|
+
exports.getErrorMessage = getErrorMessage;
|
|
148
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG,kHAAkH;;;AAUlH,uFAAuF;AACvF,MAAa,YAAY;IAIvB;QAEE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAM;YAC5C,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,CAAC,KAAK,EAAE;oBACX,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC/C;gBAED,MAAM,CAAC,CAAC;YACV,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,CAAC,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,QAA+B;QAChD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;IAEO,IAAI,CAAC,CAAM;QACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,QAA+B;QACrD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEM,yBAAyB,CAAC,yBAA2C;QAC1E,IAAI,CAAC,sBAAsB,GAAG,yBAAyB,CAAC;IAC1D,CAAC;IAEM,yBAAyB;QAC9B,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAEM,iBAAiB,CAAC,CAAM;QAC7B,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACf,CAAC;IAED,gEAAgE;IACzD,yBAAyB,CAAC,CAAM;QACrC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;CACF;AAtDD,oCAsDC;AAEY,QAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAE/C,SAAgB,yBAAyB,CAAC,yBAA2C;IACnF,oBAAY,CAAC,yBAAyB,CAAC,yBAAyB,CAAC,CAAC;AACpE,CAAC;AAFD,8DAEC;AAED,SAAgB,iBAAiB,CAAC,CAAM;IACtC,wCAAwC;IACxC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;QAC9B,oBAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAND,8CAMC;AAED,SAAgB,yBAAyB,CAAC,CAAM;IAC9C,wCAAwC;IACxC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;QAC9B,oBAAY,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;KAC3C;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAND,8DAMC;AAWD,SAAgB,8BAA8B,CAAC,KAAU;IACvD,IAAI,KAAK,YAAY,KAAK,EAAE;QAC1B,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAC9B,MAAM,KAAK,GAAiB,KAAM,CAAC,UAAU,IAAU,KAAM,CAAC,KAAK,CAAC;QACpE,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,IAAI;YACJ,OAAO;YACP,KAAK;SACN,CAAC;KACH;IAED,eAAe;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAdD,wEAcC;AAoBD,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC;;GAEG;AACH,SAAgB,sBAAsB,CAAC,KAAU;IAC/C,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,YAAY,CAAC;AACjG,CAAC;AAFD,wDAEC;AAED;;GAEG;AACH,SAAgB,QAAQ;IACtB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC;AAJD,4BAIC;AAED,SAAgB,eAAe,CAAC,IAAa;IAC3C,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;KAC/C;SAAM;QACL,OAAO,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACtC;AACH,CAAC;AAND,0CAMC;AAED,SAAgB,YAAY,CAAC,IAAa;IACxC,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;KAC5C;SAAM;QACL,OAAO,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;KACnC;AACH,CAAC;AAND,oCAMC;AAED,SAAgB,QAAQ,CAAC,IAAa;IACpC,OAAO,IAAI;QACT,CAAC,CAAC,IAAI,KAAK,CAAC,sBAAsB,IAAI,qBAAqB,CAAC;QAC5D,CAAC,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACvD,CAAC;AAJD,4BAIC;AAED,SAAgB,QAAQ,CAAC,IAAY;IACnC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC;IACtD,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAJD,4BAIC;AAED,SAAgB,eAAe,CAAC,GAAQ;IACtC,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,GAAG,CAAC,OAAO,EAAE;QACf,OAAO,GAAG,CAAC,OAAO,CAAC;KACpB;IAED,IAAI,GAAG,CAAC,KAAK,EAAE;QACb,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACjC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAdD,0CAcC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic-event.d.ts","sourceRoot":"","sources":["../../src/event-bus/basic-event.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU,CAAC,CAAC;IAEd,OAAO,EAAE,CAAC;gBAAV,OAAO,EAAE,CAAC;CAEpB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BasicEvent = void 0;
|
|
4
|
+
class BasicEvent {
|
|
5
|
+
constructor(payload) {
|
|
6
|
+
this.payload = payload;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.BasicEvent = BasicEvent;
|
|
10
|
+
//# sourceMappingURL=basic-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic-event.js","sourceRoot":"","sources":["../../src/event-bus/basic-event.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACrB,YACS,OAAU;QAAV,YAAO,GAAP,OAAO,CAAG;IAChB,CAAC;CACL;AAJD,gCAIC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { IDisposable } from '../disposable';
|
|
2
|
+
import { ConstructorOf } from '../declare';
|
|
3
|
+
import { IAsyncResult } from '../event';
|
|
4
|
+
export interface IEventFireOpts {
|
|
5
|
+
nextTick?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface IAsyncEventFireOpts {
|
|
8
|
+
/**
|
|
9
|
+
* 异步事件发送时,listener的最大执行时长(listener并发执行)
|
|
10
|
+
*/
|
|
11
|
+
timeout?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface IEventListener<T> {
|
|
14
|
+
(target: T): void;
|
|
15
|
+
}
|
|
16
|
+
export declare const IEventBus: unique symbol;
|
|
17
|
+
export interface IEventBus {
|
|
18
|
+
/**
|
|
19
|
+
* 发出一个事件
|
|
20
|
+
* Sample:
|
|
21
|
+
class ResizeEvent extends BasicEvent<number> {}
|
|
22
|
+
|
|
23
|
+
class LayoutStore {
|
|
24
|
+
@Autowired(IEventBus)
|
|
25
|
+
private eventBus: IEventBus;
|
|
26
|
+
|
|
27
|
+
public fireResizeEvent() {
|
|
28
|
+
const size = this.getSize();
|
|
29
|
+
const resizeEvent = new ResizeEvent(size);
|
|
30
|
+
this.eventBus.fire(resizeEvent);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// 不推荐,但是兼容 vscode 的 Event 设计
|
|
34
|
+
public onDidResize(lisener: (t: ResizeEvent) => void) {
|
|
35
|
+
return this.eventBus.on(ResizeEvent, lisener)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
*/
|
|
39
|
+
fire(target: any, opts?: IEventFireOpts): void;
|
|
40
|
+
/**
|
|
41
|
+
* 发送一个异步事件,等待并收集结果
|
|
42
|
+
* @param e
|
|
43
|
+
* @param opts
|
|
44
|
+
*/
|
|
45
|
+
fireAndAwait<R>(e: any, opts?: IAsyncEventFireOpts): Promise<IAsyncResult<R>[]>;
|
|
46
|
+
/**
|
|
47
|
+
* 监听 EventBus 中的事件
|
|
48
|
+
* Sample:
|
|
49
|
+
@Injectable()
|
|
50
|
+
class FileTreeStore extends WitEventBus {
|
|
51
|
+
@Autowired(IEventBus)
|
|
52
|
+
private eventBus: IEventBus;
|
|
53
|
+
|
|
54
|
+
@OnEvent(LayoutResize)
|
|
55
|
+
public onLayoutResize(event: LayoutResize) {
|
|
56
|
+
console.log(event.payload); // size number
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
*/
|
|
60
|
+
on<T>(constructor: ConstructorOf<T>, listener: IEventListener<T>): IDisposable;
|
|
61
|
+
/**
|
|
62
|
+
* 监听 EventBus 中的事件,只会触发一次
|
|
63
|
+
*/
|
|
64
|
+
once<T>(constructor: ConstructorOf<T>, listener: IEventListener<T>): IDisposable;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=event-bus-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus-types.d.ts","sourceRoot":"","sources":["../../src/event-bus/event-bus-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,SAAS,eAAsB,CAAC;AAC7C,MAAM,WAAW,SAAS;IACxB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAE/C;;;;OAIG;IACH,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEhF;;;;;;;;;;;;;MAaE;IACF,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAC/E;;MAEE;IACF,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;CAClF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus-types.js","sourceRoot":"","sources":["../../src/event-bus/event-bus-types.ts"],"names":[],"mappings":";;;AAkBa,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IEventBus, IEventListener, IEventFireOpts, IAsyncEventFireOpts } from './event-bus-types';
|
|
2
|
+
import { IAsyncResult } from '../event';
|
|
3
|
+
import { BasicEvent } from './basic-event';
|
|
4
|
+
import { ConstructorOf } from '../declare';
|
|
5
|
+
export declare class EventBusImpl implements IEventBus {
|
|
6
|
+
private emitterMap;
|
|
7
|
+
fire<T extends BasicEvent<any>>(e: T, opts?: IEventFireOpts): void;
|
|
8
|
+
fireAndAwait<T extends BasicEvent<any>, R>(e: T, opts?: IAsyncEventFireOpts): Promise<IAsyncResult<R>[]>;
|
|
9
|
+
on<T>(Constructor: ConstructorOf<T>, listener: IEventListener<T>): import("..").IDisposable;
|
|
10
|
+
once<T>(Constructor: ConstructorOf<T>, listener: IEventListener<T>): import("..").IDisposable;
|
|
11
|
+
private getOrCreateEmitter;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=event-bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/event-bus/event-bus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAW,YAAY,EAAS,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,qBACa,YAAa,YAAW,SAAS;IAE5C,OAAO,CAAC,UAAU,CAAgC;IAElD,IAAI,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAE,cAAmB;IAazD,YAAY,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAE,mBAAuC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAcjI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAKhE,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAKlE,OAAO,CAAC,kBAAkB;CAU3B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventBusImpl = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@opensumi/di");
|
|
6
|
+
const event_1 = require("../event");
|
|
7
|
+
const basic_event_1 = require("./basic-event");
|
|
8
|
+
let EventBusImpl = class EventBusImpl {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.emitterMap = new Map();
|
|
11
|
+
}
|
|
12
|
+
fire(e, opts = {}) {
|
|
13
|
+
const Constructor = e && e.constructor;
|
|
14
|
+
if (typeof Constructor === 'function' &&
|
|
15
|
+
basic_event_1.BasicEvent.isPrototypeOf(Constructor)) {
|
|
16
|
+
const emitter = this.emitterMap.get(Constructor);
|
|
17
|
+
if (emitter) {
|
|
18
|
+
emitter.fire(e);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async fireAndAwait(e, opts = { timeout: 2000 }) {
|
|
23
|
+
const Constructor = e && e.constructor;
|
|
24
|
+
if (typeof Constructor === 'function' &&
|
|
25
|
+
basic_event_1.BasicEvent.isPrototypeOf(Constructor)) {
|
|
26
|
+
const emitter = this.emitterMap.get(Constructor);
|
|
27
|
+
if (emitter) {
|
|
28
|
+
return emitter.fireAndAwait(e, opts.timeout);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
on(Constructor, listener) {
|
|
34
|
+
const emitter = this.getOrCreateEmitter(Constructor);
|
|
35
|
+
return emitter.event(listener);
|
|
36
|
+
}
|
|
37
|
+
once(Constructor, listener) {
|
|
38
|
+
const emitter = this.getOrCreateEmitter(Constructor);
|
|
39
|
+
return event_1.Event.once(emitter.event)(listener);
|
|
40
|
+
}
|
|
41
|
+
getOrCreateEmitter(key) {
|
|
42
|
+
const current = this.emitterMap.get(key);
|
|
43
|
+
if (current) {
|
|
44
|
+
return current;
|
|
45
|
+
}
|
|
46
|
+
const emitter = new event_1.Emitter();
|
|
47
|
+
this.emitterMap.set(key, emitter);
|
|
48
|
+
return emitter;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
EventBusImpl = (0, tslib_1.__decorate)([
|
|
52
|
+
(0, di_1.Injectable)()
|
|
53
|
+
], EventBusImpl);
|
|
54
|
+
exports.EventBusImpl = EventBusImpl;
|
|
55
|
+
//# sourceMappingURL=event-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/event-bus/event-bus.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAE1C,oCAAwD;AACxD,+CAA2C;AAI3C,IAAa,YAAY,GAAzB,MAAa,YAAY;IAAzB;QAEU,eAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;IAiDpD,CAAC;IA/CC,IAAI,CAA4B,CAAI,EAAE,OAAuB,EAAE;QAC7D,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;QACvC,IACE,OAAO,WAAW,KAAK,UAAU;YACjC,wBAAU,CAAC,aAAa,CAAC,WAAW,CAAC,EACrC;YACA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;SACF;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAA+B,CAAI,EAAE,OAA4B,EAAE,OAAO,EAAE,IAAI,EAAE;QAClG,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;QACvC,IACE,OAAO,WAAW,KAAK,UAAU;YACjC,wBAAU,CAAC,aAAa,CAAC,WAAW,CAAC,EACrC;YACA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE;gBACX,OAAO,OAAO,CAAC,YAAY,CAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACjD;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,EAAE,CAAI,WAA6B,EAAE,QAA2B;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAI,WAA6B,EAAE,QAA2B;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO,aAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAEO,kBAAkB,CAAC,GAAQ;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC;SAChB;QAED,MAAM,OAAO,GAAG,IAAI,eAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAnDY,YAAY;IADxB,IAAA,eAAU,GAAE;GACA,YAAY,CAmDxB;AAnDY,oCAAY"}
|