@adminide-stack/core 0.0.2-0.0.16-6.0 → 0.0.2-alpha.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/LICENSE +674 -0
- package/README.md +2 -2
- package/lib/constants/billing-plan.d.ts +1 -0
- package/lib/constants/billing-plan.js +5 -0
- package/lib/constants/billing-plan.js.map +1 -0
- package/lib/constants/configuration.d.ts +6 -0
- package/lib/constants/configuration.js +10 -0
- package/lib/constants/configuration.js.map +1 -0
- package/lib/constants/constants.d.ts +0 -41
- package/lib/constants/constants.js +6 -0
- package/lib/constants/constants.js.map +1 -0
- package/lib/constants/default-workspace-config.js +7 -0
- package/lib/constants/default-workspace-config.js.map +1 -0
- package/lib/constants/index.d.ts +5 -0
- package/lib/constants/index.js +24 -0
- package/lib/constants/index.js.map +1 -0
- package/lib/constants/routes.d.ts +4 -0
- package/lib/constants/routes.js +10 -0
- package/lib/constants/routes.js.map +1 -0
- package/lib/constants/types.d.ts +19 -0
- package/lib/constants/types.js +23 -0
- package/lib/constants/types.js.map +1 -0
- package/lib/constants/urls.d.ts +3 -0
- package/lib/constants/urls.js +7 -0
- package/lib/constants/urls.js.map +1 -0
- package/lib/core/configurations/configuration.d.ts +64 -0
- package/lib/core/configurations/configuration.js +236 -0
- package/lib/core/configurations/configuration.js.map +1 -0
- package/lib/core/configurations/events/abstract-configuration-change-event.d.ts +6 -0
- package/lib/core/configurations/events/abstract-configuration-change-event.js +27 -0
- package/lib/core/configurations/events/abstract-configuration-change-event.js.map +1 -0
- package/lib/core/configurations/events/all-keys-configuration-change-event.d.ts +17 -0
- package/lib/core/configurations/events/all-keys-configuration-change-event.js +33 -0
- package/lib/core/configurations/events/all-keys-configuration-change-event.js.map +1 -0
- package/lib/core/configurations/events/configuration-change-event.d.ts +24 -0
- package/lib/core/configurations/events/configuration-change-event.js +84 -0
- package/lib/core/configurations/events/configuration-change-event.js.map +1 -0
- package/lib/core/configurations/events/index.d.ts +4 -0
- package/lib/core/configurations/events/index.js +21 -0
- package/lib/core/configurations/events/index.js.map +1 -0
- package/lib/core/configurations/events/organization-configuration-change-event.d.ts +15 -0
- package/lib/core/configurations/events/organization-configuration-change-event.js +39 -0
- package/lib/core/configurations/events/organization-configuration-change-event.js.map +1 -0
- package/lib/core/configurations/helpers/configuration.d.ts +26 -0
- package/lib/core/configurations/helpers/configuration.js +203 -0
- package/lib/core/configurations/helpers/configuration.js.map +1 -0
- package/lib/core/configurations/helpers/index.d.ts +1 -0
- package/lib/core/configurations/helpers/index.js +18 -0
- package/lib/core/configurations/helpers/index.js.map +1 -0
- package/lib/core/configurations/index.d.ts +4 -0
- package/lib/core/configurations/index.js +21 -0
- package/lib/core/configurations/index.js.map +1 -0
- package/lib/core/configurations/models/configuration-model.d.ts +24 -0
- package/lib/core/configurations/models/configuration-model.js +143 -0
- package/lib/core/configurations/models/configuration-model.js.map +1 -0
- package/lib/core/configurations/models/index.d.ts +1 -0
- package/lib/core/configurations/models/index.js +18 -0
- package/lib/core/configurations/models/index.js.map +1 -0
- package/lib/core/disposable.d.ts +28 -0
- package/lib/core/disposable.js +82 -0
- package/lib/core/disposable.js.map +1 -0
- package/lib/core/event.d.ts +76 -0
- package/lib/core/event.js +249 -0
- package/lib/core/event.js.map +1 -0
- package/lib/core/event.test.d.ts +1 -0
- package/lib/core/event.test.js +15 -0
- package/lib/core/event.test.js.map +1 -0
- package/lib/core/index.d.ts +6 -0
- package/lib/core/index.js +23 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/organization/configuration.d.ts +31 -0
- package/lib/core/organization/configuration.js +87 -0
- package/lib/core/organization/configuration.js.map +1 -0
- package/lib/core/organization/helpers/index.d.ts +1 -0
- package/lib/core/organization/helpers/index.js +18 -0
- package/lib/core/organization/helpers/index.js.map +1 -0
- package/lib/core/organization/helpers/organization-helpers.d.ts +6 -0
- package/lib/core/organization/helpers/organization-helpers.js +34 -0
- package/lib/core/organization/helpers/organization-helpers.js.map +1 -0
- package/lib/core/organization/index.d.ts +3 -0
- package/lib/core/organization/index.js +20 -0
- package/lib/core/organization/index.js.map +1 -0
- package/lib/core/organization/organization.d.ts +31 -0
- package/lib/core/organization/organization.js +135 -0
- package/lib/core/organization/organization.js.map +1 -0
- package/lib/core/path.d.ts +58 -0
- package/lib/core/path.js +189 -0
- package/lib/core/path.js.map +1 -0
- package/lib/core/path.test.d.ts +1 -0
- package/lib/core/path.test.js +205 -0
- package/lib/core/path.test.js.map +1 -0
- package/lib/core/types.d.ts +1 -0
- package/lib/core/types.js +3 -0
- package/lib/core/types.js.map +1 -0
- package/lib/core/uri.d.ts +68 -0
- package/lib/core/uri.js +158 -0
- package/lib/core/uri.js.map +1 -0
- package/lib/core/uri.test.d.ts +1 -0
- package/lib/core/uri.test.js +136 -0
- package/lib/core/uri.test.js.map +1 -0
- package/lib/enums/connection-status.d.ts +6 -0
- package/lib/enums/connection-status.js +11 -0
- package/lib/enums/connection-status.js.map +1 -0
- package/lib/enums/index.d.ts +7 -0
- package/lib/enums/index.js +24 -0
- package/lib/enums/index.js.map +1 -0
- package/lib/enums/integration-configuration-status.d.ts +5 -0
- package/lib/enums/integration-configuration-status.js +10 -0
- package/lib/enums/integration-configuration-status.js.map +1 -0
- package/lib/enums/integrations-configuration-steps.d.ts +8 -0
- package/lib/enums/integrations-configuration-steps.js +13 -0
- package/lib/enums/integrations-configuration-steps.js.map +1 -0
- package/lib/enums/integrations-connection-names.d.ts +11 -0
- package/lib/enums/integrations-connection-names.js +17 -0
- package/lib/enums/integrations-connection-names.js.map +1 -0
- package/lib/enums/integrations.d.ts +9 -0
- package/lib/enums/integrations.js +14 -0
- package/lib/enums/integrations.js.map +1 -0
- package/lib/enums/permissions.d.ts +7 -0
- package/lib/enums/permissions.js +12 -0
- package/lib/enums/permissions.js.map +1 -0
- package/lib/enums/team-member-status.d.ts +4 -0
- package/lib/enums/team-member-status.js +9 -0
- package/lib/enums/team-member-status.js.map +1 -0
- package/lib/errors/auth-error-messages.d.ts +25 -0
- package/lib/errors/auth-error-messages.js +31 -0
- package/lib/errors/auth-error-messages.js.map +1 -0
- package/lib/errors/auth-error.d.ts +8 -0
- package/lib/errors/auth-error.js +13 -0
- package/lib/errors/auth-error.js.map +1 -0
- package/lib/errors/index.d.ts +2 -0
- package/lib/errors/index.js +19 -0
- package/lib/errors/index.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +23 -256
- package/lib/index.js.map +1 -1
- package/lib/interfaces/apollo-context.d.ts +48 -0
- package/lib/interfaces/apollo-context.js +3 -0
- package/lib/interfaces/apollo-context.js.map +1 -0
- package/lib/interfaces/common.d.ts +2 -2
- package/lib/interfaces/common.js +3 -0
- package/lib/interfaces/common.js.map +1 -0
- package/lib/interfaces/configuration/configuration-file-service.d.ts +5 -0
- package/lib/interfaces/configuration/configuration-file-service.js +3 -0
- package/lib/interfaces/configuration/configuration-file-service.js.map +1 -0
- package/lib/interfaces/configuration/configuration-server-service.d.ts +10 -0
- package/lib/interfaces/configuration/configuration-server-service.js +3 -0
- package/lib/interfaces/configuration/configuration-server-service.js.map +1 -0
- package/lib/interfaces/configuration/configuration.d.ts +39 -0
- package/lib/interfaces/configuration/configuration.js +53 -0
- package/lib/interfaces/configuration/configuration.js.map +1 -0
- package/lib/interfaces/configuration/configuraton-service.d.ts +60 -0
- package/lib/interfaces/configuration/configuraton-service.js +3 -0
- package/lib/interfaces/configuration/configuraton-service.js.map +1 -0
- package/lib/interfaces/configuration/event.d.ts +12 -0
- package/lib/interfaces/configuration/event.js +3 -0
- package/lib/interfaces/configuration/event.js.map +1 -0
- package/lib/interfaces/configuration/index.d.ts +5 -0
- package/lib/interfaces/configuration/index.js +22 -0
- package/lib/interfaces/configuration/index.js.map +1 -0
- package/lib/interfaces/contex-key-service.d.ts +2 -0
- package/lib/interfaces/contex-key-service.js +3 -0
- package/lib/interfaces/contex-key-service.js.map +1 -0
- package/lib/interfaces/database-migration.d.ts +8 -0
- package/lib/interfaces/database-migration.js +3 -0
- package/lib/interfaces/database-migration.js.map +1 -0
- package/lib/interfaces/enum.d.ts +26 -0
- package/lib/interfaces/enum.js +71 -0
- package/lib/interfaces/enum.js.map +1 -0
- package/lib/interfaces/environment/argv.d.ts +6 -0
- package/lib/interfaces/environment/argv.js +3 -0
- package/lib/interfaces/environment/argv.js.map +1 -0
- package/lib/interfaces/environment/environment-service.d.ts +7 -0
- package/lib/interfaces/environment/environment-service.js +3 -0
- package/lib/interfaces/environment/environment-service.js.map +1 -0
- package/lib/interfaces/environment/index.d.ts +2 -0
- package/lib/interfaces/environment/index.js +19 -0
- package/lib/interfaces/environment/index.js.map +1 -0
- package/lib/interfaces/generated/generated-models.d.ts +9198 -0
- package/lib/interfaces/generated/generated-models.js +3183 -0
- package/lib/interfaces/generated/generated-models.js.map +1 -0
- package/lib/interfaces/generated/index.d.ts +1 -0
- package/lib/interfaces/generated/index.js +18 -0
- package/lib/interfaces/generated/index.js.map +1 -0
- package/lib/interfaces/index.d.ts +16 -1
- package/lib/interfaces/index.js +34 -0
- package/lib/interfaces/index.js.map +1 -0
- package/lib/interfaces/lifecycle-service.d.ts +1 -0
- package/lib/interfaces/lifecycle-service.js +8 -0
- package/lib/interfaces/lifecycle-service.js.map +1 -0
- package/lib/interfaces/log/index.d.ts +1 -0
- package/lib/interfaces/log/index.js +18 -0
- package/lib/interfaces/log/index.js.map +1 -0
- package/lib/interfaces/log/log-service.d.ts +16 -0
- package/lib/interfaces/log/log-service.js +3 -0
- package/lib/interfaces/log/log-service.js.map +1 -0
- package/lib/interfaces/nav-items.d.ts +5 -0
- package/lib/interfaces/nav-items.js +3 -0
- package/lib/interfaces/nav-items.js.map +1 -0
- package/lib/interfaces/organization/index.d.ts +3 -0
- package/lib/interfaces/organization/index.js +20 -0
- package/lib/interfaces/organization/index.js.map +1 -0
- package/lib/interfaces/organization/organization-context-service.d.ts +65 -0
- package/lib/interfaces/organization/organization-context-service.js +3 -0
- package/lib/interfaces/organization/organization-context-service.js.map +1 -0
- package/lib/interfaces/organization/organization-context.d.ts +39 -0
- package/lib/interfaces/organization/organization-context.js +31 -0
- package/lib/interfaces/organization/organization-context.js.map +1 -0
- package/lib/interfaces/organization/organizations-context.d.ts +35 -0
- package/lib/interfaces/organization/organizations-context.js +3 -0
- package/lib/interfaces/organization/organizations-context.js.map +1 -0
- package/lib/interfaces/page-store.d.ts +16 -0
- package/lib/interfaces/page-store.js +3 -0
- package/lib/interfaces/page-store.js.map +1 -0
- package/lib/interfaces/permissions.d.ts +2 -0
- package/lib/interfaces/permissions.js +3 -0
- package/lib/interfaces/permissions.js.map +1 -0
- package/lib/interfaces/preferences-service.d.ts +40 -0
- package/lib/interfaces/preferences-service.js +3 -0
- package/lib/interfaces/preferences-service.js.map +1 -0
- package/lib/interfaces/service.d.ts +18 -0
- package/lib/interfaces/service.js +3 -0
- package/lib/interfaces/service.js.map +1 -0
- package/lib/interfaces/workbench-exports.d.ts +5 -0
- package/lib/interfaces/workbench-exports.js +6 -0
- package/lib/interfaces/workbench-exports.js.map +1 -0
- package/lib/modules/account-api/enums/index.d.ts +51 -0
- package/lib/modules/account-api/enums/index.js +56 -0
- package/lib/modules/account-api/enums/index.js.map +1 -0
- package/lib/modules/account-api/index.d.ts +1 -0
- package/lib/modules/account-api/index.js +18 -0
- package/lib/modules/account-api/index.js.map +1 -0
- package/lib/modules/billing-api/enums/index.d.ts +22 -0
- package/lib/modules/billing-api/enums/index.js +28 -0
- package/lib/modules/billing-api/enums/index.js.map +1 -0
- package/lib/modules/billing-api/index.d.ts +1 -0
- package/lib/modules/billing-api/index.js +18 -0
- package/lib/modules/billing-api/index.js.map +1 -0
- package/lib/modules/index.d.ts +2 -0
- package/lib/modules/index.js +19 -0
- package/lib/modules/index.js.map +1 -0
- package/lib/services/abstract-configuration.d.ts +54 -0
- package/lib/services/abstract-configuration.js +80 -0
- package/lib/services/abstract-configuration.js.map +1 -0
- package/lib/services/abstract-organization-context-service.d.ts +40 -0
- package/lib/services/abstract-organization-context-service.js +115 -0
- package/lib/services/abstract-organization-context-service.js.map +1 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/index.js +19 -0
- package/lib/services/index.js.map +1 -0
- package/lib/utils/configuration-utils.d.ts +4 -0
- package/lib/utils/configuration-utils.js +15 -0
- package/lib/utils/configuration-utils.js.map +1 -0
- package/lib/utils/date-utils.d.ts +1 -0
- package/lib/utils/date-utils.js +9 -0
- package/lib/utils/date-utils.js.map +1 -0
- package/lib/utils/flatten-utils.d.ts +1 -0
- package/lib/utils/flatten-utils.js +20 -0
- package/lib/utils/flatten-utils.js.map +1 -0
- package/lib/utils/generate-uri.d.ts +35 -0
- package/lib/utils/generate-uri.js +50 -0
- package/lib/utils/generate-uri.js.map +1 -0
- package/lib/utils/generated-settings-id.d.ts +2 -0
- package/lib/utils/generated-settings-id.js +13 -0
- package/lib/utils/generated-settings-id.js.map +1 -0
- package/lib/utils/index.d.ts +9 -0
- package/lib/utils/index.js +26 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/omit-deep.d.ts +1 -0
- package/lib/utils/omit-deep.js +16 -0
- package/lib/utils/omit-deep.js.map +1 -0
- package/lib/utils/roles-utils.d.ts +2 -0
- package/lib/utils/roles-utils.js +11 -0
- package/lib/utils/roles-utils.js.map +1 -0
- package/lib/utils/uri.d.ts +3 -0
- package/lib/utils/uri.js +21 -0
- package/lib/utils/uri.js.map +1 -0
- package/lib/utils/utils.d.ts +3 -0
- package/lib/utils/utils.js +37 -0
- package/lib/utils/utils.js.map +1 -0
- package/lib/utils/validations.d.ts +1 -0
- package/lib/utils/validations.js +9 -0
- package/lib/utils/validations.js.map +1 -0
- package/package.json +34 -48
- package/lib/interfaces/workspace.d.ts +0 -159
@@ -0,0 +1,143 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ConfigurationModel = void 0;
|
4
|
+
const objects = require("@vscode-alt/monaco-editor/esm/vs/base/common/objects");
|
5
|
+
const arrays = require("@vscode-alt/monaco-editor/esm/vs/base/common/arrays");
|
6
|
+
const types = require("@vscode-alt/monaco-editor/esm/vs/base/common/types");
|
7
|
+
const configuration_1 = require("../helpers/configuration");
|
8
|
+
class ConfigurationModel {
|
9
|
+
constructor(_contents = {}, _keys = [], _overrides = []) {
|
10
|
+
this._contents = _contents;
|
11
|
+
this._keys = _keys;
|
12
|
+
this._overrides = _overrides;
|
13
|
+
this.isFrozen = false;
|
14
|
+
}
|
15
|
+
get contents() {
|
16
|
+
return this.checkAndFreeze(this._contents);
|
17
|
+
}
|
18
|
+
get overrides() {
|
19
|
+
return this.checkAndFreeze(this._overrides);
|
20
|
+
}
|
21
|
+
get keys() {
|
22
|
+
return this.checkAndFreeze(this._keys);
|
23
|
+
}
|
24
|
+
isEmpty() {
|
25
|
+
return this._keys.length === 0 && Object.keys(this._contents).length === 0 && this._overrides.length === 0;
|
26
|
+
}
|
27
|
+
getValue(section) {
|
28
|
+
return section ? (0, configuration_1.getConfigurationValue)(this.contents, section) : this.contents;
|
29
|
+
}
|
30
|
+
override(identifier) {
|
31
|
+
const overrideContents = this.getContentsForOverrideIdentifer(identifier);
|
32
|
+
if (!overrideContents || typeof overrideContents !== 'object' || !Object.keys(overrideContents).length) {
|
33
|
+
// If there are no valid overrides, return self
|
34
|
+
return this;
|
35
|
+
}
|
36
|
+
let contents = {};
|
37
|
+
for (const key of arrays.distinct([...Object.keys(this.contents), ...Object.keys(overrideContents)])) {
|
38
|
+
let contentsForKey = this.contents[key];
|
39
|
+
let overrideContentsForKey = overrideContents[key];
|
40
|
+
// If there are override contents for the key, clone and merge otherwise use base contents
|
41
|
+
if (overrideContentsForKey) {
|
42
|
+
// Clone and merge only if base contents and override contents are of type object otherwise just override
|
43
|
+
if (typeof contentsForKey === 'object' && typeof overrideContentsForKey === 'object') {
|
44
|
+
contentsForKey = objects.deepClone(contentsForKey);
|
45
|
+
this.mergeContents(contentsForKey, overrideContentsForKey);
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
contentsForKey = overrideContentsForKey;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
contents[key] = contentsForKey;
|
52
|
+
}
|
53
|
+
return new ConfigurationModel(contents);
|
54
|
+
}
|
55
|
+
merge(...others) {
|
56
|
+
const contents = objects.deepClone(this.contents);
|
57
|
+
const overrides = objects.deepClone(this.overrides);
|
58
|
+
const keys = [...this.keys];
|
59
|
+
for (const other of others) {
|
60
|
+
this.mergeContents(contents, other.contents);
|
61
|
+
for (const otherOverride of other.overrides) {
|
62
|
+
const [override] = overrides.filter(o => arrays.equals(o.identifiers, otherOverride.identifiers));
|
63
|
+
if (override) {
|
64
|
+
this.mergeContents(override.contents, otherOverride.contents);
|
65
|
+
}
|
66
|
+
else {
|
67
|
+
overrides.push(objects.deepClone(otherOverride));
|
68
|
+
}
|
69
|
+
}
|
70
|
+
for (const key of other.keys) {
|
71
|
+
if (keys.indexOf(key) === -1) {
|
72
|
+
keys.push(key);
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
return new ConfigurationModel(contents, keys, overrides);
|
77
|
+
}
|
78
|
+
freeze() {
|
79
|
+
this.isFrozen = true;
|
80
|
+
return this;
|
81
|
+
}
|
82
|
+
mergeContents(source, target) {
|
83
|
+
for (const key of Object.keys(target)) {
|
84
|
+
if (key in source) {
|
85
|
+
if (types.isObject(source[key]) && types.isObject(target[key])) {
|
86
|
+
this.mergeContents(source[key], target[key]);
|
87
|
+
continue;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
source[key] = objects.deepClone(target[key]);
|
91
|
+
}
|
92
|
+
}
|
93
|
+
checkAndFreeze(data) {
|
94
|
+
if (this.isFrozen && !Object.isFrozen(data)) {
|
95
|
+
return objects.deepFreeze(data);
|
96
|
+
}
|
97
|
+
return data;
|
98
|
+
}
|
99
|
+
getContentsForOverrideIdentifer(identifier) {
|
100
|
+
for (const override of this.overrides) {
|
101
|
+
if (override.identifiers.indexOf(identifier) !== -1) {
|
102
|
+
return override.contents;
|
103
|
+
}
|
104
|
+
}
|
105
|
+
return null;
|
106
|
+
}
|
107
|
+
toJSON() {
|
108
|
+
return {
|
109
|
+
contents: this.contents,
|
110
|
+
overrides: this.overrides,
|
111
|
+
keys: this.keys
|
112
|
+
};
|
113
|
+
}
|
114
|
+
// Update methods
|
115
|
+
setValue(key, value) {
|
116
|
+
this.addKey(key);
|
117
|
+
(0, configuration_1.addToValueTree)(this.contents, key, value, e => { throw new Error(e); });
|
118
|
+
}
|
119
|
+
removeValue(key) {
|
120
|
+
if (this.removeKey(key)) {
|
121
|
+
(0, configuration_1.removeFromValueTree)(this.contents, key);
|
122
|
+
}
|
123
|
+
}
|
124
|
+
addKey(key) {
|
125
|
+
let index = this.keys.length;
|
126
|
+
for (let i = 0; i < index; i++) {
|
127
|
+
if (key.indexOf(this.keys[i]) === 0) {
|
128
|
+
index = i;
|
129
|
+
}
|
130
|
+
}
|
131
|
+
this.keys.splice(index, 1, key);
|
132
|
+
}
|
133
|
+
removeKey(key) {
|
134
|
+
let index = this.keys.indexOf(key);
|
135
|
+
if (index !== -1) {
|
136
|
+
this.keys.splice(index, 1);
|
137
|
+
return true;
|
138
|
+
}
|
139
|
+
return false;
|
140
|
+
}
|
141
|
+
}
|
142
|
+
exports.ConfigurationModel = ConfigurationModel;
|
143
|
+
//# sourceMappingURL=configuration-model.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"configuration-model.js","sourceRoot":"","sources":["../../../../src/core/configurations/models/configuration-model.ts"],"names":[],"mappings":";;;AACA,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAE5E,4DAAsG;AAGtG,MAAa,kBAAkB;IAI9B,YACS,YAAiB,EAAE,EACnB,QAAkB,EAAE,EACpB,aAA2B,EAAE;QAF7B,cAAS,GAAT,SAAS,CAAU;QACnB,UAAK,GAAL,KAAK,CAAe;QACpB,eAAU,GAAV,UAAU,CAAmB;QAL9B,aAAQ,GAAY,KAAK,CAAC;IAOlC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5G,CAAC;IAED,QAAQ,CAAI,OAA2B;QACtC,OAAO,OAAO,CAAC,CAAC,CAAC,IAAA,qCAAqB,EAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACrF,CAAC;IAED,QAAQ,CAAC,UAAkB;QAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC;QAE1E,IAAI,CAAC,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE;YACvG,+CAA+C;YAC/C,OAAO,IAAI,CAAC;SACZ;QAED,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;YAErG,IAAI,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,sBAAsB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAEnD,0FAA0F;YAC1F,IAAI,sBAAsB,EAAE;gBAC3B,yGAAyG;gBACzG,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,OAAO,sBAAsB,KAAK,QAAQ,EAAE;oBACrF,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBACnD,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;iBAC3D;qBAAM;oBACN,cAAc,GAAG,sBAAsB,CAAC;iBACxC;aACD;YAED,QAAQ,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;SAC/B;QAED,OAAO,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,MAA4B;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAE7C,KAAK,MAAM,aAAa,IAAI,KAAK,CAAC,SAAS,EAAE;gBAC5C,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClG,IAAI,QAAQ,EAAE;oBACb,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;iBAC9D;qBAAM;oBACN,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;iBACjD;aACD;YACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;gBAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACf;aACD;SACD;QACD,OAAO,IAAI,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM;QACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,aAAa,CAAC,MAAW,EAAE,MAAW;QAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACtC,IAAI,GAAG,IAAI,MAAM,EAAE;gBAClB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;oBAC/D,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7C,SAAS;iBACT;aACD;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7C;IACF,CAAC;IAEO,cAAc,CAAI,IAAO;QAChC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC5C,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,+BAA+B,CAAC,UAAkB;QACzD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,IAAI,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;gBACpD,OAAO,QAAQ,CAAC,QAAQ,CAAC;aACzB;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM;QACL,OAAO;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;SACf,CAAC;IACH,CAAC;IAED,iBAAiB;IAEV,QAAQ,CAAC,GAAW,EAAE,KAAU;QACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,IAAA,8BAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAEM,WAAW,CAAC,GAAW;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxB,IAAA,mCAAmB,EAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SACxC;IACF,CAAC;IAEO,MAAM,CAAC,GAAW;QACzB,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBACpC,KAAK,GAAG,CAAC,CAAC;aACV;SACD;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IAEO,SAAS,CAAC,GAAW;QAC5B,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AA/JD,gDA+JC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './configuration-model';
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./configuration-model"), exports);
|
18
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/configurations/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { Event, Emitter } from './event';
|
2
|
+
export interface Disposable {
|
3
|
+
/**
|
4
|
+
* Dispose this object.
|
5
|
+
*/
|
6
|
+
dispose(): void;
|
7
|
+
}
|
8
|
+
export declare namespace Disposable {
|
9
|
+
function is(arg: any): arg is Disposable;
|
10
|
+
function create(func: () => void): Disposable;
|
11
|
+
const NULL: Disposable;
|
12
|
+
}
|
13
|
+
export declare class DisposableCollection implements Disposable {
|
14
|
+
protected readonly disposables: Disposable[];
|
15
|
+
protected readonly onDisposeEmitter: Emitter<void>;
|
16
|
+
constructor(...toDispose: Disposable[]);
|
17
|
+
/**
|
18
|
+
* This event is fired only once
|
19
|
+
* on first dispose of not empty collection.
|
20
|
+
*/
|
21
|
+
get onDispose(): Event<void>;
|
22
|
+
protected checkDisposed(): void;
|
23
|
+
get disposed(): boolean;
|
24
|
+
private disposingElements;
|
25
|
+
dispose(): void;
|
26
|
+
push(disposable: Disposable): Disposable;
|
27
|
+
pushAll(disposables: Disposable[]): Disposable[];
|
28
|
+
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DisposableCollection = exports.Disposable = void 0;
|
4
|
+
/* tslint:disable */
|
5
|
+
const event_1 = require("./event");
|
6
|
+
var Disposable;
|
7
|
+
(function (Disposable) {
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
9
|
+
function is(arg) {
|
10
|
+
return !!arg && typeof arg === 'object' && 'dispose' in arg && typeof arg['dispose'] === 'function';
|
11
|
+
}
|
12
|
+
Disposable.is = is;
|
13
|
+
function create(func) {
|
14
|
+
return {
|
15
|
+
dispose: func
|
16
|
+
};
|
17
|
+
}
|
18
|
+
Disposable.create = create;
|
19
|
+
Disposable.NULL = create(() => { });
|
20
|
+
})(Disposable = exports.Disposable || (exports.Disposable = {}));
|
21
|
+
class DisposableCollection {
|
22
|
+
constructor(...toDispose) {
|
23
|
+
this.disposables = [];
|
24
|
+
this.onDisposeEmitter = new event_1.Emitter();
|
25
|
+
this.disposingElements = false;
|
26
|
+
toDispose.forEach(d => this.push(d));
|
27
|
+
}
|
28
|
+
/**
|
29
|
+
* This event is fired only once
|
30
|
+
* on first dispose of not empty collection.
|
31
|
+
*/
|
32
|
+
get onDispose() {
|
33
|
+
return this.onDisposeEmitter.event;
|
34
|
+
}
|
35
|
+
checkDisposed() {
|
36
|
+
if (this.disposed && !this.disposingElements) {
|
37
|
+
this.onDisposeEmitter.fire(undefined);
|
38
|
+
this.onDisposeEmitter.dispose();
|
39
|
+
}
|
40
|
+
}
|
41
|
+
get disposed() {
|
42
|
+
return this.disposables.length === 0;
|
43
|
+
}
|
44
|
+
dispose() {
|
45
|
+
if (this.disposed || this.disposingElements) {
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
this.disposingElements = true;
|
49
|
+
while (!this.disposed) {
|
50
|
+
try {
|
51
|
+
this.disposables.pop().dispose();
|
52
|
+
}
|
53
|
+
catch (e) {
|
54
|
+
console.error(e);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
this.disposingElements = false;
|
58
|
+
this.checkDisposed();
|
59
|
+
}
|
60
|
+
push(disposable) {
|
61
|
+
const disposables = this.disposables;
|
62
|
+
disposables.push(disposable);
|
63
|
+
const originalDispose = disposable.dispose.bind(disposable);
|
64
|
+
const toRemove = Disposable.create(() => {
|
65
|
+
const index = disposables.indexOf(disposable);
|
66
|
+
if (index !== -1) {
|
67
|
+
disposables.splice(index, 1);
|
68
|
+
}
|
69
|
+
this.checkDisposed();
|
70
|
+
});
|
71
|
+
disposable.dispose = () => {
|
72
|
+
toRemove.dispose();
|
73
|
+
originalDispose();
|
74
|
+
};
|
75
|
+
return toRemove;
|
76
|
+
}
|
77
|
+
pushAll(disposables) {
|
78
|
+
return disposables.map(disposable => this.push(disposable));
|
79
|
+
}
|
80
|
+
}
|
81
|
+
exports.DisposableCollection = DisposableCollection;
|
82
|
+
//# sourceMappingURL=disposable.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"disposable.js","sourceRoot":"","sources":["../../src/core/disposable.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,76 @@
|
|
1
|
+
import { Disposable } from './disposable';
|
2
|
+
import { MaybePromise } from './types';
|
3
|
+
/**
|
4
|
+
* Represents a typed event.
|
5
|
+
*/
|
6
|
+
export interface Event<T> {
|
7
|
+
/**
|
8
|
+
*
|
9
|
+
* @param listener The listener function will be call when the event happens.
|
10
|
+
* @param thisArgs The 'this' which will be used when calling the event listener.
|
11
|
+
* @param disposables An array to which a {{IDisposable}} will be added.
|
12
|
+
* @return a disposable to remove the listener again.
|
13
|
+
*/
|
14
|
+
(listener: (e: T) => any, thisArgs?: any, disposables?: Disposable[]): Disposable;
|
15
|
+
/**
|
16
|
+
* An emitter will print a warning if more listeners are added for this event.
|
17
|
+
* The event.maxListeners allows the limit to be modified for this specific event.
|
18
|
+
* The value can be set to 0 to indicate an unlimited number of listener.
|
19
|
+
*/
|
20
|
+
maxListeners: number;
|
21
|
+
}
|
22
|
+
export declare namespace Event {
|
23
|
+
const None: Event<any>;
|
24
|
+
/**
|
25
|
+
* Given an event and a `map` function, returns another event which maps each element
|
26
|
+
* through the mapping function.
|
27
|
+
*/
|
28
|
+
function map<I, O>(event: Event<I>, mapFunc: (i: I) => O): Event<O>;
|
29
|
+
}
|
30
|
+
export interface EmitterOptions {
|
31
|
+
onFirstListenerAdd?: Function;
|
32
|
+
onLastListenerRemove?: Function;
|
33
|
+
}
|
34
|
+
export declare class Emitter<T = any> {
|
35
|
+
private _options?;
|
36
|
+
private static LEAK_WARNING_THRESHHOLD;
|
37
|
+
private static _noop;
|
38
|
+
private _event;
|
39
|
+
private _callbacks;
|
40
|
+
private _disposed;
|
41
|
+
private _leakingStacks;
|
42
|
+
private _leakWarnCountdown;
|
43
|
+
constructor(_options?: EmitterOptions);
|
44
|
+
/**
|
45
|
+
* For the public to allow to subscribe
|
46
|
+
* to events from this Emitter
|
47
|
+
*/
|
48
|
+
get event(): Event<T>;
|
49
|
+
protected checkMaxListeners(maxListeners: number): (() => void) | undefined;
|
50
|
+
protected pushLeakingStack(): () => void;
|
51
|
+
protected popLeakingStack(stack: string): void;
|
52
|
+
/**
|
53
|
+
* To be kept private to fire an event to
|
54
|
+
* subscribers
|
55
|
+
*/
|
56
|
+
fire(event: T): any;
|
57
|
+
/**
|
58
|
+
* Process each listener one by one.
|
59
|
+
* Return `false` to stop iterating over the listeners, `true` to continue.
|
60
|
+
*/
|
61
|
+
sequence(processor: (listener: (e: T) => any) => MaybePromise<boolean>): Promise<void>;
|
62
|
+
dispose(): void;
|
63
|
+
}
|
64
|
+
export interface WaitUntilEvent {
|
65
|
+
/**
|
66
|
+
* Allows to pause the event loop until the provided thenable resolved.
|
67
|
+
*
|
68
|
+
* *Note:* It can only be called during event dispatch and not in an asynchronous manner
|
69
|
+
*
|
70
|
+
* @param thenable A thenable that delays execution.
|
71
|
+
*/
|
72
|
+
waitUntil(thenable: Promise<any>): void;
|
73
|
+
}
|
74
|
+
export declare namespace WaitUntilEvent {
|
75
|
+
function fire<T extends WaitUntilEvent>(emitter: Emitter<T>, event: Pick<T, Exclude<keyof T, 'waitUntil'>>, timeout?: number | undefined): Promise<void>;
|
76
|
+
}
|
@@ -0,0 +1,249 @@
|
|
1
|
+
"use strict";
|
2
|
+
/* tslint:disable */
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.WaitUntilEvent = exports.Emitter = exports.Event = void 0;
|
5
|
+
var Event;
|
6
|
+
(function (Event) {
|
7
|
+
const _disposable = { dispose() { } };
|
8
|
+
Event.None = Object.assign(function () { return _disposable; }, {
|
9
|
+
get maxListeners() { return 0; },
|
10
|
+
set maxListeners(maxListeners) { }
|
11
|
+
});
|
12
|
+
/**
|
13
|
+
* Given an event and a `map` function, returns another event which maps each element
|
14
|
+
* through the mapping function.
|
15
|
+
*/
|
16
|
+
function map(event, mapFunc) {
|
17
|
+
return Object.assign((listener, thisArgs, disposables) => event(i => listener.call(thisArgs, mapFunc(i)), undefined, disposables), {
|
18
|
+
maxListeners: 0,
|
19
|
+
});
|
20
|
+
}
|
21
|
+
Event.map = map;
|
22
|
+
})(Event = exports.Event || (exports.Event = {}));
|
23
|
+
class CallbackList {
|
24
|
+
get length() {
|
25
|
+
return this._callbacks && this._callbacks.length || 0;
|
26
|
+
}
|
27
|
+
add(callback, context = undefined, bucket) {
|
28
|
+
if (!this._callbacks) {
|
29
|
+
this._callbacks = [];
|
30
|
+
this._contexts = [];
|
31
|
+
}
|
32
|
+
this._callbacks.push(callback);
|
33
|
+
this._contexts.push(context);
|
34
|
+
if (Array.isArray(bucket)) {
|
35
|
+
bucket.push({ dispose: () => this.remove(callback, context) });
|
36
|
+
}
|
37
|
+
}
|
38
|
+
remove(callback, context = undefined) {
|
39
|
+
if (!this._callbacks) {
|
40
|
+
return;
|
41
|
+
}
|
42
|
+
let foundCallbackWithDifferentContext = false;
|
43
|
+
for (let i = 0; i < this._callbacks.length; i++) {
|
44
|
+
if (this._callbacks[i] === callback) {
|
45
|
+
if (this._contexts[i] === context) {
|
46
|
+
// callback & context match => remove it
|
47
|
+
this._callbacks.splice(i, 1);
|
48
|
+
this._contexts.splice(i, 1);
|
49
|
+
return;
|
50
|
+
}
|
51
|
+
else {
|
52
|
+
foundCallbackWithDifferentContext = true;
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
if (foundCallbackWithDifferentContext) {
|
57
|
+
throw new Error('When adding a listener with a context, you should remove it with the same context');
|
58
|
+
}
|
59
|
+
}
|
60
|
+
// tslint:disable-next-line:typedef
|
61
|
+
[Symbol.iterator]() {
|
62
|
+
if (!this._callbacks) {
|
63
|
+
return [][Symbol.iterator]();
|
64
|
+
}
|
65
|
+
const callbacks = this._callbacks.slice(0);
|
66
|
+
const contexts = this._contexts.slice(0);
|
67
|
+
return callbacks.map((callback, i) => (...args) => callback.apply(contexts[i], args))[Symbol.iterator]();
|
68
|
+
}
|
69
|
+
invoke(...args) {
|
70
|
+
const ret = [];
|
71
|
+
for (const callback of this) {
|
72
|
+
try {
|
73
|
+
ret.push(callback(...args));
|
74
|
+
}
|
75
|
+
catch (e) {
|
76
|
+
console.error(e);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
return ret;
|
80
|
+
}
|
81
|
+
isEmpty() {
|
82
|
+
return !this._callbacks || this._callbacks.length === 0;
|
83
|
+
}
|
84
|
+
dispose() {
|
85
|
+
this._callbacks = undefined;
|
86
|
+
this._contexts = undefined;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
class Emitter {
|
90
|
+
constructor(_options) {
|
91
|
+
this._options = _options;
|
92
|
+
this._disposed = false;
|
93
|
+
this._leakWarnCountdown = 0;
|
94
|
+
}
|
95
|
+
/**
|
96
|
+
* For the public to allow to subscribe
|
97
|
+
* to events from this Emitter
|
98
|
+
*/
|
99
|
+
get event() {
|
100
|
+
if (!this._event) {
|
101
|
+
this._event = Object.assign((listener, thisArgs, disposables) => {
|
102
|
+
if (!this._callbacks) {
|
103
|
+
this._callbacks = new CallbackList();
|
104
|
+
}
|
105
|
+
if (this._options && this._options.onFirstListenerAdd && this._callbacks.isEmpty()) {
|
106
|
+
this._options.onFirstListenerAdd(this);
|
107
|
+
}
|
108
|
+
this._callbacks.add(listener, thisArgs);
|
109
|
+
const removeMaxListenersCheck = this.checkMaxListeners(this._event.maxListeners);
|
110
|
+
const result = {
|
111
|
+
dispose: () => {
|
112
|
+
if (removeMaxListenersCheck) {
|
113
|
+
removeMaxListenersCheck();
|
114
|
+
}
|
115
|
+
result.dispose = Emitter._noop;
|
116
|
+
if (!this._disposed) {
|
117
|
+
this._callbacks.remove(listener, thisArgs);
|
118
|
+
result.dispose = Emitter._noop;
|
119
|
+
if (this._options && this._options.onLastListenerRemove && this._callbacks.isEmpty()) {
|
120
|
+
this._options.onLastListenerRemove(this);
|
121
|
+
}
|
122
|
+
}
|
123
|
+
}
|
124
|
+
};
|
125
|
+
if (Array.isArray(disposables)) {
|
126
|
+
disposables.push(result);
|
127
|
+
}
|
128
|
+
return result;
|
129
|
+
}, {
|
130
|
+
maxListeners: Emitter.LEAK_WARNING_THRESHHOLD
|
131
|
+
});
|
132
|
+
}
|
133
|
+
return this._event;
|
134
|
+
}
|
135
|
+
checkMaxListeners(maxListeners) {
|
136
|
+
if (maxListeners === 0 || !this._callbacks) {
|
137
|
+
return undefined;
|
138
|
+
}
|
139
|
+
const listenerCount = this._callbacks.length;
|
140
|
+
if (listenerCount <= maxListeners) {
|
141
|
+
return undefined;
|
142
|
+
}
|
143
|
+
const popStack = this.pushLeakingStack();
|
144
|
+
this._leakWarnCountdown -= 1;
|
145
|
+
if (this._leakWarnCountdown <= 0) {
|
146
|
+
// only warn on first exceed and then every time the limit
|
147
|
+
// is exceeded by 50% again
|
148
|
+
this._leakWarnCountdown = maxListeners * 0.5;
|
149
|
+
let topStack;
|
150
|
+
let topCount = 0;
|
151
|
+
this._leakingStacks.forEach((stackCount, stack) => {
|
152
|
+
if (!topStack || topCount < stackCount) {
|
153
|
+
topStack = stack;
|
154
|
+
topCount = stackCount;
|
155
|
+
}
|
156
|
+
});
|
157
|
+
// eslint-disable-next-line max-len
|
158
|
+
console.warn(`Possible Emitter memory leak detected. ${listenerCount} listeners added. Use event.maxListeners to increase the limit (${maxListeners}). MOST frequent listener (${topCount}):`);
|
159
|
+
console.warn(topStack);
|
160
|
+
}
|
161
|
+
return popStack;
|
162
|
+
}
|
163
|
+
pushLeakingStack() {
|
164
|
+
if (!this._leakingStacks) {
|
165
|
+
this._leakingStacks = new Map();
|
166
|
+
}
|
167
|
+
const stack = new Error().stack.split('\n').slice(3).join('\n');
|
168
|
+
const count = (this._leakingStacks.get(stack) || 0);
|
169
|
+
this._leakingStacks.set(stack, count + 1);
|
170
|
+
return () => this.popLeakingStack(stack);
|
171
|
+
}
|
172
|
+
popLeakingStack(stack) {
|
173
|
+
if (!this._leakingStacks) {
|
174
|
+
return;
|
175
|
+
}
|
176
|
+
const count = (this._leakingStacks.get(stack) || 0);
|
177
|
+
this._leakingStacks.set(stack, count - 1);
|
178
|
+
}
|
179
|
+
/**
|
180
|
+
* To be kept private to fire an event to
|
181
|
+
* subscribers
|
182
|
+
*/
|
183
|
+
fire(event) {
|
184
|
+
if (this._callbacks) {
|
185
|
+
this._callbacks.invoke(event);
|
186
|
+
}
|
187
|
+
}
|
188
|
+
/**
|
189
|
+
* Process each listener one by one.
|
190
|
+
* Return `false` to stop iterating over the listeners, `true` to continue.
|
191
|
+
*/
|
192
|
+
async sequence(processor) {
|
193
|
+
if (this._callbacks) {
|
194
|
+
for (const listener of this._callbacks) {
|
195
|
+
if (!await processor(listener)) {
|
196
|
+
break;
|
197
|
+
}
|
198
|
+
}
|
199
|
+
}
|
200
|
+
}
|
201
|
+
dispose() {
|
202
|
+
if (this._leakingStacks) {
|
203
|
+
this._leakingStacks.clear();
|
204
|
+
this._leakingStacks = undefined;
|
205
|
+
}
|
206
|
+
if (this._callbacks) {
|
207
|
+
this._callbacks.dispose();
|
208
|
+
this._callbacks = undefined;
|
209
|
+
}
|
210
|
+
this._disposed = true;
|
211
|
+
}
|
212
|
+
}
|
213
|
+
exports.Emitter = Emitter;
|
214
|
+
Emitter.LEAK_WARNING_THRESHHOLD = 175;
|
215
|
+
Emitter._noop = function () { };
|
216
|
+
var WaitUntilEvent;
|
217
|
+
(function (WaitUntilEvent) {
|
218
|
+
async function fire(emitter, event, timeout = undefined) {
|
219
|
+
const waitables = [];
|
220
|
+
const asyncEvent = Object.assign(event, {
|
221
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
222
|
+
waitUntil: (thenable) => {
|
223
|
+
if (Object.isFrozen(waitables)) {
|
224
|
+
throw new Error('waitUntil cannot be called asynchronously.');
|
225
|
+
}
|
226
|
+
waitables.push(thenable);
|
227
|
+
}
|
228
|
+
});
|
229
|
+
try {
|
230
|
+
emitter.fire(asyncEvent);
|
231
|
+
// Asynchronous calls to `waitUntil` should fail.
|
232
|
+
Object.freeze(waitables);
|
233
|
+
}
|
234
|
+
finally {
|
235
|
+
delete asyncEvent['waitUntil'];
|
236
|
+
}
|
237
|
+
if (!waitables.length) {
|
238
|
+
return;
|
239
|
+
}
|
240
|
+
if (timeout !== undefined) {
|
241
|
+
await Promise.race([Promise.all(waitables), new Promise(resolve => setTimeout(resolve, timeout))]);
|
242
|
+
}
|
243
|
+
else {
|
244
|
+
await Promise.all(waitables);
|
245
|
+
}
|
246
|
+
}
|
247
|
+
WaitUntilEvent.fire = fire;
|
248
|
+
})(WaitUntilEvent = exports.WaitUntilEvent || (exports.WaitUntilEvent = {}));
|
249
|
+
//# sourceMappingURL=event.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/core/event.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const chai_1 = require("chai");
|
4
|
+
const event_1 = require("./event");
|
5
|
+
describe('Event Objects', () => {
|
6
|
+
it('Emitter firing should be synchronous', () => {
|
7
|
+
const emitter = new event_1.Emitter();
|
8
|
+
let counter = 0;
|
9
|
+
emitter.event(() => counter++);
|
10
|
+
(0, chai_1.expect)(counter).eq(0);
|
11
|
+
emitter.fire(undefined);
|
12
|
+
(0, chai_1.expect)(counter).eq(1);
|
13
|
+
});
|
14
|
+
});
|
15
|
+
//# sourceMappingURL=event.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"event.test.js","sourceRoot":"","sources":["../../src/core/event.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,mCAAkC;AAElC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAE3B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,OAAO,GAAG,IAAI,eAAO,EAAa,CAAC;QACzC,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/B,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}
|