@flowgram.ai/utils 0.1.0-alpha.3 → 0.1.0-alpha.30
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 +62 -40
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.mts +181 -21
- package/dist/index.d.ts +181 -21
- package/dist/index.js +66 -43
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
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,13 +1377,29 @@ 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
|
-
var
|
|
1402
|
+
var Emitter = class {
|
|
1366
1403
|
constructor() {
|
|
1367
1404
|
this._disposed = false;
|
|
1368
1405
|
}
|
|
@@ -1370,15 +1407,12 @@ 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 = [];
|
|
1377
1414
|
}
|
|
1378
1415
|
const finalListener = thisArgs ? listener.bind(thisArgs) : listener;
|
|
1379
|
-
if (this._listeners.length >= _Emitter.LEAK_WARNING_THRESHHOLD) {
|
|
1380
|
-
console.warn(`[Emitter] Listeners length >= ${_Emitter.LEAK_WARNING_THRESHHOLD}`);
|
|
1381
|
-
}
|
|
1382
1416
|
this._listeners.push(finalListener);
|
|
1383
1417
|
const eventDisposable = {
|
|
1384
1418
|
dispose: () => {
|
|
@@ -1411,25 +1445,8 @@ var _Emitter = class _Emitter {
|
|
|
1411
1445
|
this._disposed = true;
|
|
1412
1446
|
}
|
|
1413
1447
|
};
|
|
1414
|
-
_Emitter.LEAK_WARNING_THRESHHOLD = 175;
|
|
1415
|
-
var Emitter = _Emitter;
|
|
1416
1448
|
|
|
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 = {}));
|
|
1449
|
+
// src/disposable-collection.ts
|
|
1433
1450
|
var DisposableImpl = class {
|
|
1434
1451
|
constructor() {
|
|
1435
1452
|
this.toDispose = new DisposableCollection();
|
|
@@ -1451,6 +1468,9 @@ var DisposableCollection = class {
|
|
|
1451
1468
|
this._disposed = false;
|
|
1452
1469
|
toDispose.forEach((d) => this.push(d));
|
|
1453
1470
|
}
|
|
1471
|
+
get length() {
|
|
1472
|
+
return this.disposables.length;
|
|
1473
|
+
}
|
|
1454
1474
|
get onDispose() {
|
|
1455
1475
|
return this.onDisposeEmitter.event;
|
|
1456
1476
|
}
|
|
@@ -1474,25 +1494,26 @@ var DisposableCollection = class {
|
|
|
1474
1494
|
}
|
|
1475
1495
|
push(disposable) {
|
|
1476
1496
|
if (this.disposed) return Disposable.NULL;
|
|
1497
|
+
if (disposable === Disposable.NULL) {
|
|
1498
|
+
return Disposable.NULL;
|
|
1499
|
+
}
|
|
1477
1500
|
const { disposables } = this;
|
|
1478
|
-
if (disposables.find((d) => d
|
|
1501
|
+
if (disposables.find((d) => d === disposable)) {
|
|
1479
1502
|
return Disposable.NULL;
|
|
1480
1503
|
}
|
|
1481
|
-
|
|
1504
|
+
const originalDispose = disposable.dispose;
|
|
1482
1505
|
const toRemove = Disposable.create(() => {
|
|
1483
|
-
const index = disposables.indexOf(
|
|
1506
|
+
const index = disposables.indexOf(disposable);
|
|
1484
1507
|
if (index !== -1) {
|
|
1485
1508
|
disposables.splice(index, 1);
|
|
1486
1509
|
}
|
|
1510
|
+
disposable.dispose = originalDispose;
|
|
1487
1511
|
});
|
|
1488
|
-
|
|
1489
|
-
dispose
|
|
1490
|
-
|
|
1491
|
-
disposable.dispose();
|
|
1492
|
-
},
|
|
1493
|
-
_origin: disposable
|
|
1512
|
+
disposable.dispose = () => {
|
|
1513
|
+
toRemove.dispose();
|
|
1514
|
+
disposable.dispose();
|
|
1494
1515
|
};
|
|
1495
|
-
disposables.push(
|
|
1516
|
+
disposables.push(disposable);
|
|
1496
1517
|
return toRemove;
|
|
1497
1518
|
}
|
|
1498
1519
|
pushAll(disposables) {
|
|
@@ -2486,6 +2507,7 @@ export {
|
|
|
2486
2507
|
reduce,
|
|
2487
2508
|
requestWithMemo,
|
|
2488
2509
|
retry,
|
|
2510
|
+
safeKey,
|
|
2489
2511
|
setByKey,
|
|
2490
2512
|
useRefresh,
|
|
2491
2513
|
values
|