@adminide-stack/core 7.0.1-alpha.0 → 7.0.1-alpha.15
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/constants/billing-plan.js +1 -1
- package/lib/constants/billing-plan.js.map +1 -0
- package/lib/constants/configuration.js +1 -1
- package/lib/constants/configuration.js.map +1 -0
- package/lib/constants/constants.js +1 -1
- package/lib/constants/constants.js.map +1 -0
- package/lib/constants/default-workspace-config.js +1 -1
- package/lib/constants/default-workspace-config.js.map +1 -0
- package/lib/constants/routes.js +1 -1
- package/lib/constants/routes.js.map +1 -0
- package/lib/constants/types.js +14 -14
- package/lib/constants/types.js.map +1 -0
- package/lib/constants/urls.js +1 -1
- package/lib/constants/urls.js.map +1 -0
- package/lib/core/configurations/configuration.js +546 -434
- package/lib/core/configurations/configuration.js.map +1 -0
- package/lib/core/configurations/events/ConfigurationChangeEvent.js +52 -41
- package/lib/core/configurations/events/ConfigurationChangeEvent.js.map +1 -0
- package/lib/core/configurations/helpers/configuration.js +138 -149
- package/lib/core/configurations/helpers/configuration.js.map +1 -0
- package/lib/core/configurations/models/ConfigurationModel.js +186 -187
- package/lib/core/configurations/models/ConfigurationModel.js.map +1 -0
- package/lib/core/disposable.js +67 -68
- package/lib/core/disposable.js.map +1 -0
- package/lib/core/event.js +240 -230
- package/lib/core/event.js.map +1 -0
- package/lib/core/organization/configuration.js +15 -14
- package/lib/core/organization/configuration.js.map +1 -0
- package/lib/core/organization/helpers/organization-helpers.js +7 -14
- package/lib/core/organization/helpers/organization-helpers.js.map +1 -0
- package/lib/core/organization/organization.js +132 -105
- package/lib/core/organization/organization.js.map +1 -0
- package/lib/core/path.js +155 -151
- package/lib/core/path.js.map +1 -0
- package/lib/enums/connection-status.js +5 -5
- package/lib/enums/connection-status.js.map +1 -0
- package/lib/enums/integration-configuration-status.js +4 -4
- package/lib/enums/integration-configuration-status.js.map +1 -0
- package/lib/enums/integrations-configuration-steps.js +7 -7
- package/lib/enums/integrations-configuration-steps.js.map +1 -0
- package/lib/enums/integrations-connection-names.js +11 -11
- package/lib/enums/integrations-connection-names.js.map +1 -0
- package/lib/enums/integrations.js +9 -9
- package/lib/enums/integrations.js.map +1 -0
- package/lib/enums/permissions.js +6 -6
- package/lib/enums/permissions.js.map +1 -0
- package/lib/enums/team-member-status.js +3 -3
- package/lib/enums/team-member-status.js.map +1 -0
- package/lib/errors/auth-error-messages.js +23 -23
- package/lib/errors/auth-error-messages.js.map +1 -0
- package/lib/errors/auth-error.js +10 -6
- package/lib/errors/auth-error.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -0
- package/lib/interfaces/configuration/configuration.js +31 -31
- package/lib/interfaces/configuration/configuration.js.map +1 -0
- package/lib/interfaces/generated/generated-models.d.ts +267 -13
- package/lib/interfaces/generated/generated-models.js +15744 -919
- package/lib/interfaces/generated/generated-models.js.map +1 -0
- package/lib/interfaces/organization/organization-context-service.d.ts +1 -0
- package/lib/interfaces/organization/organization-context.js +12 -17
- package/lib/interfaces/organization/organization-context.js.map +1 -0
- package/lib/modules/account-api/enums/index.js +65 -65
- package/lib/modules/account-api/enums/index.js.map +1 -0
- package/lib/modules/billing-api/enums/index.js +19 -19
- package/lib/modules/billing-api/enums/index.js.map +1 -0
- package/lib/modules/inbox/enums/index.js +24 -24
- package/lib/modules/inbox/enums/index.js.map +1 -0
- package/lib/routes.json +1 -0
- package/lib/services/abstract-configuration.js +113 -110
- package/lib/services/abstract-configuration.js.map +1 -0
- package/lib/services/abstract-organization-context-service.d.ts +1 -0
- package/lib/services/abstract-organization-context-service.js +97 -89
- package/lib/services/abstract-organization-context-service.js.map +1 -0
- package/lib/utils/configuration-utils.js +9 -9
- package/lib/utils/configuration-utils.js.map +1 -0
- package/lib/utils/date-utils.js +3 -3
- package/lib/utils/date-utils.js.map +1 -0
- package/lib/utils/flatten-utils.js +36 -40
- package/lib/utils/flatten-utils.js.map +1 -0
- package/lib/utils/generate-uri.js +24 -14
- package/lib/utils/generate-uri.js.map +1 -0
- package/lib/utils/generated-settings-id.js +5 -5
- package/lib/utils/generated-settings-id.js.map +1 -0
- package/lib/utils/omit-deep.js +8 -8
- package/lib/utils/omit-deep.js.map +1 -0
- package/lib/utils/roles-utils.js +6 -2
- package/lib/utils/roles-utils.js.map +1 -0
- package/lib/utils/uri.js +10 -12
- package/lib/utils/uri.js.map +1 -0
- package/lib/utils/utils.js +20 -15
- package/lib/utils/utils.js.map +1 -0
- package/lib/utils/validations.js +3 -3
- package/lib/utils/validations.js.map +1 -0
- package/package.json +2 -2
@@ -1,194 +1,193 @@
|
|
1
1
|
import*as objects from'@vscode-alt/monaco-editor/esm/vs/base/common/objects.js';import*as arrays from'@vscode-alt/monaco-editor/esm/vs/base/common/arrays.js';import*as types from'@vscode-alt/monaco-editor/esm/vs/base/common/types.js';import {getConfigurationValue,addToValueTree,removeFromValueTree}from'../helpers/configuration.js';// https://github.com/microsoft/vscode/blob/1562a35c863c312eec35c161b9ceac9921afa50e/src/vs/platform/configuration/common/configurationModels.ts
|
2
2
|
class ConfigurationModel {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
}
|
77
|
-
}
|
78
|
-
for (const key of other.keys) {
|
79
|
-
if (keys.indexOf(key) === -1) {
|
80
|
-
keys.push(key);
|
81
|
-
}
|
82
|
-
}
|
83
|
-
}
|
84
|
-
return new ConfigurationModel(contents, keys, overrides);
|
85
|
-
}
|
86
|
-
freeze() {
|
87
|
-
this.frozen = true;
|
88
|
-
return this;
|
89
|
-
}
|
90
|
-
clone() {
|
91
|
-
return new ConfigurationModel(objects.deepClone(this.contents), [...this.keys], objects.deepClone(this.overrides));
|
92
|
-
}
|
93
|
-
createOverrideConfigurationModel(identifier) {
|
94
|
-
const overrideContents = this.getContentsForOverrideIdentifer(identifier);
|
95
|
-
if (!overrideContents || typeof overrideContents !== 'object' || !Object.keys(overrideContents).length) {
|
96
|
-
// If there are no valid overrides, return self
|
97
|
-
return this;
|
3
|
+
_contents;
|
4
|
+
_keys;
|
5
|
+
_overrides;
|
6
|
+
frozen = false;
|
7
|
+
overrideConfigurations = new Map();
|
8
|
+
constructor(_contents = {}, _keys = [], _overrides = []) {
|
9
|
+
this._contents = _contents;
|
10
|
+
this._keys = _keys;
|
11
|
+
this._overrides = _overrides;
|
12
|
+
}
|
13
|
+
get contents() {
|
14
|
+
return this.checkAndFreeze(this._contents);
|
15
|
+
}
|
16
|
+
get overrides() {
|
17
|
+
return this.checkAndFreeze(this._overrides);
|
18
|
+
}
|
19
|
+
get keys() {
|
20
|
+
return this.checkAndFreeze(this._keys);
|
21
|
+
}
|
22
|
+
isEmpty() {
|
23
|
+
return this._keys.length === 0 && Object.keys(this._contents).length === 0 && this._overrides.length === 0;
|
24
|
+
}
|
25
|
+
isFrozen() {
|
26
|
+
return this.frozen;
|
27
|
+
}
|
28
|
+
getValue(section) {
|
29
|
+
return section ? getConfigurationValue(this.contents, section) : this.contents;
|
30
|
+
}
|
31
|
+
getOverrideValue(section, overrideIdentifier) {
|
32
|
+
const overrideContents = this.getContentsForOverrideIdentifer(overrideIdentifier);
|
33
|
+
return overrideContents ? section ? getConfigurationValue(overrideContents, section) : overrideContents : undefined;
|
34
|
+
}
|
35
|
+
getKeysForOverrideIdentifier(identifier) {
|
36
|
+
const keys = [];
|
37
|
+
for (const override of this.overrides) {
|
38
|
+
if (override.identifiers.includes(identifier)) {
|
39
|
+
keys.push(...override.keys);
|
40
|
+
}
|
41
|
+
}
|
42
|
+
return arrays.distinct(keys);
|
43
|
+
}
|
44
|
+
getAllOverrideIdentifiers() {
|
45
|
+
const result = [];
|
46
|
+
for (const override of this.overrides) {
|
47
|
+
result.push(...override.identifiers);
|
48
|
+
}
|
49
|
+
return arrays.distinct(result);
|
50
|
+
}
|
51
|
+
override(identifier) {
|
52
|
+
let overrideConfigurationModel = this.overrideConfigurations.get(identifier);
|
53
|
+
if (!overrideConfigurationModel) {
|
54
|
+
overrideConfigurationModel = this.createOverrideConfigurationModel(identifier);
|
55
|
+
this.overrideConfigurations.set(identifier, overrideConfigurationModel);
|
56
|
+
}
|
57
|
+
return overrideConfigurationModel;
|
58
|
+
}
|
59
|
+
merge(...others) {
|
60
|
+
const contents = objects.deepClone(this.contents);
|
61
|
+
const overrides = objects.deepClone(this.overrides);
|
62
|
+
const keys = [...this.keys];
|
63
|
+
for (const other of others) {
|
64
|
+
if (other.isEmpty()) {
|
65
|
+
continue;
|
66
|
+
}
|
67
|
+
this.mergeContents(contents, other.contents);
|
68
|
+
for (const otherOverride of other.overrides || []) {
|
69
|
+
const [override] = overrides.filter(o => arrays.equals(o.identifiers, otherOverride.identifiers));
|
70
|
+
if (override) {
|
71
|
+
this.mergeContents(override.contents, otherOverride.contents);
|
72
|
+
override.keys.push(...otherOverride.keys);
|
73
|
+
override.keys = arrays.distinct(override.keys);
|
74
|
+
} else {
|
75
|
+
overrides.push(objects.deepClone(otherOverride));
|
98
76
|
}
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
// If there are override contents for the key, clone and merge otherwise use base contents
|
104
|
-
if (overrideContentsForKey) {
|
105
|
-
// Clone and merge only if base contents and override contents are of type object otherwise just override
|
106
|
-
if (typeof contentsForKey === 'object' && typeof overrideContentsForKey === 'object') {
|
107
|
-
contentsForKey = objects.deepClone(contentsForKey);
|
108
|
-
this.mergeContents(contentsForKey, overrideContentsForKey);
|
109
|
-
}
|
110
|
-
else {
|
111
|
-
contentsForKey = overrideContentsForKey;
|
112
|
-
}
|
113
|
-
}
|
114
|
-
contents[key] = contentsForKey;
|
77
|
+
}
|
78
|
+
for (const key of other.keys) {
|
79
|
+
if (keys.indexOf(key) === -1) {
|
80
|
+
keys.push(key);
|
115
81
|
}
|
116
|
-
|
117
|
-
}
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
82
|
+
}
|
83
|
+
}
|
84
|
+
return new ConfigurationModel(contents, keys, overrides);
|
85
|
+
}
|
86
|
+
freeze() {
|
87
|
+
this.frozen = true;
|
88
|
+
return this;
|
89
|
+
}
|
90
|
+
clone() {
|
91
|
+
return new ConfigurationModel(objects.deepClone(this.contents), [...this.keys], objects.deepClone(this.overrides));
|
92
|
+
}
|
93
|
+
createOverrideConfigurationModel(identifier) {
|
94
|
+
const overrideContents = this.getContentsForOverrideIdentifer(identifier);
|
95
|
+
if (!overrideContents || typeof overrideContents !== 'object' || !Object.keys(overrideContents).length) {
|
96
|
+
// If there are no valid overrides, return self
|
97
|
+
return this;
|
98
|
+
}
|
99
|
+
const contents = {};
|
100
|
+
for (const key of arrays.distinct([...Object.keys(this.contents), ...Object.keys(overrideContents)])) {
|
101
|
+
let contentsForKey = this.contents[key];
|
102
|
+
const overrideContentsForKey = overrideContents[key];
|
103
|
+
// If there are override contents for the key, clone and merge otherwise use base contents
|
104
|
+
if (overrideContentsForKey) {
|
105
|
+
// Clone and merge only if base contents and override contents are of type object otherwise just override
|
106
|
+
if (typeof contentsForKey === 'object' && typeof overrideContentsForKey === 'object') {
|
107
|
+
contentsForKey = objects.deepClone(contentsForKey);
|
108
|
+
this.mergeContents(contentsForKey, overrideContentsForKey);
|
109
|
+
} else {
|
110
|
+
contentsForKey = overrideContentsForKey;
|
127
111
|
}
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
112
|
+
}
|
113
|
+
contents[key] = contentsForKey;
|
114
|
+
}
|
115
|
+
return new ConfigurationModel(contents, this.keys, this.overrides);
|
116
|
+
}
|
117
|
+
mergeContents(source, target) {
|
118
|
+
for (const key of Object.keys(target)) {
|
119
|
+
if (key in source) {
|
120
|
+
if (types.isObject(source[key]) && types.isObject(target[key])) {
|
121
|
+
this.mergeContents(source[key], target[key]);
|
122
|
+
continue;
|
132
123
|
}
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
else if (override.identifiers.includes(identifier)) {
|
153
|
-
mergeContents(override.contents);
|
154
|
-
}
|
124
|
+
}
|
125
|
+
source[key] = objects.deepClone(target[key]);
|
126
|
+
}
|
127
|
+
}
|
128
|
+
checkAndFreeze(data) {
|
129
|
+
if (this.frozen && !Object.isFrozen(data)) {
|
130
|
+
return objects.deepFreeze(data);
|
131
|
+
}
|
132
|
+
return data;
|
133
|
+
}
|
134
|
+
getContentsForOverrideIdentifer(identifier) {
|
135
|
+
let contentsForIdentifierOnly = null;
|
136
|
+
let contents = null;
|
137
|
+
const mergeContents = contentsToMerge => {
|
138
|
+
if (contentsToMerge) {
|
139
|
+
if (contents) {
|
140
|
+
this.mergeContents(contents, contentsToMerge);
|
141
|
+
} else {
|
142
|
+
contents = objects.deepClone(contentsToMerge);
|
155
143
|
}
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
}
|
144
|
+
}
|
145
|
+
};
|
146
|
+
for (const override of this.overrides) {
|
147
|
+
if (arrays.equals(override.identifiers, [identifier])) {
|
148
|
+
contentsForIdentifierOnly = override.contents;
|
149
|
+
} else if (override.identifiers.includes(identifier)) {
|
150
|
+
mergeContents(override.contents);
|
151
|
+
}
|
152
|
+
}
|
153
|
+
// Merge contents of the identifier only at the end to take precedence.
|
154
|
+
mergeContents(contentsForIdentifierOnly);
|
155
|
+
return contents;
|
156
|
+
}
|
157
|
+
toJSON() {
|
158
|
+
return {
|
159
|
+
contents: this.contents,
|
160
|
+
overrides: this.overrides,
|
161
|
+
keys: this.keys
|
162
|
+
};
|
163
|
+
}
|
164
|
+
// Update methods
|
165
|
+
setValue(key, value) {
|
166
|
+
this.addKey(key);
|
167
|
+
addToValueTree(this.contents, key, value, e => {
|
168
|
+
throw new Error(e);
|
169
|
+
});
|
170
|
+
}
|
171
|
+
removeValue(key) {
|
172
|
+
if (this.removeKey(key)) {
|
173
|
+
removeFromValueTree(this.contents, key);
|
174
|
+
}
|
175
|
+
}
|
176
|
+
addKey(key) {
|
177
|
+
let index = this.keys.length;
|
178
|
+
for (let i = 0; i < index; i++) {
|
179
|
+
if (key.indexOf(this.keys[i]) === 0) {
|
180
|
+
index = i;
|
181
|
+
}
|
182
|
+
}
|
183
|
+
this.keys.splice(index, 1, key);
|
184
|
+
}
|
185
|
+
removeKey(key) {
|
186
|
+
let index = this.keys.indexOf(key);
|
187
|
+
if (index !== -1) {
|
188
|
+
this.keys.splice(index, 1);
|
189
|
+
return true;
|
190
|
+
}
|
191
|
+
return false;
|
192
|
+
}
|
193
|
+
}export{ConfigurationModel};//# sourceMappingURL=ConfigurationModel.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ConfigurationModel.js","sources":["../../../../src/core/configurations/models/ConfigurationModel.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/lib/core/disposable.js
CHANGED
@@ -1,76 +1,75 @@
|
|
1
1
|
import {Emitter}from'./event.js';/* tslint:disable */
|
2
2
|
var Disposable;
|
3
3
|
(function (Disposable) {
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
5
|
+
function is(arg) {
|
6
|
+
return !!arg && typeof arg === 'object' && 'dispose' in arg && typeof arg['dispose'] === 'function';
|
7
|
+
}
|
8
|
+
Disposable.is = is;
|
9
|
+
function create(func) {
|
10
|
+
return {
|
11
|
+
dispose: func
|
12
|
+
};
|
13
|
+
}
|
14
|
+
Disposable.create = create;
|
15
|
+
Disposable.NULL = create(() => {});
|
16
16
|
})(Disposable || (Disposable = {}));
|
17
17
|
class DisposableCollection {
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
this.onDisposeEmitter.dispose();
|
35
|
-
}
|
36
|
-
}
|
37
|
-
get disposed() {
|
38
|
-
return this.disposables.length === 0;
|
39
|
-
}
|
40
|
-
dispose() {
|
41
|
-
if (this.disposed || this.disposingElements) {
|
42
|
-
return;
|
43
|
-
}
|
44
|
-
this.disposingElements = true;
|
45
|
-
while (!this.disposed) {
|
46
|
-
try {
|
47
|
-
this.disposables.pop().dispose();
|
48
|
-
}
|
49
|
-
catch (e) {
|
50
|
-
console.error(e);
|
51
|
-
}
|
52
|
-
}
|
53
|
-
this.disposingElements = false;
|
54
|
-
this.checkDisposed();
|
18
|
+
disposables = [];
|
19
|
+
onDisposeEmitter = new Emitter();
|
20
|
+
constructor(...toDispose) {
|
21
|
+
toDispose.forEach(d => this.push(d));
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* This event is fired only once
|
25
|
+
* on first dispose of not empty collection.
|
26
|
+
*/
|
27
|
+
get onDispose() {
|
28
|
+
return this.onDisposeEmitter.event;
|
29
|
+
}
|
30
|
+
checkDisposed() {
|
31
|
+
if (this.disposed && !this.disposingElements) {
|
32
|
+
this.onDisposeEmitter.fire(undefined);
|
33
|
+
this.onDisposeEmitter.dispose();
|
55
34
|
}
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
}
|
65
|
-
this.checkDisposed();
|
66
|
-
});
|
67
|
-
disposable.dispose = () => {
|
68
|
-
toRemove.dispose();
|
69
|
-
originalDispose();
|
70
|
-
};
|
71
|
-
return toRemove;
|
35
|
+
}
|
36
|
+
get disposed() {
|
37
|
+
return this.disposables.length === 0;
|
38
|
+
}
|
39
|
+
disposingElements = false;
|
40
|
+
dispose() {
|
41
|
+
if (this.disposed || this.disposingElements) {
|
42
|
+
return;
|
72
43
|
}
|
73
|
-
|
74
|
-
|
44
|
+
this.disposingElements = true;
|
45
|
+
while (!this.disposed) {
|
46
|
+
try {
|
47
|
+
this.disposables.pop().dispose();
|
48
|
+
} catch (e) {
|
49
|
+
console.error(e);
|
50
|
+
}
|
75
51
|
}
|
76
|
-
|
52
|
+
this.disposingElements = false;
|
53
|
+
this.checkDisposed();
|
54
|
+
}
|
55
|
+
push(disposable) {
|
56
|
+
const disposables = this.disposables;
|
57
|
+
disposables.push(disposable);
|
58
|
+
const originalDispose = disposable.dispose.bind(disposable);
|
59
|
+
const toRemove = Disposable.create(() => {
|
60
|
+
const index = disposables.indexOf(disposable);
|
61
|
+
if (index !== -1) {
|
62
|
+
disposables.splice(index, 1);
|
63
|
+
}
|
64
|
+
this.checkDisposed();
|
65
|
+
});
|
66
|
+
disposable.dispose = () => {
|
67
|
+
toRemove.dispose();
|
68
|
+
originalDispose();
|
69
|
+
};
|
70
|
+
return toRemove;
|
71
|
+
}
|
72
|
+
pushAll(disposables) {
|
73
|
+
return disposables.map(disposable => this.push(disposable));
|
74
|
+
}
|
75
|
+
}export{Disposable,DisposableCollection};//# sourceMappingURL=disposable.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"disposable.js","sources":["../../src/core/disposable.ts"],"sourcesContent":[null],"names":[],"mappings":"iCAAA;AAUM,IAAW,WAWhB;AAXD,CAAA,UAAiB,UAAU,EAAA;;WAEP,EAAA,CAAA,GAAW,EAAA;WAChB,CAAA,CAAA,GAAC,IAAI,eAAc,YAAa,SAAI,IAAS,OAAO,WAAW,eAAc;;AADxE,EAAA,UAAA,CAAA,EAAA;WAGA,MAAA,CAAA,IAAuB,EAAA;WAC5B;AACH,MAAA,OAAA,EAAA,IAAO;;;AAFC,EAAA,UAAA,CAAA,MAAA;YAKC,CAAA,IAAA,GAAA,eAAkB,CAAA,CAAA;AACvC,CAAC,EAXgB,UAAU,KAAV,UAAU,GAW1B,EAAA,CAAA,CAAA,CAAA;MAEY,oBAAoB,CAAA;aAEC,GAAA,EAAiB;AAC5B,EAAA,gBAAA,GAAmB,IAAA,OAAW,EAAA,CAAA;AAEjD,EAAA,WAAA,CAAA,YAAsC,EAAA;AAClC,IAAA,SAAA,CAAA,OAAU,CAAA,CAAA,IAAS,IAAI,CAAI,IAAC,CAAI,CAAA,CAAA,CAAA,CAAC;;AAGrC;;;AAGG;AACH,EAAA,IAAA,SAAa,GAAA;AACT,IAAA,OAAA,IAAO,CAAI,gBAAiB,CAAA;;eAGT,GAAA;QACnB,IAAI,CAAA,QAAa,IAAA,CAAA,IAAK,CAAI;AACtB,MAAA,IAAA,CAAA,gBAAqB,CAAA,IAAA,CAAA,SAAM,CAAA,CAAA;AAC3B,MAAA,IAAA,CAAA,gBAAK,CAAA,OAAiB,EAAA,CAAA;AACzB,KAAA;;AAGL,EAAA,IAAA,QAAY,GAAA;AACR,IAAA,OAAA,IAAO,YAAK,CAAA,MAAkB,KAAA,CAAA,CAAA;;mBAGT,GAAA;SAClB,GAAA;AACH,IAAA,IAAA,IAAI,SAAK,IAAQ,IAAI,CAAI;aACd;AACV,KAAA;AACD,IAAA,IAAA,CAAA,iBAAK,GAAA,IAAoB,CAAA;AACzB,IAAA,OAAA,CAAA,IAAQ,CAAA,QAAK,EAAA;;sCAEkB,EAAC,CAAA;AAC3B,OAAA,CAAA,OAAA,CAAA,EAAA;AAAC,QAAA,OAAA,CAAA,KAAU,CAAA,CAAA,CAAA,CAAA;AACR,OAAA;AACH,KAAA;AACJ,IAAA,IAAA,CAAA,iBAAA,GAAA,KAAA,CAAA;AACD,IAAA,IAAA,CAAA,aAAK,EAAA,CAAA;;MAER,CAAA,UAAA,EAAA;AAED,IAAA,MAA2B,WAAA,GAAA,IAAA,CAAA,WAAA,CAAA;AACvB,IAAA,WAAiB,CAAA,IAAA,CAAA,UAAO,CAAA,CAAC;AACzB,IAAA,MAAA,eAAiB,GAAA,UAAY,CAAA,OAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA;UACvB,QAAA,GAAA,UAAkB,CAAA,MAAA,CAAA,MAAW;AACnC,MAAA,MAAA,mBAAiB,CAAA,OAAiB,CAAA,UAAM,CAAA,CAAA;eAC9B,KAAA,CAAA,CAAA;AACN,QAAA,WAAS,CAAA,MAAK,CAAC,KAAG,EAAA,CAAA,CAAA,CAAA;AACd,OAAA;AACH,MAAA,IAAA,CAAA,aAAA,EAAA,CAAA;;AAEL,IAAA,UAAG,CAAA,OAAA,GAAA,MAAA;AACH,MAAA,QAAA,CAAA,OAAW,EAAA,CAAA;qBACE,EAAO,CAAA;AAChB,KAAA,CAAA;AACJ,IAAA,OAAE,QAAA,CAAA;AACF,GAAA;SACH,CAAA,WAAA,EAAA;AAED,IAAA,OAAO,WAA0B,CAAA,GAAA,CAAA,UAAA,IAAA,IAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA,CAAA;AAC7B,GAAA;"}
|