@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(asyncMap(sd, (item, index) => {
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(asyncMap(dataRepo.data, (item, index) => {
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
- for (let i = array.length - 1; i > -1; i--) {
198
- const r = callback(array[i], i);
199
- if (r instanceof Promise) {
200
- const idx = i;
201
- pending.push(r.then((v) => {
202
- results[idx] = v;
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
- results[i] = r;
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
- for (let i = array.length - 1; i > -1; i--) {
217
- const r = callback(array[i], i);
218
- if (r !== undefined) {
219
- pending.push(r);
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
- for (let i = 0; i < array.length; i++) {
231
- const r = callback(array[i], i);
232
- if (r instanceof Promise) {
233
- const idx = i;
234
- pending.push(r.then((v) => {
235
- results[idx] = v;
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
- results[i] = r;
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
- for (let i = array.length - 1; i > -1; i--) {
250
- const r = callback(array[i], i);
251
- if (r === true) {
252
- return true;
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
- if (r instanceof Promise) {
255
- asyncItems.push({ index: i, promise: r });
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
- for (let i = array.length - 1; i > -1; i--) {
275
- const r = callback(array[i], i);
276
- if (r === false) {
277
- return false;
278
- } // sync short-circuit
279
- if (r instanceof Promise) {
280
- asyncItems.push({ index: i, promise: r });
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
- for (let i = array.length - 1; i > -1; i--) {
301
- const r = callback(array[i], i);
302
- if (r === true) {
303
- filtered.push(i);
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
- else if (r instanceof Promise) {
306
- const idx = i;
307
- pending.push(r.then((v) => {
308
- if (v) {
309
- filtered.push(idx);
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.2",
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",