@lavalogic/scoria 0.21.2 → 0.21.4
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.
|
@@ -237,7 +237,8 @@ export class TableContext {
|
|
|
237
237
|
if (current !== latest_sortedRowModel || !ori.size) {
|
|
238
238
|
return;
|
|
239
239
|
}
|
|
240
|
-
Promise.resolve(
|
|
240
|
+
Promise.resolve()
|
|
241
|
+
.then(() => asyncMap(sd, (item, index) => {
|
|
241
242
|
const rawKey = this._cachedKey(item);
|
|
242
243
|
const finish = (key) => {
|
|
243
244
|
const originalIndex = ori.get(key);
|
|
@@ -276,7 +277,8 @@ export class TableContext {
|
|
|
276
277
|
$effect(() => {
|
|
277
278
|
const dataRepo = this.dataRepo;
|
|
278
279
|
const current = (latest_originalRowIndices = latest_originalRowIndices + 1);
|
|
279
|
-
Promise.resolve(
|
|
280
|
+
Promise.resolve()
|
|
281
|
+
.then(() => asyncMap(dataRepo.data, (item, index) => {
|
|
280
282
|
const raw = this._cachedKey(item);
|
|
281
283
|
if (raw instanceof Promise) {
|
|
282
284
|
return raw.then((key) => [key, index]);
|
|
@@ -194,16 +194,26 @@ export async function asyncSleep(delay) {
|
|
|
194
194
|
export function asyncMap(array, callback) {
|
|
195
195
|
const results = new Array(array.length);
|
|
196
196
|
const pending = [];
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
197
|
+
try {
|
|
198
|
+
for (let i = array.length - 1; i > -1; i--) {
|
|
199
|
+
const r = callback(array[i], i);
|
|
200
|
+
if (r instanceof Promise) {
|
|
201
|
+
const idx = i;
|
|
202
|
+
pending.push(r.then((v) => {
|
|
203
|
+
results[idx] = v;
|
|
204
|
+
}));
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
results[i] = r;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (e) {
|
|
212
|
+
if (e instanceof Error) {
|
|
213
|
+
return Promise.reject(e);
|
|
204
214
|
}
|
|
205
215
|
else {
|
|
206
|
-
|
|
216
|
+
return Promise.reject(new Error(`Async Mapping Error`, { cause: e }));
|
|
207
217
|
}
|
|
208
218
|
}
|
|
209
219
|
if (pending.length === 0) {
|
|
@@ -213,10 +223,20 @@ export function asyncMap(array, callback) {
|
|
|
213
223
|
}
|
|
214
224
|
export function asyncForEach(array, callback) {
|
|
215
225
|
const pending = [];
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
226
|
+
try {
|
|
227
|
+
for (let i = array.length - 1; i > -1; i--) {
|
|
228
|
+
const r = callback(array[i], i);
|
|
229
|
+
if (r !== undefined) {
|
|
230
|
+
pending.push(r);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch (e) {
|
|
235
|
+
if (e instanceof Error) {
|
|
236
|
+
return Promise.reject(e);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
return Promise.reject(new Error(`Async ForEach Error`, { cause: e }));
|
|
220
240
|
}
|
|
221
241
|
}
|
|
222
242
|
if (pending.length === 0) {
|
|
@@ -227,16 +247,26 @@ export function asyncForEach(array, callback) {
|
|
|
227
247
|
export function asyncFlatMap(array, callback) {
|
|
228
248
|
const results = new Array(array.length);
|
|
229
249
|
const pending = [];
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
250
|
+
try {
|
|
251
|
+
for (let i = 0; i < array.length; i++) {
|
|
252
|
+
const r = callback(array[i], i);
|
|
253
|
+
if (r instanceof Promise) {
|
|
254
|
+
const idx = i;
|
|
255
|
+
pending.push(r.then((v) => {
|
|
256
|
+
results[idx] = v;
|
|
257
|
+
}));
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
results[i] = r;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
catch (e) {
|
|
265
|
+
if (e instanceof Error) {
|
|
266
|
+
return Promise.reject(e);
|
|
237
267
|
}
|
|
238
268
|
else {
|
|
239
|
-
|
|
269
|
+
return Promise.reject(new Error(`Async Flat Mapping Error`, { cause: e }));
|
|
240
270
|
}
|
|
241
271
|
}
|
|
242
272
|
if (pending.length === 0) {
|
|
@@ -246,13 +276,23 @@ export function asyncFlatMap(array, callback) {
|
|
|
246
276
|
}
|
|
247
277
|
export function asyncSome(array, callback) {
|
|
248
278
|
const asyncItems = [];
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
279
|
+
try {
|
|
280
|
+
for (let i = array.length - 1; i > -1; i--) {
|
|
281
|
+
const r = callback(array[i], i);
|
|
282
|
+
if (r === true) {
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
if (r instanceof Promise) {
|
|
286
|
+
asyncItems.push({ index: i, promise: r });
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
catch (e) {
|
|
291
|
+
if (e instanceof Error) {
|
|
292
|
+
return Promise.reject(e);
|
|
253
293
|
}
|
|
254
|
-
|
|
255
|
-
|
|
294
|
+
else {
|
|
295
|
+
return Promise.reject(new Error(`Async Some Error`, { cause: e }));
|
|
256
296
|
}
|
|
257
297
|
}
|
|
258
298
|
if (asyncItems.length === 0) {
|
|
@@ -271,15 +311,25 @@ export function asyncAll(array, callback) {
|
|
|
271
311
|
return true;
|
|
272
312
|
}
|
|
273
313
|
const asyncItems = [];
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
314
|
+
try {
|
|
315
|
+
for (let i = array.length - 1; i > -1; i--) {
|
|
316
|
+
const r = callback(array[i], i);
|
|
317
|
+
if (r === false) {
|
|
318
|
+
return false;
|
|
319
|
+
} // sync short-circuit
|
|
320
|
+
if (r instanceof Promise) {
|
|
321
|
+
asyncItems.push({ index: i, promise: r });
|
|
322
|
+
}
|
|
323
|
+
// r === true: continue
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
catch (e) {
|
|
327
|
+
if (e instanceof Error) {
|
|
328
|
+
return Promise.reject(e);
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
return Promise.reject(new Error(`Async All/Every Error`, { cause: e }));
|
|
281
332
|
}
|
|
282
|
-
// r === true: continue
|
|
283
333
|
}
|
|
284
334
|
if (asyncItems.length === 0) {
|
|
285
335
|
return true;
|
|
@@ -297,18 +347,28 @@ export const asyncEvery = asyncAll;
|
|
|
297
347
|
export function asyncFilterIndices(array, callback) {
|
|
298
348
|
const filtered = [];
|
|
299
349
|
const pending = [];
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
350
|
+
try {
|
|
351
|
+
for (let i = array.length - 1; i > -1; i--) {
|
|
352
|
+
const r = callback(array[i], i);
|
|
353
|
+
if (r === true) {
|
|
354
|
+
filtered.push(i);
|
|
355
|
+
}
|
|
356
|
+
else if (r instanceof Promise) {
|
|
357
|
+
const idx = i;
|
|
358
|
+
pending.push(r.then((v) => {
|
|
359
|
+
if (v) {
|
|
360
|
+
filtered.push(idx);
|
|
361
|
+
}
|
|
362
|
+
}));
|
|
363
|
+
}
|
|
304
364
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
}));
|
|
365
|
+
}
|
|
366
|
+
catch (e) {
|
|
367
|
+
if (e instanceof Error) {
|
|
368
|
+
return Promise.reject(e);
|
|
369
|
+
}
|
|
370
|
+
else {
|
|
371
|
+
return Promise.reject(new Error(`Filtering Error`, { cause: e }));
|
|
312
372
|
}
|
|
313
373
|
}
|
|
314
374
|
if (pending.length === 0) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lavalogic/scoria",
|
|
3
3
|
"description": "Svelte components used for the FloWMS Web Frontend",
|
|
4
|
-
"version": "0.21.
|
|
4
|
+
"version": "0.21.4",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "restricted"
|
|
7
7
|
},
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"prettier": "^3.8.1",
|
|
59
59
|
"prettier-plugin-svelte": "^3.5.1",
|
|
60
60
|
"publint": "^0.3.18",
|
|
61
|
-
"sass": "^1.98.0",
|
|
61
|
+
"sass-embedded": "^1.98.0",
|
|
62
62
|
"storybook": "^10.2.19",
|
|
63
63
|
"svelte": "^5.53.12",
|
|
64
64
|
"svelte-check": "^4.4.5",
|