repository-provider 32.3.1 → 32.3.2

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.
Files changed (2) hide show
  1. package/package.json +4 -4
  2. package/src/attribute.mjs +20 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "repository-provider",
3
- "version": "32.3.1",
3
+ "version": "32.3.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -35,12 +35,12 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "ava": "^5.1.0",
38
- "browser-ava": "^1.3.7",
38
+ "browser-ava": "^1.3.9",
39
39
  "c8": "^7.12.0",
40
40
  "documentation": "^14.0.0",
41
- "repository-provider-test-support": "^2.2.20",
41
+ "repository-provider-test-support": "^2.2.21",
42
42
  "semantic-release": "^19.0.5",
43
- "typescript": "^4.8.4"
43
+ "typescript": "^4.9.4"
44
44
  },
45
45
  "engines": {
46
46
  "node": ">=16.18.1"
package/src/attribute.mjs CHANGED
@@ -143,17 +143,30 @@ export function defaultValues(attributes, object) {
143
143
  * @param {any} value
144
144
  */
145
145
  export function setAttribute(object, name, value) {
146
- const parts = name.split(/\./);
147
- const last = parts.pop();
148
146
 
149
- for (const p of parts) {
150
- if (object[p] === undefined || typeof object[p] !== "object") {
151
- object[p] = {};
147
+ let lastObject = object;
148
+ let lastKey;
149
+
150
+ for (const token of tokens(name)) {
151
+ switch (token) {
152
+ case ".":
153
+ case "[":
154
+ case "]":
155
+ break;
156
+
157
+ default:
158
+ if (object[token] === undefined || typeof object[token] !== "object") {
159
+ object[token] = {};
160
+ }
161
+
162
+ lastObject = object;
163
+ lastKey = token;
164
+
165
+ object = object[token];
152
166
  }
153
- object = object[p];
154
167
  }
155
168
 
156
- object[last] = value;
169
+ lastObject[lastKey] = value;
157
170
  }
158
171
 
159
172
  /**