@livestore/utils 0.0.54-dev.21 → 0.0.54-dev.22
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/.tsbuildinfo.json +1 -1
- package/dist/effect/Effect.d.ts.map +1 -1
- package/dist/effect/Effect.js +5 -2
- package/dist/effect/Effect.js.map +1 -1
- package/dist/effect/Schema.d.ts +7 -1
- package/dist/effect/Schema.d.ts.map +1 -1
- package/dist/effect/Schema.js +24 -0
- package/dist/effect/Schema.js.map +1 -1
- package/dist/effect/Stream.d.ts +2 -0
- package/dist/effect/Stream.d.ts.map +1 -1
- package/dist/effect/Stream.js +11 -1
- package/dist/effect/Stream.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -16
- package/dist/index.js.map +1 -1
- package/dist/misc.d.ts +2 -0
- package/dist/misc.d.ts.map +1 -0
- package/dist/misc.js +13 -0
- package/dist/misc.js.map +1 -0
- package/package.json +2 -2
- package/src/effect/Effect.ts +8 -3
- package/src/effect/Schema.ts +26 -1
- package/src/effect/Stream.ts +37 -1
- package/src/index.ts +8 -18
- package/src/misc.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAS,QAAQ,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAK9C,cAAc,eAAe,CAAA;AAE7B,eAAO,MAAM,GAAG,eAAgB,CAAC,WAAW,GAAG,EAAE,KAAG,OAAO,MAAM,CAAC,IAAI,CAGlE,CAAA;AAEJ,eAAO,MAAM,OAAO,eAAgB,CAAC,WAAW,GAAG,EAAE,KAAG,OAAO,MAAM,CAAC,IAAI,CAGtE,CAAA;AAEJ,eAAO,MAAM,QAAQ,eAAgB,CAAC,WAAW,GAAG,EAAE,KAAG,OAAO,MAAM,CAAC,IAAI,CAGvE,CAAA;
|
|
1
|
+
{"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAS,QAAQ,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAK9C,cAAc,eAAe,CAAA;AAE7B,eAAO,MAAM,GAAG,eAAgB,CAAC,WAAW,GAAG,EAAE,KAAG,OAAO,MAAM,CAAC,IAAI,CAGlE,CAAA;AAEJ,eAAO,MAAM,OAAO,eAAgB,CAAC,WAAW,GAAG,EAAE,KAAG,OAAO,MAAM,CAAC,IAAI,CAGtE,CAAA;AAEJ,eAAO,MAAM,QAAQ,eAAgB,CAAC,WAAW,GAAG,EAAE,KAAG,OAAO,MAAM,CAAC,IAAI,CAGvE,CAAA;AAKJ,sCAAsC;AACtC,eAAO,MAAM,iBAAiB,iBAAkB,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAY1F,CAAA;AAEJ,eAAO,MAAM,OAAO,aACP,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,iBAChB,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CACL,CAAA;AAEvD,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,OAAO,MAAM,CAAC,QAAQ,OAAO,CAAC,KAAK,CAAC,CAI5E,CAAA;AAEH,eAAO,MAAM,UAAU,gBACP;IAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,SAAS,aAAa,CAAA;CAAE,qBAC1D,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CACb,CAAA;AAEnD,eAAO,MAAM,aAAa,YACd;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,aAAa,CAAA;CAAE,qBAC7C,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAK3D,CAAA;AAEL,eAAO,MAAM,gBAAgB,iBACtB,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC1B,OAAO,MAAM,CAAC,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAU/C,CAAA;AAEH,eAAO,MAAM,sBAAsB,gBACnB,MAAM,oBACL,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAS1D,CAAA"}
|
package/dist/effect/Effect.js
CHANGED
|
@@ -11,13 +11,16 @@ export const logWarn = (message, ...rest) => Effect.sync(() => {
|
|
|
11
11
|
export const logError = (message, ...rest) => Effect.sync(() => {
|
|
12
12
|
console.error(message, ...rest);
|
|
13
13
|
});
|
|
14
|
+
const getThreadName = () => isNonEmptyString(self.name) ? self.name : typeof window === 'object' ? 'Browser Main Thread' : 'unknown-thread';
|
|
14
15
|
/** Logs both on errors and defects */
|
|
15
16
|
export const tapCauseLogPretty = (eff) => Effect.tapErrorCause(eff, (err) => {
|
|
16
17
|
if (Cause.isInterruptedOnly(err)) {
|
|
17
18
|
return Effect.void;
|
|
18
19
|
}
|
|
19
|
-
const threadName =
|
|
20
|
-
|
|
20
|
+
const threadName = getThreadName();
|
|
21
|
+
// const prettyError = (err as any).error ? (err as any).error.toString() : Cause.pretty(err)
|
|
22
|
+
const prettyError = Cause.pretty(err);
|
|
23
|
+
return logError(`Error on ${threadName}:`, prettyError);
|
|
21
24
|
});
|
|
22
25
|
export const tapSync = (tapFn) => (eff) => Effect.tap(eff, (a) => Effect.sync(() => tapFn(a)));
|
|
23
26
|
export const debugLogEnv = (msg) => pipe(Effect.context(), Effect.tap((env) => log(msg ?? 'debugLogEnv', env)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAGtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,cAAc,eAAe,CAAA;AAE7B,MAAM,CAAC,MAAM,GAAG,GAAG,CAAI,OAAU,EAAE,GAAG,IAAW,EAAuB,EAAE,CACxE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,OAAU,EAAE,GAAG,IAAW,EAAuB,EAAE,CAC5E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,OAAU,EAAE,GAAG,IAAW,EAAuB,EAAE,CAC7E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;AACjC,CAAC,CAAC,CAAA;AAEJ,sCAAsC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAU,GAA2B,EAA0B,EAAE,CAChG,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;IAChC,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"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"}
|
package/dist/effect/Schema.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Schema } from '@effect/schema';
|
|
2
2
|
export * from '@effect/schema/Schema';
|
|
3
3
|
export declare const hash: (schema: Schema.Schema<any>) => number;
|
|
4
|
+
declare const AnyError_base: Schema.transform<Schema.Struct<{
|
|
5
|
+
message: typeof Schema.String;
|
|
6
|
+
stack: typeof Schema.String;
|
|
7
|
+
}>, typeof Schema.Any>;
|
|
8
|
+
export declare class AnyError extends AnyError_base {
|
|
9
|
+
}
|
|
4
10
|
//# sourceMappingURL=Schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/effect/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/effect/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAKvC,cAAc,uBAAuB,CAAA;AAKrC,eAAO,MAAM,IAAI,WAAY,OAAO,MAAM,CAAC,GAAG,CAAC,WAS9C,CAAA;;;;;AAOD,qBAAa,QAAS,SAAQ,aAgB5B;CAAG"}
|
package/dist/effect/Schema.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { Schema } from '@effect/schema';
|
|
1
2
|
import { Hash } from 'effect';
|
|
3
|
+
import { objectToString } from '../misc.js';
|
|
2
4
|
export * from '@effect/schema/Schema';
|
|
3
5
|
// NOTE this is a temporary workaround until Effect schema has a better way to hash schemas
|
|
4
6
|
// https://github.com/Effect-TS/effect/issues/2719
|
|
@@ -12,4 +14,26 @@ export const hash = (schema) => {
|
|
|
12
14
|
return Hash.hash(schema.ast.toString());
|
|
13
15
|
}
|
|
14
16
|
};
|
|
17
|
+
const errorStructSchema = Schema.Struct({
|
|
18
|
+
message: Schema.String,
|
|
19
|
+
stack: Schema.String,
|
|
20
|
+
});
|
|
21
|
+
export class AnyError extends Schema.transform(errorStructSchema, Schema.Any, {
|
|
22
|
+
decode: (errorStruct) => {
|
|
23
|
+
const { message, stack } = errorStruct;
|
|
24
|
+
const previousLimit = Error.stackTraceLimit;
|
|
25
|
+
Error.stackTraceLimit = 0;
|
|
26
|
+
// eslint-disable-next-line unicorn/error-message
|
|
27
|
+
const error = new Error('');
|
|
28
|
+
Error.stackTraceLimit = previousLimit;
|
|
29
|
+
error.message = message;
|
|
30
|
+
error.stack = stack;
|
|
31
|
+
return error;
|
|
32
|
+
},
|
|
33
|
+
encode: (anyError) => ({
|
|
34
|
+
message: objectToString(anyError).replace(/^Error: /, ''),
|
|
35
|
+
stack: anyError.stack,
|
|
36
|
+
}),
|
|
37
|
+
}) {
|
|
38
|
+
}
|
|
15
39
|
//# sourceMappingURL=Schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/effect/Schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/effect/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,cAAc,uBAAuB,CAAA;AAErC,2FAA2F;AAC3F,kDAAkD;AAClD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAA0B,EAAE,EAAE;IACjD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CACV,qIAAqI,CACtI,CAAA;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACzC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,CAAA;AAEF,MAAM,OAAO,QAAS,SAAQ,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,EAAE;IAC5E,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE;QACtB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,CAAA;QACtC,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,CAAA;QAC3C,KAAK,CAAC,eAAe,GAAG,CAAC,CAAA;QACzB,iDAAiD;QACjD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3B,KAAK,CAAC,eAAe,GAAG,aAAa,CAAA;QACrC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;QACvB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;QACnB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrB,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QACzD,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;CACH,CAAC;CAAG"}
|
package/dist/effect/Stream.d.ts
CHANGED
|
@@ -4,4 +4,6 @@ import { Effect, Stream } from 'effect';
|
|
|
4
4
|
export declare const tapLog: <R, E, A>(stream: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>;
|
|
5
5
|
export declare const tapSync: <A>(tapFn: (a: A) => unknown) => <R, E>(stream: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>;
|
|
6
6
|
export declare const tapChunk: <R1, E1, A, Z>(f: (a: Chunk.Chunk<A>) => Effect.Effect<Z, E1, R1>) => <R, E>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E1 | E, R1 | R>;
|
|
7
|
+
export declare const skipRepeated: <A>(isEqual?: (prevEl: A, newEl: A) => boolean) => <R, E>(stream: Stream.Stream<A, E, R>) => Stream.Stream<A, E, R>;
|
|
8
|
+
export declare const skipRepeated_: <R, E, A>(stream: Stream.Stream<A, E, R>, isEqual?: (prevEl: A, newEl: A) => boolean) => Stream.Stream<A, E, R>;
|
|
7
9
|
//# sourceMappingURL=Stream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../src/effect/Stream.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAE7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../src/effect/Stream.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAE7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,MAAM,EAAqB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE1D,eAAO,MAAM,MAAM,oBAAqB,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CACU,CAAA;AAEhG,eAAO,MAAM,OAAO,aACP,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,oBACb,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CACL,CAAA;AAE1D,eAAO,MAAM,QAAQ,oBACD,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,kBACpD,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAMlE,CAAA;AAIL,eAAO,MAAM,YAAY,gBACV,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,oBAC9B,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAC7B,CAAA;AAElC,eAAO,MAAM,aAAa,oBAChB,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YACrB,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,KACxC,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAwBrB,CAAA"}
|
package/dist/effect/Stream.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
export * from 'effect/Stream';
|
|
2
|
-
import { Effect, pipe, Stream } from 'effect';
|
|
2
|
+
import { Effect, Option, pipe, Ref, Stream } from 'effect';
|
|
3
3
|
export const tapLog = (stream) => tapChunk(Effect.forEach((_) => Effect.succeed(console.log(_))))(stream);
|
|
4
4
|
export const tapSync = (tapFn) => (stream) => Stream.tap(stream, (a) => Effect.sync(() => tapFn(a)));
|
|
5
5
|
export const tapChunk = (f) => (self) => Stream.mapChunksEffect(self, (chunks) => pipe(f(chunks), Effect.map(() => chunks)));
|
|
6
|
+
const isIdentity = (a1, a2) => a1 === a2;
|
|
7
|
+
export const skipRepeated = (isEqual = isIdentity) => (stream) => skipRepeated_(stream, isEqual);
|
|
8
|
+
export const skipRepeated_ = (stream, isEqual = isIdentity) => pipe(Ref.make(Option.none()), Stream.fromEffect, Stream.flatMap((ref) => pipe(stream, Stream.filterEffect((el) => pipe(Ref.get(ref), Effect.flatMap((prevEl) => {
|
|
9
|
+
if (prevEl._tag === 'None' || isEqual(prevEl.value, el) === false) {
|
|
10
|
+
return pipe(Ref.set(ref, Option.some(el)), Effect.map(() => true));
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
return Effect.succeed(false);
|
|
14
|
+
}
|
|
15
|
+
}))))));
|
|
6
16
|
//# sourceMappingURL=Stream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../src/effect/Stream.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAG7B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../src/effect/Stream.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAG7B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE1D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAU,MAA8B,EAA0B,EAAE,CACxF,QAAQ,CAAwB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhG,MAAM,CAAC,MAAM,OAAO,GAClB,CAAI,KAAwB,EAAE,EAAE,CAChC,CAAO,MAA8B,EAA0B,EAAE,CAC/D,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1D,MAAM,CAAC,MAAM,QAAQ,GACnB,CAAe,CAAkD,EAAE,EAAE,CACrE,CAAO,IAA4B,EAAoC,EAAE,CACvE,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACtC,IAAI,CACF,CAAC,CAAC,MAAM,CAAC,EACT,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CACzB,CACF,CAAA;AAEL,MAAM,UAAU,GAAG,CAAI,EAAK,EAAE,EAAK,EAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAA;AAE1D,MAAM,CAAC,MAAM,YAAY,GACvB,CAAI,UAA4C,UAAU,EAAE,EAAE,CAC9D,CAAO,MAA8B,EAA0B,EAAE,CAC/D,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAElC,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAA8B,EAC9B,UAA4C,UAAU,EAC9B,EAAE,CAC1B,IAAI,CACF,GAAG,CAAC,IAAI,CAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,EACzC,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACrB,IAAI,CACF,MAAM,EACN,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CACzB,IAAI,CACF,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EACZ,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IACxB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;QAClE,OAAO,IAAI,CACT,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACvB,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC,CAAC,CACH,CACF,CACF,CACF,CACF,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from './NoopTracer.js';
|
|
|
7
7
|
export * from './set.js';
|
|
8
8
|
export * from './browser.js';
|
|
9
9
|
export * from './Deferred.js';
|
|
10
|
+
export * from './misc.js';
|
|
10
11
|
export * as base64 from './base64.js';
|
|
11
12
|
export { default as prettyBytes } from 'pretty-bytes';
|
|
12
13
|
import type * as otel from '@opentelemetry/api';
|
|
@@ -39,8 +40,6 @@ export declare const debugCatch: <T>(try_: () => T) => T;
|
|
|
39
40
|
export declare const recRemoveUndefinedValues: (val: any) => void;
|
|
40
41
|
export declare const debugDeepCopy: <T>(val: T) => T;
|
|
41
42
|
export declare const prop: <T extends {}, K extends keyof T>(key: K) => (obj: T) => T[K];
|
|
42
|
-
export declare const objectToString: (error: any) => string;
|
|
43
|
-
export declare const errorToString: (error: any) => string;
|
|
44
43
|
export declare const capitalizeFirstLetter: (str: string) => string;
|
|
45
44
|
export declare const isReadonlyArray: <I, T>(value: ReadonlyArray<I> | T) => value is readonly I[];
|
|
46
45
|
/**
|
|
@@ -71,7 +70,8 @@ export declare const assertTag: <TObj extends {
|
|
|
71
70
|
}>;
|
|
72
71
|
export declare const memoizeByStringifyArgs: <T extends (...args: any[]) => any>(fn: T) => T;
|
|
73
72
|
export declare const memoizeByRef: <T extends (arg: any) => any>(fn: T) => T;
|
|
74
|
-
export declare const isNonEmptyString: (str: string | undefined | null) =>
|
|
73
|
+
export declare const isNonEmptyString: (str: string | undefined | null) => str is string;
|
|
75
74
|
export declare const isPromise: (value: any) => value is Promise<unknown>;
|
|
76
75
|
export declare const isIterable: <T>(value: any) => value is Iterable<T>;
|
|
76
|
+
export { objectToString as errorToString } from './misc.js';
|
|
77
77
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AAErD,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,8 +7,10 @@ export * from './NoopTracer.js';
|
|
|
7
7
|
export * from './set.js';
|
|
8
8
|
export * from './browser.js';
|
|
9
9
|
export * from './Deferred.js';
|
|
10
|
+
export * from './misc.js';
|
|
10
11
|
export * as base64 from './base64.js';
|
|
11
12
|
export { default as prettyBytes } from 'pretty-bytes';
|
|
13
|
+
import { objectToString } from './misc.js';
|
|
12
14
|
export * as dateFns from 'date-fns';
|
|
13
15
|
export const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
14
16
|
export const ref = (val) => ({ current: val });
|
|
@@ -43,21 +45,6 @@ export const recRemoveUndefinedValues = (val) => {
|
|
|
43
45
|
};
|
|
44
46
|
export const debugDeepCopy = (val) => JSON.parse(JSON.stringify(val));
|
|
45
47
|
export const prop = (key) => (obj) => obj[key];
|
|
46
|
-
export const objectToString = (error) => {
|
|
47
|
-
const stack = error.stack;
|
|
48
|
-
const str = error.toString();
|
|
49
|
-
const stackStr = stack ? `\n${stack}` : '';
|
|
50
|
-
if (str !== '[object Object]')
|
|
51
|
-
return str + stackStr;
|
|
52
|
-
try {
|
|
53
|
-
return JSON.stringify({ ...error, stack }, null, 2);
|
|
54
|
-
}
|
|
55
|
-
catch (e) {
|
|
56
|
-
console.log(error);
|
|
57
|
-
return 'Error while printing error: ' + e;
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
export const errorToString = objectToString;
|
|
61
48
|
export const capitalizeFirstLetter = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
|
62
49
|
export const isReadonlyArray = (value) => Array.isArray(value);
|
|
63
50
|
/**
|
|
@@ -170,7 +157,10 @@ export const memoizeByRef = (fn) => {
|
|
|
170
157
|
return result;
|
|
171
158
|
});
|
|
172
159
|
};
|
|
173
|
-
export const isNonEmptyString = (str) =>
|
|
160
|
+
export const isNonEmptyString = (str) => {
|
|
161
|
+
return typeof str === 'string' && str.length > 0;
|
|
162
|
+
};
|
|
174
163
|
export const isPromise = (value) => typeof value?.then === 'function';
|
|
175
164
|
export const isIterable = (value) => typeof value?.[Symbol.iterator] === 'function';
|
|
165
|
+
export { objectToString as errorToString } from './misc.js';
|
|
176
166
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AAIrD,OAAO,KAAK,OAAO,MAAM,UAAU,CAAA;AAoBnC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAEtF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAI,GAAM,EAAkB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAyB,EAAQ,EAAE;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,EAAE,CAAC,CAAC,CAAC,CAAA;IACP,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,IAAa,EAAK,EAAE;IAChD,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAA;IACf,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,QAAQ,CAAA;QACR,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAQ,EAAQ,EAAE;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;IACvC,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YACpC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,GAAM,EAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9E,MAAM,CAAC,MAAM,IAAI,GACf,CAAkC,GAAM,EAAE,EAAE,CAC5C,CAAC,GAAM,EAAQ,EAAE,CACf,GAAG,CAAC,GAAG,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/misc.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,UAAW,GAAG,KAAG,MAW3C,CAAA"}
|
package/dist/misc.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const objectToString = (error) => {
|
|
2
|
+
const str = error?.toString();
|
|
3
|
+
if (str !== '[object Object]')
|
|
4
|
+
return str;
|
|
5
|
+
try {
|
|
6
|
+
return JSON.stringify(error, null, 2);
|
|
7
|
+
}
|
|
8
|
+
catch (e) {
|
|
9
|
+
console.log(error);
|
|
10
|
+
return 'Error while printing error: ' + e;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=misc.js.map
|
package/dist/misc.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAU,EAAU,EAAE;IACnD,MAAM,GAAG,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAA;IAC7B,IAAI,GAAG,KAAK,iBAAiB;QAAE,OAAO,GAAG,CAAA;IAEzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,8BAA8B,GAAG,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/utils",
|
|
3
|
-
"version": "0.0.54-dev.
|
|
3
|
+
"version": "0.0.54-dev.22",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"date-fns": "^3.6.0",
|
|
36
36
|
"otel-websocket-exporter": "^0.0.29",
|
|
37
37
|
"pretty-bytes": "^6.1.1",
|
|
38
|
-
"effect-db-schema": "0.0.54-dev.
|
|
38
|
+
"effect-db-schema": "0.0.54-dev.22"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"@effect/experimental": "^0.16.24",
|
package/src/effect/Effect.ts
CHANGED
|
@@ -22,6 +22,9 @@ export const logError = <A>(message: A, ...rest: any[]): Effect.Effect<void> =>
|
|
|
22
22
|
console.error(message, ...rest)
|
|
23
23
|
})
|
|
24
24
|
|
|
25
|
+
const getThreadName = () =>
|
|
26
|
+
isNonEmptyString(self.name) ? self.name : typeof window === 'object' ? 'Browser Main Thread' : 'unknown-thread'
|
|
27
|
+
|
|
25
28
|
/** Logs both on errors and defects */
|
|
26
29
|
export const tapCauseLogPretty = <R, E, A>(eff: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
|
|
27
30
|
Effect.tapErrorCause(eff, (err) => {
|
|
@@ -29,10 +32,12 @@ export const tapCauseLogPretty = <R, E, A>(eff: Effect.Effect<A, E, R>): Effect.
|
|
|
29
32
|
return Effect.void
|
|
30
33
|
}
|
|
31
34
|
|
|
32
|
-
const threadName =
|
|
33
|
-
|
|
35
|
+
const threadName = getThreadName()
|
|
36
|
+
|
|
37
|
+
// const prettyError = (err as any).error ? (err as any).error.toString() : Cause.pretty(err)
|
|
38
|
+
const prettyError = Cause.pretty(err)
|
|
34
39
|
|
|
35
|
-
return logError(`Error on ${threadName}
|
|
40
|
+
return logError(`Error on ${threadName}:`, prettyError)
|
|
36
41
|
})
|
|
37
42
|
|
|
38
43
|
export const tapSync =
|
package/src/effect/Schema.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Schema } from '@effect/schema'
|
|
2
2
|
import { Hash } from 'effect'
|
|
3
3
|
|
|
4
|
+
import { objectToString } from '../misc.js'
|
|
5
|
+
|
|
4
6
|
export * from '@effect/schema/Schema'
|
|
5
7
|
|
|
6
8
|
// NOTE this is a temporary workaround until Effect schema has a better way to hash schemas
|
|
@@ -16,3 +18,26 @@ export const hash = (schema: Schema.Schema<any>) => {
|
|
|
16
18
|
return Hash.hash(schema.ast.toString())
|
|
17
19
|
}
|
|
18
20
|
}
|
|
21
|
+
|
|
22
|
+
const errorStructSchema = Schema.Struct({
|
|
23
|
+
message: Schema.String,
|
|
24
|
+
stack: Schema.String,
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
export class AnyError extends Schema.transform(errorStructSchema, Schema.Any, {
|
|
28
|
+
decode: (errorStruct) => {
|
|
29
|
+
const { message, stack } = errorStruct
|
|
30
|
+
const previousLimit = Error.stackTraceLimit
|
|
31
|
+
Error.stackTraceLimit = 0
|
|
32
|
+
// eslint-disable-next-line unicorn/error-message
|
|
33
|
+
const error = new Error('')
|
|
34
|
+
Error.stackTraceLimit = previousLimit
|
|
35
|
+
error.message = message
|
|
36
|
+
error.stack = stack
|
|
37
|
+
return error
|
|
38
|
+
},
|
|
39
|
+
encode: (anyError) => ({
|
|
40
|
+
message: objectToString(anyError).replace(/^Error: /, ''),
|
|
41
|
+
stack: anyError.stack,
|
|
42
|
+
}),
|
|
43
|
+
}) {}
|
package/src/effect/Stream.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from 'effect/Stream'
|
|
2
2
|
|
|
3
3
|
import type { Chunk } from 'effect'
|
|
4
|
-
import { Effect, pipe, Stream } from 'effect'
|
|
4
|
+
import { Effect, Option, pipe, Ref, Stream } from 'effect'
|
|
5
5
|
|
|
6
6
|
export const tapLog = <R, E, A>(stream: Stream.Stream<A, E, R>): Stream.Stream<A, E, R> =>
|
|
7
7
|
tapChunk<never, never, A, void>(Effect.forEach((_) => Effect.succeed(console.log(_))))(stream)
|
|
@@ -20,3 +20,39 @@ export const tapChunk =
|
|
|
20
20
|
Effect.map(() => chunks),
|
|
21
21
|
),
|
|
22
22
|
)
|
|
23
|
+
|
|
24
|
+
const isIdentity = <A>(a1: A, a2: A): boolean => a1 === a2
|
|
25
|
+
|
|
26
|
+
export const skipRepeated =
|
|
27
|
+
<A>(isEqual: (prevEl: A, newEl: A) => boolean = isIdentity) =>
|
|
28
|
+
<R, E>(stream: Stream.Stream<A, E, R>): Stream.Stream<A, E, R> =>
|
|
29
|
+
skipRepeated_(stream, isEqual)
|
|
30
|
+
|
|
31
|
+
export const skipRepeated_ = <R, E, A>(
|
|
32
|
+
stream: Stream.Stream<A, E, R>,
|
|
33
|
+
isEqual: (prevEl: A, newEl: A) => boolean = isIdentity,
|
|
34
|
+
): Stream.Stream<A, E, R> =>
|
|
35
|
+
pipe(
|
|
36
|
+
Ref.make<Option.Option<A>>(Option.none()),
|
|
37
|
+
Stream.fromEffect,
|
|
38
|
+
Stream.flatMap((ref) =>
|
|
39
|
+
pipe(
|
|
40
|
+
stream,
|
|
41
|
+
Stream.filterEffect((el) =>
|
|
42
|
+
pipe(
|
|
43
|
+
Ref.get(ref),
|
|
44
|
+
Effect.flatMap((prevEl) => {
|
|
45
|
+
if (prevEl._tag === 'None' || isEqual(prevEl.value, el) === false) {
|
|
46
|
+
return pipe(
|
|
47
|
+
Ref.set(ref, Option.some(el)),
|
|
48
|
+
Effect.map(() => true),
|
|
49
|
+
)
|
|
50
|
+
} else {
|
|
51
|
+
return Effect.succeed(false)
|
|
52
|
+
}
|
|
53
|
+
}),
|
|
54
|
+
),
|
|
55
|
+
),
|
|
56
|
+
),
|
|
57
|
+
),
|
|
58
|
+
)
|
package/src/index.ts
CHANGED
|
@@ -7,11 +7,14 @@ export * from './NoopTracer.js'
|
|
|
7
7
|
export * from './set.js'
|
|
8
8
|
export * from './browser.js'
|
|
9
9
|
export * from './Deferred.js'
|
|
10
|
+
export * from './misc.js'
|
|
10
11
|
export * as base64 from './base64.js'
|
|
11
12
|
export { default as prettyBytes } from 'pretty-bytes'
|
|
12
13
|
|
|
13
14
|
import type * as otel from '@opentelemetry/api'
|
|
14
15
|
|
|
16
|
+
import { objectToString } from './misc.js'
|
|
17
|
+
|
|
15
18
|
export * as dateFns from 'date-fns'
|
|
16
19
|
|
|
17
20
|
export type Prettify<T> = T extends infer U ? { [K in keyof U]: Prettify<U[K]> } : never
|
|
@@ -72,23 +75,6 @@ export const prop =
|
|
|
72
75
|
(obj: T): T[K] =>
|
|
73
76
|
obj[key]
|
|
74
77
|
|
|
75
|
-
export const objectToString = (error: any): string => {
|
|
76
|
-
const stack = error.stack
|
|
77
|
-
const str = error.toString()
|
|
78
|
-
const stackStr = stack ? `\n${stack}` : ''
|
|
79
|
-
if (str !== '[object Object]') return str + stackStr
|
|
80
|
-
|
|
81
|
-
try {
|
|
82
|
-
return JSON.stringify({ ...error, stack }, null, 2)
|
|
83
|
-
} catch (e: any) {
|
|
84
|
-
console.log(error)
|
|
85
|
-
|
|
86
|
-
return 'Error while printing error: ' + e
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export const errorToString = objectToString
|
|
91
|
-
|
|
92
78
|
export const capitalizeFirstLetter = (str: string): string => str.charAt(0).toUpperCase() + str.slice(1)
|
|
93
79
|
|
|
94
80
|
export const isReadonlyArray = <I, T>(value: ReadonlyArray<I> | T): value is ReadonlyArray<I> => Array.isArray(value)
|
|
@@ -236,8 +222,12 @@ export const memoizeByRef = <T extends (arg: any) => any>(fn: T): T => {
|
|
|
236
222
|
}) as any
|
|
237
223
|
}
|
|
238
224
|
|
|
239
|
-
export const isNonEmptyString = (str: string | undefined | null)
|
|
225
|
+
export const isNonEmptyString = (str: string | undefined | null): str is string => {
|
|
226
|
+
return typeof str === 'string' && str.length > 0
|
|
227
|
+
}
|
|
240
228
|
|
|
241
229
|
export const isPromise = (value: any): value is Promise<unknown> => typeof value?.then === 'function'
|
|
242
230
|
|
|
243
231
|
export const isIterable = <T>(value: any): value is Iterable<T> => typeof value?.[Symbol.iterator] === 'function'
|
|
232
|
+
|
|
233
|
+
export { objectToString as errorToString } from './misc.js'
|
package/src/misc.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const objectToString = (error: any): string => {
|
|
2
|
+
const str = error?.toString()
|
|
3
|
+
if (str !== '[object Object]') return str
|
|
4
|
+
|
|
5
|
+
try {
|
|
6
|
+
return JSON.stringify(error, null, 2)
|
|
7
|
+
} catch (e: any) {
|
|
8
|
+
console.log(error)
|
|
9
|
+
|
|
10
|
+
return 'Error while printing error: ' + e
|
|
11
|
+
}
|
|
12
|
+
}
|