@flowgram.ai/utils 0.1.0-alpha.2 → 0.1.0-alpha.21
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/dist/esm/index.js +61 -34
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.mts +181 -20
- package/dist/index.d.ts +181 -20
- package/dist/index.js +65 -37
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
package/dist/esm/index.js
CHANGED
|
@@ -1275,6 +1275,27 @@ var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
|
1275
1275
|
function notEmpty(arg) {
|
|
1276
1276
|
return arg !== void 0 && arg !== null;
|
|
1277
1277
|
}
|
|
1278
|
+
var safeKey = (key) => {
|
|
1279
|
+
const dangerousProps = [
|
|
1280
|
+
"__proto__",
|
|
1281
|
+
"constructor",
|
|
1282
|
+
"prototype",
|
|
1283
|
+
"__defineGetter__",
|
|
1284
|
+
"__defineSetter__",
|
|
1285
|
+
"__lookupGetter__",
|
|
1286
|
+
"__lookupSetter__",
|
|
1287
|
+
"hasOwnProperty",
|
|
1288
|
+
"isPrototypeOf",
|
|
1289
|
+
"propertyIsEnumerable",
|
|
1290
|
+
"toString",
|
|
1291
|
+
"valueOf",
|
|
1292
|
+
"toLocaleString"
|
|
1293
|
+
];
|
|
1294
|
+
if (dangerousProps.includes(key.toLowerCase())) {
|
|
1295
|
+
return "";
|
|
1296
|
+
}
|
|
1297
|
+
return key;
|
|
1298
|
+
};
|
|
1278
1299
|
function isEmpty(arg) {
|
|
1279
1300
|
return keys(arg).length === 0 && arg.constructor === Object;
|
|
1280
1301
|
}
|
|
@@ -1306,18 +1327,18 @@ function setByKey(target, key, newValue, autoCreateObject = true, clone = false)
|
|
|
1306
1327
|
while (targetKeys.length > 0) {
|
|
1307
1328
|
key = targetKeys.shift();
|
|
1308
1329
|
if (targetKeys.length === 0) {
|
|
1309
|
-
target[key] = newValue;
|
|
1330
|
+
target[safeKey(key)] = newValue;
|
|
1310
1331
|
return originTarget;
|
|
1311
1332
|
}
|
|
1312
1333
|
if (typeof target[key] !== "object") {
|
|
1313
1334
|
if (!autoCreateObject) return originTarget;
|
|
1314
|
-
target[key] = {};
|
|
1335
|
+
target[safeKey(key)] = {};
|
|
1315
1336
|
}
|
|
1316
1337
|
if (clone) {
|
|
1317
1338
|
if (Array.isArray(target[key])) {
|
|
1318
|
-
target[key] = target[key].slice();
|
|
1339
|
+
target[safeKey(key)] = target[key].slice();
|
|
1319
1340
|
} else {
|
|
1320
|
-
target[key] = { ...target[key] };
|
|
1341
|
+
target[safeKey(key)] = { ...target[key] };
|
|
1321
1342
|
}
|
|
1322
1343
|
}
|
|
1323
1344
|
target = target[key];
|
|
@@ -1356,11 +1377,27 @@ function isNumber(v) {
|
|
|
1356
1377
|
return typeof v === "number" || isObject(v) && getTag(v) === "[object Number]";
|
|
1357
1378
|
}
|
|
1358
1379
|
|
|
1380
|
+
// src/disposable.ts
|
|
1381
|
+
var Disposable;
|
|
1382
|
+
((Disposable2) => {
|
|
1383
|
+
function is(thing) {
|
|
1384
|
+
return typeof thing === "object" && thing !== null && typeof thing.dispose === "function";
|
|
1385
|
+
}
|
|
1386
|
+
Disposable2.is = is;
|
|
1387
|
+
function create(func) {
|
|
1388
|
+
return {
|
|
1389
|
+
dispose: func
|
|
1390
|
+
};
|
|
1391
|
+
}
|
|
1392
|
+
Disposable2.create = create;
|
|
1393
|
+
Disposable2.NULL = Object.freeze(create(() => {
|
|
1394
|
+
}));
|
|
1395
|
+
})(Disposable || (Disposable = {}));
|
|
1396
|
+
|
|
1359
1397
|
// src/event.ts
|
|
1360
|
-
var DisposableNULL = Object.freeze({ dispose: NOOP });
|
|
1361
1398
|
var Event;
|
|
1362
|
-
((
|
|
1363
|
-
|
|
1399
|
+
((Event3) => {
|
|
1400
|
+
Event3.None = () => Disposable.NULL;
|
|
1364
1401
|
})(Event || (Event = {}));
|
|
1365
1402
|
var _Emitter = class _Emitter {
|
|
1366
1403
|
constructor() {
|
|
@@ -1370,7 +1407,7 @@ var _Emitter = class _Emitter {
|
|
|
1370
1407
|
if (!this._event) {
|
|
1371
1408
|
this._event = (listener, thisArgs) => {
|
|
1372
1409
|
if (this._disposed) {
|
|
1373
|
-
return
|
|
1410
|
+
return Disposable.NULL;
|
|
1374
1411
|
}
|
|
1375
1412
|
if (!this._listeners) {
|
|
1376
1413
|
this._listeners = [];
|
|
@@ -1414,22 +1451,7 @@ var _Emitter = class _Emitter {
|
|
|
1414
1451
|
_Emitter.LEAK_WARNING_THRESHHOLD = 175;
|
|
1415
1452
|
var Emitter = _Emitter;
|
|
1416
1453
|
|
|
1417
|
-
// src/disposable.ts
|
|
1418
|
-
var Disposable;
|
|
1419
|
-
((Disposable2) => {
|
|
1420
|
-
function is(thing) {
|
|
1421
|
-
return typeof thing === "object" && thing !== null && typeof thing.dispose === "function";
|
|
1422
|
-
}
|
|
1423
|
-
Disposable2.is = is;
|
|
1424
|
-
function create(func) {
|
|
1425
|
-
return {
|
|
1426
|
-
dispose: func
|
|
1427
|
-
};
|
|
1428
|
-
}
|
|
1429
|
-
Disposable2.create = create;
|
|
1430
|
-
Disposable2.NULL = Object.freeze(create(() => {
|
|
1431
|
-
}));
|
|
1432
|
-
})(Disposable || (Disposable = {}));
|
|
1454
|
+
// src/disposable-collection.ts
|
|
1433
1455
|
var DisposableImpl = class {
|
|
1434
1456
|
constructor() {
|
|
1435
1457
|
this.toDispose = new DisposableCollection();
|
|
@@ -1451,6 +1473,9 @@ var DisposableCollection = class {
|
|
|
1451
1473
|
this._disposed = false;
|
|
1452
1474
|
toDispose.forEach((d) => this.push(d));
|
|
1453
1475
|
}
|
|
1476
|
+
get length() {
|
|
1477
|
+
return this.disposables.length;
|
|
1478
|
+
}
|
|
1454
1479
|
get onDispose() {
|
|
1455
1480
|
return this.onDisposeEmitter.event;
|
|
1456
1481
|
}
|
|
@@ -1474,25 +1499,26 @@ var DisposableCollection = class {
|
|
|
1474
1499
|
}
|
|
1475
1500
|
push(disposable) {
|
|
1476
1501
|
if (this.disposed) return Disposable.NULL;
|
|
1502
|
+
if (disposable === Disposable.NULL) {
|
|
1503
|
+
return Disposable.NULL;
|
|
1504
|
+
}
|
|
1477
1505
|
const { disposables } = this;
|
|
1478
|
-
if (disposables.find((d) => d
|
|
1506
|
+
if (disposables.find((d) => d === disposable)) {
|
|
1479
1507
|
return Disposable.NULL;
|
|
1480
1508
|
}
|
|
1481
|
-
|
|
1509
|
+
const originalDispose = disposable.dispose;
|
|
1482
1510
|
const toRemove = Disposable.create(() => {
|
|
1483
|
-
const index = disposables.indexOf(
|
|
1511
|
+
const index = disposables.indexOf(disposable);
|
|
1484
1512
|
if (index !== -1) {
|
|
1485
1513
|
disposables.splice(index, 1);
|
|
1486
1514
|
}
|
|
1515
|
+
disposable.dispose = originalDispose;
|
|
1487
1516
|
});
|
|
1488
|
-
|
|
1489
|
-
dispose
|
|
1490
|
-
|
|
1491
|
-
disposable.dispose();
|
|
1492
|
-
},
|
|
1493
|
-
_origin: disposable
|
|
1517
|
+
disposable.dispose = () => {
|
|
1518
|
+
toRemove.dispose();
|
|
1519
|
+
disposable.dispose();
|
|
1494
1520
|
};
|
|
1495
|
-
disposables.push(
|
|
1521
|
+
disposables.push(disposable);
|
|
1496
1522
|
return toRemove;
|
|
1497
1523
|
}
|
|
1498
1524
|
pushAll(disposables) {
|
|
@@ -2486,6 +2512,7 @@ export {
|
|
|
2486
2512
|
reduce,
|
|
2487
2513
|
requestWithMemo,
|
|
2488
2514
|
retry,
|
|
2515
|
+
safeKey,
|
|
2489
2516
|
setByKey,
|
|
2490
2517
|
useRefresh,
|
|
2491
2518
|
values
|