@salesforce/core 3.30.14 → 3.31.7
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.txt +11 -11
- package/README.md +222 -227
- package/lib/config/aliasesConfig.d.ts +12 -12
- package/lib/config/aliasesConfig.js +27 -27
- package/lib/config/authInfoConfig.d.ts +19 -19
- package/lib/config/authInfoConfig.js +34 -34
- package/lib/config/config.d.ts +311 -311
- package/lib/config/config.js +574 -574
- package/lib/config/configAggregator.d.ts +232 -232
- package/lib/config/configAggregator.js +379 -379
- package/lib/config/configFile.d.ts +199 -199
- package/lib/config/configFile.js +340 -340
- package/lib/config/configGroup.d.ts +141 -141
- package/lib/config/configGroup.js +224 -224
- package/lib/config/configStore.d.ts +241 -241
- package/lib/config/configStore.js +352 -352
- package/lib/config/envVars.d.ts +101 -101
- package/lib/config/envVars.js +456 -456
- package/lib/config/orgUsersConfig.d.ts +31 -31
- package/lib/config/orgUsersConfig.js +41 -41
- package/lib/config/sandboxOrgConfig.d.ts +37 -37
- package/lib/config/sandboxOrgConfig.js +50 -50
- package/lib/config/sandboxProcessCache.d.ts +16 -16
- package/lib/config/sandboxProcessCache.js +37 -37
- package/lib/config/tokensConfig.d.ts +10 -10
- package/lib/config/tokensConfig.js +28 -28
- package/lib/config/ttlConfig.d.ts +34 -34
- package/lib/config/ttlConfig.js +54 -54
- package/lib/crypto/crypto.d.ts +54 -54
- package/lib/crypto/crypto.js +220 -220
- package/lib/crypto/keyChain.d.ts +8 -8
- package/lib/crypto/keyChain.js +61 -61
- package/lib/crypto/keyChainImpl.d.ts +116 -116
- package/lib/crypto/keyChainImpl.js +486 -486
- package/lib/crypto/secureBuffer.d.ts +46 -46
- package/lib/crypto/secureBuffer.js +82 -82
- package/lib/deviceOauthService.d.ts +71 -71
- package/lib/deviceOauthService.js +191 -191
- package/lib/exported.d.ts +38 -38
- package/lib/exported.js +118 -118
- package/lib/global.d.ts +70 -70
- package/lib/global.js +109 -109
- package/lib/lifecycleEvents.d.ts +93 -93
- package/lib/lifecycleEvents.js +188 -188
- package/lib/logger.d.ts +381 -381
- package/lib/logger.js +734 -734
- package/lib/messages.d.ts +291 -291
- package/lib/messages.js +543 -543
- package/lib/org/authInfo.d.ts +344 -344
- package/lib/org/authInfo.js +892 -892
- package/lib/org/authRemover.d.ts +88 -88
- package/lib/org/authRemover.js +182 -182
- package/lib/org/connection.d.ts +197 -197
- package/lib/org/connection.js +395 -395
- package/lib/org/index.d.ts +6 -6
- package/lib/org/index.js +28 -28
- package/lib/org/org.d.ts +558 -558
- package/lib/org/org.js +1267 -1267
- package/lib/org/orgConfigProperties.d.ts +69 -69
- package/lib/org/orgConfigProperties.js +136 -136
- package/lib/org/permissionSetAssignment.d.ts +35 -35
- package/lib/org/permissionSetAssignment.js +125 -125
- package/lib/org/scratchOrgCache.d.ts +20 -20
- package/lib/org/scratchOrgCache.js +32 -32
- package/lib/org/scratchOrgCreate.d.ts +54 -54
- package/lib/org/scratchOrgCreate.js +216 -216
- package/lib/org/scratchOrgErrorCodes.d.ts +10 -10
- package/lib/org/scratchOrgErrorCodes.js +88 -88
- package/lib/org/scratchOrgFeatureDeprecation.d.ts +26 -26
- package/lib/org/scratchOrgFeatureDeprecation.js +109 -109
- package/lib/org/scratchOrgInfoApi.d.ts +68 -68
- package/lib/org/scratchOrgInfoApi.js +413 -413
- package/lib/org/scratchOrgInfoGenerator.d.ts +64 -64
- package/lib/org/scratchOrgInfoGenerator.js +241 -241
- package/lib/org/scratchOrgLifecycleEvents.d.ts +10 -10
- package/lib/org/scratchOrgLifecycleEvents.js +40 -40
- package/lib/org/scratchOrgSettingsGenerator.d.ts +78 -78
- package/lib/org/scratchOrgSettingsGenerator.js +276 -276
- package/lib/org/scratchOrgTypes.d.ts +43 -43
- package/lib/org/scratchOrgTypes.js +8 -8
- package/lib/org/user.d.ts +187 -187
- package/lib/org/user.js +448 -448
- package/lib/schema/printer.d.ts +79 -79
- package/lib/schema/printer.js +260 -260
- package/lib/schema/validator.d.ts +70 -70
- package/lib/schema/validator.js +169 -169
- package/lib/sfError.d.ts +73 -73
- package/lib/sfError.js +136 -136
- package/lib/sfProject.d.ts +357 -357
- package/lib/sfProject.js +671 -671
- package/lib/stateAggregator/accessors/aliasAccessor.d.ts +98 -98
- package/lib/stateAggregator/accessors/aliasAccessor.js +145 -145
- package/lib/stateAggregator/accessors/orgAccessor.d.ts +101 -101
- package/lib/stateAggregator/accessors/orgAccessor.js +240 -240
- package/lib/stateAggregator/accessors/sandboxAccessor.d.ts +8 -8
- package/lib/stateAggregator/accessors/sandboxAccessor.js +27 -27
- package/lib/stateAggregator/accessors/tokenAccessor.d.ts +63 -63
- package/lib/stateAggregator/accessors/tokenAccessor.js +79 -79
- package/lib/stateAggregator/index.d.ts +4 -4
- package/lib/stateAggregator/index.js +26 -26
- package/lib/stateAggregator/stateAggregator.d.ts +25 -25
- package/lib/stateAggregator/stateAggregator.js +45 -45
- package/lib/status/myDomainResolver.d.ts +66 -66
- package/lib/status/myDomainResolver.js +124 -124
- package/lib/status/pollingClient.d.ts +85 -85
- package/lib/status/pollingClient.js +115 -115
- package/lib/status/streamingClient.d.ts +244 -244
- package/lib/status/streamingClient.js +436 -436
- package/lib/status/types.d.ts +89 -89
- package/lib/status/types.js +17 -17
- package/lib/testSetup.d.ts +553 -530
- package/lib/testSetup.js +871 -727
- package/lib/util/cache.d.ts +11 -11
- package/lib/util/cache.js +69 -69
- package/lib/util/checkLightningDomain.d.ts +1 -1
- package/lib/util/checkLightningDomain.js +28 -28
- package/lib/util/directoryWriter.d.ts +12 -12
- package/lib/util/directoryWriter.js +53 -53
- package/lib/util/getJwtAudienceUrl.d.ts +4 -4
- package/lib/util/getJwtAudienceUrl.js +18 -18
- package/lib/util/internal.d.ts +58 -58
- package/lib/util/internal.js +118 -118
- package/lib/util/jsonXmlTools.d.ts +14 -14
- package/lib/util/jsonXmlTools.js +38 -38
- package/lib/util/mapKeys.d.ts +14 -14
- package/lib/util/mapKeys.js +51 -51
- package/lib/util/sfdc.d.ts +52 -52
- package/lib/util/sfdc.js +85 -85
- package/lib/util/sfdcUrl.d.ts +72 -72
- package/lib/util/sfdcUrl.js +215 -215
- package/lib/util/structuredWriter.d.ts +9 -9
- package/lib/util/structuredWriter.js +2 -2
- package/lib/util/zipWriter.d.ts +16 -16
- package/lib/util/zipWriter.js +67 -67
- package/lib/webOAuthServer.d.ts +156 -156
- package/lib/webOAuthServer.js +388 -388
- package/messages/auth.md +37 -37
- package/messages/config.md +156 -156
- package/messages/connection.md +30 -30
- package/messages/core.json +20 -20
- package/messages/core.md +67 -67
- package/messages/encryption.md +85 -85
- package/messages/envVars.md +303 -303
- package/messages/org.md +63 -63
- package/messages/permissionSetAssignment.md +31 -31
- package/messages/scratchOrgCreate.md +23 -23
- package/messages/scratchOrgErrorCodes.md +115 -115
- package/messages/scratchOrgFeatureDeprecation.md +11 -11
- package/messages/scratchOrgInfoApi.md +15 -15
- package/messages/scratchOrgInfoGenerator.md +23 -23
- package/messages/streaming.md +23 -23
- package/messages/user.md +35 -35
- package/package.json +97 -97
|
@@ -1,225 +1,225 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
|
-
* All rights reserved.
|
|
5
|
-
* Licensed under the BSD 3-Clause license.
|
|
6
|
-
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ConfigGroup = void 0;
|
|
10
|
-
const ts_types_1 = require("@salesforce/ts-types");
|
|
11
|
-
const sfError_1 = require("../sfError");
|
|
12
|
-
const configFile_1 = require("./configFile");
|
|
13
|
-
/**
|
|
14
|
-
* A config file that stores config values in groups. e.g. to store different config
|
|
15
|
-
* values for different commands, without having manually manipulate the config.
|
|
16
|
-
*
|
|
17
|
-
* **Note:** All config methods are overwritten to use the {@link ConfigGroup.setDefaultGroup}.
|
|
18
|
-
*
|
|
19
|
-
* ```
|
|
20
|
-
* class MyPluginConfig extends ConfigGroup<ConfigGroup.Options> {
|
|
21
|
-
* public static getFileName(): string {
|
|
22
|
-
* return 'myPluginConfigFilename.json';
|
|
23
|
-
* }
|
|
24
|
-
* }
|
|
25
|
-
* const myConfig = await MyPluginConfig.create(ConfigGroup.getOptions('all'));
|
|
26
|
-
* myConfig.setDefaultGroup('myCommand'); // Can be set in your command's init.
|
|
27
|
-
* myConfig.set('mykey', 'myvalue'); // Sets 'myKey' for the 'myCommand' group.
|
|
28
|
-
* myConfig.setInGroup('myKey', 'myvalue', 'all'); // Manually set in another group.
|
|
29
|
-
* await myConfig.write();
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
class ConfigGroup extends configFile_1.ConfigFile {
|
|
33
|
-
constructor() {
|
|
34
|
-
super(...arguments);
|
|
35
|
-
this.defaultGroup = 'default';
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Get ConfigGroup specific options, such as the default group.
|
|
39
|
-
*
|
|
40
|
-
* @param defaultGroup The default group to use when creating the config.
|
|
41
|
-
* @param filename The filename of the config file. Uses the static {@link getFileName} by default.
|
|
42
|
-
*/
|
|
43
|
-
static getOptions(defaultGroup, filename) {
|
|
44
|
-
const options = configFile_1.ConfigFile.getDefaultOptions(true, filename);
|
|
45
|
-
const configGroupOptions = { defaultGroup };
|
|
46
|
-
Object.assign(configGroupOptions, options);
|
|
47
|
-
return configGroupOptions;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Sets the default group for all {@link BaseConfigStore} methods to use.
|
|
51
|
-
* **Throws** *{@link SfError}{ name: 'MissingGroupName' }* The group parameter is null or undefined.
|
|
52
|
-
*
|
|
53
|
-
* @param group The group.
|
|
54
|
-
*/
|
|
55
|
-
setDefaultGroup(group) {
|
|
56
|
-
if (!group) {
|
|
57
|
-
throw new sfError_1.SfError('null or undefined group', 'MissingGroupName');
|
|
58
|
-
}
|
|
59
|
-
this.defaultGroup = group;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Set a group of entries in a bulk save. Returns The new properties that were saved.
|
|
63
|
-
*
|
|
64
|
-
* @param newEntries An object representing the aliases to set.
|
|
65
|
-
* @param group The group the property belongs to.
|
|
66
|
-
*/
|
|
67
|
-
async updateValues(newEntries, group) {
|
|
68
|
-
// Make sure the contents are loaded
|
|
69
|
-
await this.read();
|
|
70
|
-
Object.entries(newEntries).forEach(([key, val]) => this.setInGroup(key, val, group ?? this.defaultGroup));
|
|
71
|
-
await this.write();
|
|
72
|
-
return newEntries;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Set a value on a group. Returns the promise resolved when the value is set.
|
|
76
|
-
*
|
|
77
|
-
* @param key The key.
|
|
78
|
-
* @param value The value.
|
|
79
|
-
* @param group The group.
|
|
80
|
-
*/
|
|
81
|
-
async updateValue(key, value, group) {
|
|
82
|
-
// Make sure the content is loaded
|
|
83
|
-
await this.read();
|
|
84
|
-
this.setInGroup(key, value, group ?? this.defaultGroup);
|
|
85
|
-
// Then save it
|
|
86
|
-
await this.write();
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Gets an array of key value pairs.
|
|
90
|
-
*/
|
|
91
|
-
entries() {
|
|
92
|
-
const group = this.getGroup();
|
|
93
|
-
if (group) {
|
|
94
|
-
return (0, ts_types_1.definiteEntriesOf)(group);
|
|
95
|
-
}
|
|
96
|
-
return [];
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Returns a specified element from ConfigGroup. Returns the associated value.
|
|
100
|
-
*
|
|
101
|
-
* @param key The key.
|
|
102
|
-
*/
|
|
103
|
-
get(key) {
|
|
104
|
-
return this.getInGroup(key);
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Returns a boolean if an element with the specified key exists in the default group.
|
|
108
|
-
*
|
|
109
|
-
* @param {string} key The key.
|
|
110
|
-
*/
|
|
111
|
-
has(key) {
|
|
112
|
-
const group = this.getGroup();
|
|
113
|
-
return !!group && super.has(this.defaultGroup) && !!group[key];
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Returns an array of the keys from the default group.
|
|
117
|
-
*/
|
|
118
|
-
keys() {
|
|
119
|
-
return Object.keys(this.getGroup(this.defaultGroup) ?? {});
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Returns an array of the values from the default group.
|
|
123
|
-
*/
|
|
124
|
-
values() {
|
|
125
|
-
return (0, ts_types_1.definiteValuesOf)(this.getGroup(this.defaultGroup) ?? {});
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Add or updates an element with the specified key in the default group.
|
|
129
|
-
*
|
|
130
|
-
* @param key The key.
|
|
131
|
-
* @param value The value.
|
|
132
|
-
*/
|
|
133
|
-
set(key, value) {
|
|
134
|
-
return this.setInGroup(key, value, this.defaultGroup);
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Removes an element with the specified key from the default group. Returns `true` if the item was deleted.
|
|
138
|
-
*
|
|
139
|
-
* @param key The key.
|
|
140
|
-
*/
|
|
141
|
-
unset(key) {
|
|
142
|
-
const groupContents = this.getGroup(this.defaultGroup);
|
|
143
|
-
if (groupContents) {
|
|
144
|
-
delete groupContents[key];
|
|
145
|
-
return true;
|
|
146
|
-
}
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Remove all key value pairs from the default group.
|
|
151
|
-
*/
|
|
152
|
-
clear() {
|
|
153
|
-
delete this.getContents()[this.defaultGroup];
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Get all config contents for a group.
|
|
157
|
-
*
|
|
158
|
-
* @param {string} [group = 'default'] The group.
|
|
159
|
-
*/
|
|
160
|
-
getGroup(group = this.defaultGroup) {
|
|
161
|
-
return (0, ts_types_1.getJsonMap)(this.getContents(), group) ?? undefined;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Returns the value associated to the key and group, or undefined if there is none.
|
|
165
|
-
*
|
|
166
|
-
* @param key The key.
|
|
167
|
-
* @param group The group. Defaults to the default group.
|
|
168
|
-
*/
|
|
169
|
-
getInGroup(key, group) {
|
|
170
|
-
const groupContents = this.getGroup(group);
|
|
171
|
-
if (groupContents) {
|
|
172
|
-
return groupContents[key];
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Convert the config object to a json object.
|
|
177
|
-
*/
|
|
178
|
-
toObject() {
|
|
179
|
-
return this.getContents();
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Convert an object to a {@link ConfigContents} and set it as the config contents.
|
|
183
|
-
*
|
|
184
|
-
* @param {object} obj The object.
|
|
185
|
-
*/
|
|
186
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
187
|
-
setContentsFromObject(obj) {
|
|
188
|
-
const contents = new Map(Object.entries(obj));
|
|
189
|
-
Array.from(contents.entries()).forEach(([groupKey, groupContents]) => {
|
|
190
|
-
if (groupContents) {
|
|
191
|
-
Object.entries(groupContents).forEach(([contentKey, contentValue]) => {
|
|
192
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
193
|
-
this.setInGroup(contentKey, contentValue, groupKey);
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Sets the value for the key and group in the config object.
|
|
200
|
-
*
|
|
201
|
-
* @param key The key.
|
|
202
|
-
* @param value The value.
|
|
203
|
-
* @param group The group. Uses the default group if not specified.
|
|
204
|
-
*/
|
|
205
|
-
setInGroup(key, value, group) {
|
|
206
|
-
group = group ?? this.defaultGroup;
|
|
207
|
-
if (!super.has(group)) {
|
|
208
|
-
super.set(group, {});
|
|
209
|
-
}
|
|
210
|
-
const content = this.getGroup(group) ?? {};
|
|
211
|
-
this.setMethod(content, key, value);
|
|
212
|
-
return content;
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Initialize the asynchronous dependencies.
|
|
216
|
-
*/
|
|
217
|
-
async init() {
|
|
218
|
-
await super.init();
|
|
219
|
-
if (this.options.defaultGroup) {
|
|
220
|
-
this.setDefaultGroup(this.options.defaultGroup);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
exports.ConfigGroup = ConfigGroup;
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* Licensed under the BSD 3-Clause license.
|
|
6
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ConfigGroup = void 0;
|
|
10
|
+
const ts_types_1 = require("@salesforce/ts-types");
|
|
11
|
+
const sfError_1 = require("../sfError");
|
|
12
|
+
const configFile_1 = require("./configFile");
|
|
13
|
+
/**
|
|
14
|
+
* A config file that stores config values in groups. e.g. to store different config
|
|
15
|
+
* values for different commands, without having manually manipulate the config.
|
|
16
|
+
*
|
|
17
|
+
* **Note:** All config methods are overwritten to use the {@link ConfigGroup.setDefaultGroup}.
|
|
18
|
+
*
|
|
19
|
+
* ```
|
|
20
|
+
* class MyPluginConfig extends ConfigGroup<ConfigGroup.Options> {
|
|
21
|
+
* public static getFileName(): string {
|
|
22
|
+
* return 'myPluginConfigFilename.json';
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* const myConfig = await MyPluginConfig.create(ConfigGroup.getOptions('all'));
|
|
26
|
+
* myConfig.setDefaultGroup('myCommand'); // Can be set in your command's init.
|
|
27
|
+
* myConfig.set('mykey', 'myvalue'); // Sets 'myKey' for the 'myCommand' group.
|
|
28
|
+
* myConfig.setInGroup('myKey', 'myvalue', 'all'); // Manually set in another group.
|
|
29
|
+
* await myConfig.write();
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
class ConfigGroup extends configFile_1.ConfigFile {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(...arguments);
|
|
35
|
+
this.defaultGroup = 'default';
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get ConfigGroup specific options, such as the default group.
|
|
39
|
+
*
|
|
40
|
+
* @param defaultGroup The default group to use when creating the config.
|
|
41
|
+
* @param filename The filename of the config file. Uses the static {@link getFileName} by default.
|
|
42
|
+
*/
|
|
43
|
+
static getOptions(defaultGroup, filename) {
|
|
44
|
+
const options = configFile_1.ConfigFile.getDefaultOptions(true, filename);
|
|
45
|
+
const configGroupOptions = { defaultGroup };
|
|
46
|
+
Object.assign(configGroupOptions, options);
|
|
47
|
+
return configGroupOptions;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Sets the default group for all {@link BaseConfigStore} methods to use.
|
|
51
|
+
* **Throws** *{@link SfError}{ name: 'MissingGroupName' }* The group parameter is null or undefined.
|
|
52
|
+
*
|
|
53
|
+
* @param group The group.
|
|
54
|
+
*/
|
|
55
|
+
setDefaultGroup(group) {
|
|
56
|
+
if (!group) {
|
|
57
|
+
throw new sfError_1.SfError('null or undefined group', 'MissingGroupName');
|
|
58
|
+
}
|
|
59
|
+
this.defaultGroup = group;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Set a group of entries in a bulk save. Returns The new properties that were saved.
|
|
63
|
+
*
|
|
64
|
+
* @param newEntries An object representing the aliases to set.
|
|
65
|
+
* @param group The group the property belongs to.
|
|
66
|
+
*/
|
|
67
|
+
async updateValues(newEntries, group) {
|
|
68
|
+
// Make sure the contents are loaded
|
|
69
|
+
await this.read();
|
|
70
|
+
Object.entries(newEntries).forEach(([key, val]) => this.setInGroup(key, val, group ?? this.defaultGroup));
|
|
71
|
+
await this.write();
|
|
72
|
+
return newEntries;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Set a value on a group. Returns the promise resolved when the value is set.
|
|
76
|
+
*
|
|
77
|
+
* @param key The key.
|
|
78
|
+
* @param value The value.
|
|
79
|
+
* @param group The group.
|
|
80
|
+
*/
|
|
81
|
+
async updateValue(key, value, group) {
|
|
82
|
+
// Make sure the content is loaded
|
|
83
|
+
await this.read();
|
|
84
|
+
this.setInGroup(key, value, group ?? this.defaultGroup);
|
|
85
|
+
// Then save it
|
|
86
|
+
await this.write();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Gets an array of key value pairs.
|
|
90
|
+
*/
|
|
91
|
+
entries() {
|
|
92
|
+
const group = this.getGroup();
|
|
93
|
+
if (group) {
|
|
94
|
+
return (0, ts_types_1.definiteEntriesOf)(group);
|
|
95
|
+
}
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Returns a specified element from ConfigGroup. Returns the associated value.
|
|
100
|
+
*
|
|
101
|
+
* @param key The key.
|
|
102
|
+
*/
|
|
103
|
+
get(key) {
|
|
104
|
+
return this.getInGroup(key);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Returns a boolean if an element with the specified key exists in the default group.
|
|
108
|
+
*
|
|
109
|
+
* @param {string} key The key.
|
|
110
|
+
*/
|
|
111
|
+
has(key) {
|
|
112
|
+
const group = this.getGroup();
|
|
113
|
+
return !!group && super.has(this.defaultGroup) && !!group[key];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns an array of the keys from the default group.
|
|
117
|
+
*/
|
|
118
|
+
keys() {
|
|
119
|
+
return Object.keys(this.getGroup(this.defaultGroup) ?? {});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Returns an array of the values from the default group.
|
|
123
|
+
*/
|
|
124
|
+
values() {
|
|
125
|
+
return (0, ts_types_1.definiteValuesOf)(this.getGroup(this.defaultGroup) ?? {});
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Add or updates an element with the specified key in the default group.
|
|
129
|
+
*
|
|
130
|
+
* @param key The key.
|
|
131
|
+
* @param value The value.
|
|
132
|
+
*/
|
|
133
|
+
set(key, value) {
|
|
134
|
+
return this.setInGroup(key, value, this.defaultGroup);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Removes an element with the specified key from the default group. Returns `true` if the item was deleted.
|
|
138
|
+
*
|
|
139
|
+
* @param key The key.
|
|
140
|
+
*/
|
|
141
|
+
unset(key) {
|
|
142
|
+
const groupContents = this.getGroup(this.defaultGroup);
|
|
143
|
+
if (groupContents) {
|
|
144
|
+
delete groupContents[key];
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Remove all key value pairs from the default group.
|
|
151
|
+
*/
|
|
152
|
+
clear() {
|
|
153
|
+
delete this.getContents()[this.defaultGroup];
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get all config contents for a group.
|
|
157
|
+
*
|
|
158
|
+
* @param {string} [group = 'default'] The group.
|
|
159
|
+
*/
|
|
160
|
+
getGroup(group = this.defaultGroup) {
|
|
161
|
+
return (0, ts_types_1.getJsonMap)(this.getContents(), group) ?? undefined;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Returns the value associated to the key and group, or undefined if there is none.
|
|
165
|
+
*
|
|
166
|
+
* @param key The key.
|
|
167
|
+
* @param group The group. Defaults to the default group.
|
|
168
|
+
*/
|
|
169
|
+
getInGroup(key, group) {
|
|
170
|
+
const groupContents = this.getGroup(group);
|
|
171
|
+
if (groupContents) {
|
|
172
|
+
return groupContents[key];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Convert the config object to a json object.
|
|
177
|
+
*/
|
|
178
|
+
toObject() {
|
|
179
|
+
return this.getContents();
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Convert an object to a {@link ConfigContents} and set it as the config contents.
|
|
183
|
+
*
|
|
184
|
+
* @param {object} obj The object.
|
|
185
|
+
*/
|
|
186
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
187
|
+
setContentsFromObject(obj) {
|
|
188
|
+
const contents = new Map(Object.entries(obj));
|
|
189
|
+
Array.from(contents.entries()).forEach(([groupKey, groupContents]) => {
|
|
190
|
+
if (groupContents) {
|
|
191
|
+
Object.entries(groupContents).forEach(([contentKey, contentValue]) => {
|
|
192
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
193
|
+
this.setInGroup(contentKey, contentValue, groupKey);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Sets the value for the key and group in the config object.
|
|
200
|
+
*
|
|
201
|
+
* @param key The key.
|
|
202
|
+
* @param value The value.
|
|
203
|
+
* @param group The group. Uses the default group if not specified.
|
|
204
|
+
*/
|
|
205
|
+
setInGroup(key, value, group) {
|
|
206
|
+
group = group ?? this.defaultGroup;
|
|
207
|
+
if (!super.has(group)) {
|
|
208
|
+
super.set(group, {});
|
|
209
|
+
}
|
|
210
|
+
const content = this.getGroup(group) ?? {};
|
|
211
|
+
this.setMethod(content, key, value);
|
|
212
|
+
return content;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Initialize the asynchronous dependencies.
|
|
216
|
+
*/
|
|
217
|
+
async init() {
|
|
218
|
+
await super.init();
|
|
219
|
+
if (this.options.defaultGroup) {
|
|
220
|
+
this.setDefaultGroup(this.options.defaultGroup);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
exports.ConfigGroup = ConfigGroup;
|
|
225
225
|
//# sourceMappingURL=configGroup.js.map
|