@livestore/utils 0.3.2-dev.0 → 0.3.2-dev.10
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/NoopTracer.d.ts.map +1 -1
- package/dist/NoopTracer.js.map +1 -1
- package/dist/base64.d.ts.map +1 -1
- package/dist/base64.js +0 -1
- package/dist/base64.js.map +1 -1
- package/dist/bun/mod.d.ts +0 -2
- package/dist/bun/mod.d.ts.map +1 -1
- package/dist/bun/mod.js +0 -6
- package/dist/bun/mod.js.map +1 -1
- package/dist/cuid/cuid.browser.d.ts.map +1 -1
- package/dist/cuid/cuid.browser.js +0 -1
- package/dist/cuid/cuid.browser.js.map +1 -1
- package/dist/cuid/cuid.node.d.ts.map +1 -1
- package/dist/cuid/cuid.node.js +0 -1
- package/dist/cuid/cuid.node.js.map +1 -1
- package/dist/effect/Effect.d.ts.map +1 -1
- package/dist/effect/Effect.js +3 -3
- package/dist/effect/Effect.js.map +1 -1
- package/dist/effect/Scheduler.d.ts.map +1 -1
- package/dist/effect/Scheduler.js +0 -1
- package/dist/effect/Scheduler.js.map +1 -1
- package/dist/effect/Schema/debug-diff.test.js +1 -1
- package/dist/effect/Schema/index.d.ts +2 -2
- package/dist/effect/Schema/index.js +3 -3
- package/dist/effect/Schema/index.js.map +1 -1
- package/dist/effect/Subscribable.d.ts.map +1 -1
- package/dist/effect/Subscribable.js +2 -3
- package/dist/effect/Subscribable.js.map +1 -1
- package/dist/effect/WebChannel/WebChannel.d.ts +3 -3
- package/dist/effect/WebChannel/WebChannel.js +5 -5
- package/dist/effect/WebChannel/WebChannel.test.js +1 -1
- package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts +2 -2
- package/dist/effect/WebChannel/broadcastChannelWithAck.js +2 -2
- package/dist/effect/WebChannel/mod.d.ts +3 -3
- package/dist/effect/WebChannel/mod.d.ts.map +1 -1
- package/dist/effect/WebChannel/mod.js +3 -3
- package/dist/effect/WebChannel/mod.js.map +1 -1
- package/dist/effect/WebLock.js.map +1 -1
- package/dist/effect/WebSocket.test.js +1 -1
- package/dist/effect/index.d.ts +22 -23
- package/dist/effect/index.d.ts.map +1 -1
- package/dist/effect/index.js +25 -26
- package/dist/effect/index.js.map +1 -1
- package/dist/env.js +1 -1
- package/dist/fast-deep-equal.d.ts.map +1 -1
- package/dist/fast-deep-equal.js +0 -1
- package/dist/fast-deep-equal.js.map +1 -1
- package/dist/global.d.ts +3 -0
- package/dist/global.d.ts.map +1 -1
- package/dist/global.js.map +1 -1
- package/dist/index.d.ts +83 -42
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -16
- package/dist/index.js.map +1 -1
- package/dist/misc.d.ts.map +1 -1
- package/dist/misc.js +0 -1
- package/dist/misc.js.map +1 -1
- package/dist/mod.d.ts +82 -0
- package/dist/mod.d.ts.map +1 -0
- package/dist/mod.js +167 -0
- package/dist/mod.js.map +1 -0
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js +2 -2
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts +2 -2
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js +3 -3
- package/dist/node/mod.d.ts +4 -4
- package/dist/node/mod.d.ts.map +1 -1
- package/dist/node/mod.js +5 -5
- package/dist/node/mod.js.map +1 -1
- package/dist/object/index.d.ts +3 -2
- package/dist/object/index.d.ts.map +1 -1
- package/dist/object/index.js +3 -2
- package/dist/object/index.js.map +1 -1
- package/dist/object/stringify-object.d.ts +9 -0
- package/dist/object/stringify-object.d.ts.map +1 -0
- package/dist/object/stringify-object.js +27 -0
- package/dist/object/stringify-object.js.map +1 -0
- package/dist/object/stringify-object.test.d.ts +2 -0
- package/dist/object/stringify-object.test.d.ts.map +1 -0
- package/dist/object/stringify-object.test.js +38 -0
- package/dist/object/stringify-object.test.js.map +1 -0
- package/package.json +9 -35
- package/src/NoopTracer.ts +0 -1
- package/src/base64.ts +0 -1
- package/src/bun/mod.ts +0 -8
- package/src/cuid/cuid.browser.ts +0 -1
- package/src/cuid/cuid.node.ts +0 -1
- package/src/effect/Effect.ts +6 -3
- package/src/effect/Scheduler.ts +0 -1
- package/src/effect/Schema/debug-diff.test.ts +2 -2
- package/src/effect/Schema/index.ts +3 -3
- package/src/effect/Subscribable.ts +6 -5
- package/src/effect/WebChannel/WebChannel.test.ts +1 -1
- package/src/effect/WebChannel/WebChannel.ts +5 -5
- package/src/effect/WebChannel/broadcastChannelWithAck.ts +3 -3
- package/src/effect/WebChannel/mod.ts +3 -3
- package/src/effect/WebLock.ts +1 -1
- package/src/effect/WebSocket.test.ts +1 -1
- package/src/effect/index.ts +104 -110
- package/src/env.ts +1 -1
- package/src/fast-deep-equal.ts +0 -2
- package/src/global.ts +4 -0
- package/src/misc.ts +0 -1
- package/src/{index.ts → mod.ts} +21 -16
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts +3 -3
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts +3 -3
- package/src/node/mod.ts +6 -6
- package/src/object/index.ts +3 -2
- package/src/object/stringify-object.test.ts +44 -0
- package/src/object/stringify-object.ts +27 -0
package/dist/mod.js
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
export { default as prettyBytes } from 'pretty-bytes';
|
|
2
|
+
export * as base64 from "./base64.js";
|
|
3
|
+
export * from "./browser.js";
|
|
4
|
+
export * from "./Deferred.js";
|
|
5
|
+
export * from "./env.js";
|
|
6
|
+
export * from "./fast-deep-equal.js";
|
|
7
|
+
export * from "./guards.js";
|
|
8
|
+
export * from "./misc.js";
|
|
9
|
+
export * from "./NoopTracer.js";
|
|
10
|
+
export * from "./object/index.js";
|
|
11
|
+
export * from "./promise.js";
|
|
12
|
+
export * from "./set.js";
|
|
13
|
+
export * from "./string.js";
|
|
14
|
+
export * from "./time.js";
|
|
15
|
+
import { objectToString } from "./misc.js";
|
|
16
|
+
export const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
17
|
+
export const ref = (val) => ({ current: val });
|
|
18
|
+
export const times = (n, fn) => {
|
|
19
|
+
for (let i = 0; i < n; i++) {
|
|
20
|
+
fn(i);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export const debugCatch = (try_) => {
|
|
24
|
+
try {
|
|
25
|
+
return try_();
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
// biome-ignore lint/suspicious/noDebugger: debugging
|
|
29
|
+
debugger;
|
|
30
|
+
throw e;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
export const recRemoveUndefinedValues = (val) => {
|
|
34
|
+
if (Array.isArray(val)) {
|
|
35
|
+
val.forEach(recRemoveUndefinedValues);
|
|
36
|
+
}
|
|
37
|
+
else if (typeof val === 'object') {
|
|
38
|
+
Object.keys(val).forEach((key) => {
|
|
39
|
+
if (val[key] === undefined) {
|
|
40
|
+
delete val[key];
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
recRemoveUndefinedValues(val[key]);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Replace non-alphanumeric characters with a dash.
|
|
50
|
+
*/
|
|
51
|
+
export const sluggify = (str, separator = '-') => str.replace(/[^a-zA-Z0-9]/g, separator);
|
|
52
|
+
export const prop = (key) => (obj) => obj[key];
|
|
53
|
+
export const capitalizeFirstLetter = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
|
54
|
+
export const isReadonlyArray = (value) => Array.isArray(value);
|
|
55
|
+
/**
|
|
56
|
+
* Use this to make assertion at end of if-else chain that all members of a
|
|
57
|
+
* union have been accounted for.
|
|
58
|
+
*/
|
|
59
|
+
export function casesHandled(unexpectedCase) {
|
|
60
|
+
// biome-ignore lint/suspicious/noDebugger: debugging
|
|
61
|
+
debugger;
|
|
62
|
+
throw new Error(`A case was not handled for value: ${truncate(objectToString(unexpectedCase), 1000)}`);
|
|
63
|
+
}
|
|
64
|
+
export const assertNever = (failIfFalse, msg) => {
|
|
65
|
+
if (failIfFalse === false) {
|
|
66
|
+
// biome-ignore lint/suspicious/noDebugger: debugging
|
|
67
|
+
debugger;
|
|
68
|
+
throw new Error(`This should never happen: ${msg}`);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
export const debuggerPipe = (val) => {
|
|
72
|
+
// biome-ignore lint/suspicious/noDebugger: debugging
|
|
73
|
+
debugger;
|
|
74
|
+
return val;
|
|
75
|
+
};
|
|
76
|
+
const truncate = (str, length) => {
|
|
77
|
+
if (str.length > length) {
|
|
78
|
+
return `${str.slice(0, length)}...`;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return str;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
export const notYetImplemented = (msg) => {
|
|
85
|
+
// biome-ignore lint/suspicious/noDebugger: debugging
|
|
86
|
+
debugger;
|
|
87
|
+
throw new Error(`Not yet implemented: ${msg}`);
|
|
88
|
+
};
|
|
89
|
+
export const noop = () => { };
|
|
90
|
+
export const unwrapThunk = (_) => {
|
|
91
|
+
if (typeof _ === 'function') {
|
|
92
|
+
return _();
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
return _;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
/** `end` is not included */
|
|
99
|
+
export const range = (start, end) => {
|
|
100
|
+
const length = end - start;
|
|
101
|
+
return Array.from({ length }, (_, i) => start + i);
|
|
102
|
+
};
|
|
103
|
+
export const throttle = (fn, ms) => {
|
|
104
|
+
let shouldWait = false;
|
|
105
|
+
let shouldCallAgain = false;
|
|
106
|
+
const timeoutFunc = () => {
|
|
107
|
+
if (shouldCallAgain) {
|
|
108
|
+
fn();
|
|
109
|
+
shouldCallAgain = false;
|
|
110
|
+
setTimeout(timeoutFunc, ms);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
shouldWait = false;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
return () => {
|
|
117
|
+
if (shouldWait) {
|
|
118
|
+
shouldCallAgain = true;
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
fn();
|
|
122
|
+
shouldWait = true;
|
|
123
|
+
setTimeout(timeoutFunc, ms);
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
export const getTraceParentHeader = (parentSpan) => {
|
|
127
|
+
const spanContext = parentSpan.spanContext();
|
|
128
|
+
// Format: {version}-{trace_id}-{span_id}-{trace_flags}
|
|
129
|
+
// https://www.w3.org/TR/trace-context/#examples-of-http-traceparent-headers
|
|
130
|
+
return `00-${spanContext.traceId}-${spanContext.spanId}-01`;
|
|
131
|
+
};
|
|
132
|
+
export const assertTag = (obj, tag) => {
|
|
133
|
+
if (obj._tag !== tag) {
|
|
134
|
+
throw new Error(`Expected tag ${tag} but got ${obj._tag}`);
|
|
135
|
+
}
|
|
136
|
+
return obj;
|
|
137
|
+
};
|
|
138
|
+
export const memoizeByStringifyArgs = (fn) => {
|
|
139
|
+
const cache = new Map();
|
|
140
|
+
return ((...args) => {
|
|
141
|
+
const key = JSON.stringify(args);
|
|
142
|
+
if (cache.has(key)) {
|
|
143
|
+
return cache.get(key);
|
|
144
|
+
}
|
|
145
|
+
const result = fn(...args);
|
|
146
|
+
cache.set(key, result);
|
|
147
|
+
return result;
|
|
148
|
+
});
|
|
149
|
+
};
|
|
150
|
+
export const memoizeByRef = (fn) => {
|
|
151
|
+
const cache = new Map();
|
|
152
|
+
return ((arg) => {
|
|
153
|
+
if (cache.has(arg)) {
|
|
154
|
+
return cache.get(arg);
|
|
155
|
+
}
|
|
156
|
+
const result = fn(arg);
|
|
157
|
+
cache.set(arg, result);
|
|
158
|
+
return result;
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
export const isNonEmptyString = (str) => {
|
|
162
|
+
return typeof str === 'string' && str.length > 0;
|
|
163
|
+
};
|
|
164
|
+
export const isPromise = (value) => typeof value?.then === 'function';
|
|
165
|
+
export const isIterable = (value) => typeof value?.[Symbol.iterator] === 'function';
|
|
166
|
+
export { objectToString as errorToString } from "./misc.js";
|
|
167
|
+
//# sourceMappingURL=mod.js.map
|
package/dist/mod.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import * as ChildProcess from 'node:child_process';
|
|
|
3
3
|
import * as EffectWorker from '@effect/platform/Worker';
|
|
4
4
|
import { assert, describe, it } from '@effect/vitest';
|
|
5
5
|
import { Chunk, Effect, Stream } from 'effect';
|
|
6
|
-
import * as ChildProcessWorker from
|
|
7
|
-
import { GetPersonById, GetUserById, InitialMessage, Person, User } from
|
|
6
|
+
import * as ChildProcessWorker from "../ChildProcessWorker.js";
|
|
7
|
+
import { GetPersonById, GetUserById, InitialMessage, Person, User } from "./schema.js";
|
|
8
8
|
const WorkerLive = ChildProcessWorker.layer(() => ChildProcess.fork(new URL('../../../../dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js', import.meta.url)));
|
|
9
9
|
// const WorkerLive = NodeWorker.layer(
|
|
10
10
|
// () =>
|
|
@@ -28,9 +28,9 @@ declare const Person_base: Schema.Class<Person, {
|
|
|
28
28
|
name: typeof Schema.String;
|
|
29
29
|
data: typeof Schema.Uint8Array;
|
|
30
30
|
}>, never, {
|
|
31
|
-
readonly id: number;
|
|
32
|
-
} & {
|
|
33
31
|
readonly data: Uint8Array<ArrayBufferLike>;
|
|
32
|
+
} & {
|
|
33
|
+
readonly id: number;
|
|
34
34
|
} & {
|
|
35
35
|
readonly name: string;
|
|
36
36
|
}, {}, {}>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as Runner from '@effect/platform/WorkerRunner';
|
|
2
2
|
import { Context, Effect, Layer, Option, Stream } from 'effect';
|
|
3
3
|
// import { NodeRuntime, NodeWorkerRunner } from '@effect/platform-node'
|
|
4
|
-
import { PlatformNode } from
|
|
5
|
-
import * as ChildProcessRunner from
|
|
6
|
-
import { Person, User, WorkerMessage } from
|
|
4
|
+
import { PlatformNode } from "../../mod.js";
|
|
5
|
+
import * as ChildProcessRunner from "../ChildProcessRunner.js";
|
|
6
|
+
import { Person, User, WorkerMessage } from "./schema.js";
|
|
7
7
|
const Name = Context.GenericTag('Name');
|
|
8
8
|
const WorkerLive = Runner.layerSerialized(WorkerMessage, {
|
|
9
9
|
GetPersonById: (req) => {
|
package/dist/node/mod.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Effect, Layer } from 'effect';
|
|
2
|
-
import { OtelTracer, UnknownError } from '../effect/index.
|
|
2
|
+
import { OtelTracer, UnknownError } from '../effect/index.ts';
|
|
3
3
|
export * as Cli from '@effect/cli';
|
|
4
|
-
export * as PlatformNode from '@effect/platform-node';
|
|
5
4
|
export * as SocketServer from '@effect/platform/SocketServer';
|
|
6
|
-
export * as
|
|
7
|
-
export * as
|
|
5
|
+
export * as PlatformNode from '@effect/platform-node';
|
|
6
|
+
export * as ChildProcessRunner from './ChildProcessRunner/ChildProcessRunner.ts';
|
|
7
|
+
export * as ChildProcessWorker from './ChildProcessRunner/ChildProcessWorker.ts';
|
|
8
8
|
export declare const getFreePort: Effect.Effect<number, UnknownError, never>;
|
|
9
9
|
export declare const OtelLiveDummy: Layer.Layer<OtelTracer.OtelTracer>;
|
|
10
10
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/node/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAErD,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAChF,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAOhF,eAAO,MAAM,WAAW,4CAuBtB,CAAA;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAQ3D,CAAA"}
|
package/dist/node/mod.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as http from 'node:http';
|
|
2
2
|
import { Effect, Layer } from 'effect';
|
|
3
|
-
import { OtelTracer, UnknownError } from
|
|
4
|
-
import { makeNoopTracer } from
|
|
3
|
+
import { OtelTracer, UnknownError } from "../effect/index.js";
|
|
4
|
+
import { makeNoopTracer } from "../NoopTracer.js";
|
|
5
5
|
export * as Cli from '@effect/cli';
|
|
6
|
-
export * as PlatformNode from '@effect/platform-node';
|
|
7
6
|
export * as SocketServer from '@effect/platform/SocketServer';
|
|
8
|
-
export * as
|
|
9
|
-
export * as
|
|
7
|
+
export * as PlatformNode from '@effect/platform-node';
|
|
8
|
+
export * as ChildProcessRunner from "./ChildProcessRunner/ChildProcessRunner.js";
|
|
9
|
+
export * as ChildProcessWorker from "./ChildProcessRunner/ChildProcessWorker.js";
|
|
10
10
|
// Enable debug logging for OpenTelemetry
|
|
11
11
|
// otel.diag.setLogger(new otel.DiagConsoleLogger(), otel.DiagLogLevel.ERROR)
|
|
12
12
|
// export const OtelLiveHttp = (args: any): Layer.Layer<never> => Layer.empty
|
package/dist/node/mod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAErD,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAChF,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAEhF,yCAAyC;AACzC,6EAA6E;AAE7E,6EAA6E;AAE7E,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;IAElC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,KAAK,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,4CAA4C;IAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;QACpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAEhC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YACzB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAuC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;IAClF,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAA;IAE7E,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CACvF,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CACnC,CAAA;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAC,CAAA"}
|
package/dist/object/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
1
|
+
export * from './omit.ts';
|
|
2
|
+
export * from './pick.ts';
|
|
3
|
+
export * from './stringify-object.ts';
|
|
3
4
|
type ValueOfRecord<R extends Record<any, any>> = R extends Record<any, infer V> ? V : never;
|
|
4
5
|
export declare const mapObjectValues: <O_In extends Record<string, any>, V_Out>(obj: O_In, mapValue: (key: keyof O_In, val: ValueOfRecord<O_In>) => V_Out) => { [K in keyof O_In]: V_Out; };
|
|
5
6
|
export type Entries<T> = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AAErC,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE3F,eAAO,MAAM,eAAe,GAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EACrE,KAAK,IAAI,EACT,UAAU,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,KAAK,KAC7D,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,KAAK,GAG5B,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;AAEjE,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,KAAG,OAAO,CAAC,CAAC,CAAsC,CAAA;AAErH,eAAO,MAAM,mBAAmB,GAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,IAAI,KAAG,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,CAAC,GAI9F,CAAA"}
|
package/dist/object/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { pipe } from 'effect';
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
2
|
+
export * from "./omit.js";
|
|
3
|
+
export * from "./pick.js";
|
|
4
|
+
export * from "./stringify-object.js";
|
|
4
5
|
export const mapObjectValues = (obj, mapValue) => {
|
|
5
6
|
const mappedEntries = Object.entries(obj).map(([key, val]) => [key, mapValue(key, val)]);
|
|
6
7
|
return Object.fromEntries(mappedEntries);
|
package/dist/object/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AAIrC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,GAAS,EACT,QAA8D,EAChC,EAAE;IAChC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAiB,EAAE,GAAG,CAAC,CAAU,CAAC,CAAA;IAC/G,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,CAAQ,CAAA;AACjD,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,aAAa,GAAG,CAAgC,GAAM,EAAc,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAe,CAAA;AAErH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAmC,GAAS,EAA4B,EAAE,CAC3G,IAAI,CACF,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACvC,MAAM,CAAC,WAAW,CACZ,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stringifies object into the following format:
|
|
3
|
+
*
|
|
4
|
+
* `prop1=value prop2=value prop3.key1=value prop3.key2=value prop4.key1=[value1, value2]`
|
|
5
|
+
*
|
|
6
|
+
* This is useful for logging and debugging.
|
|
7
|
+
*/
|
|
8
|
+
export declare const stringifyObject: (obj: object, prefix?: string) => string;
|
|
9
|
+
//# sourceMappingURL=stringify-object.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify-object.d.ts","sourceRoot":"","sources":["../../src/object/stringify-object.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,eAAW,KAAG,MAmB1D,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stringifies object into the following format:
|
|
3
|
+
*
|
|
4
|
+
* `prop1=value prop2=value prop3.key1=value prop3.key2=value prop4.key1=[value1, value2]`
|
|
5
|
+
*
|
|
6
|
+
* This is useful for logging and debugging.
|
|
7
|
+
*/
|
|
8
|
+
export const stringifyObject = (obj, prefix = '') => {
|
|
9
|
+
const entries = [];
|
|
10
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
11
|
+
const fullKey = prefix !== '' ? `${prefix}.${key}` : key;
|
|
12
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
13
|
+
// Recursively stringify nested objects with dot notation
|
|
14
|
+
entries.push(stringifyObject(value, fullKey));
|
|
15
|
+
}
|
|
16
|
+
else if (Array.isArray(value)) {
|
|
17
|
+
// Arrays get converted to comma-separated values
|
|
18
|
+
entries.push(`${fullKey}=${value.join(',')}`);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
// Primitive values
|
|
22
|
+
entries.push(`${fullKey}=${value}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return entries.join(' ');
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=stringify-object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify-object.js","sourceRoot":"","sources":["../../src/object/stringify-object.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,MAAM,GAAG,EAAE,EAAU,EAAE;IAClE,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAExD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,yDAAyD;YACzD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QAC/C,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,iDAAiD;YACjD,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/C,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify-object.test.d.ts","sourceRoot":"","sources":["../../src/object/stringify-object.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { stringifyObject } from "./stringify-object.js";
|
|
3
|
+
describe('stringifyObject', () => {
|
|
4
|
+
it('stringifies a flat object', () => {
|
|
5
|
+
const obj = { a: 1, b: 'test', c: true };
|
|
6
|
+
expect(stringifyObject(obj)).toBe('a=1 b=test c=true');
|
|
7
|
+
});
|
|
8
|
+
it('stringifies a nested object with dot notation', () => {
|
|
9
|
+
const obj = { a: 1, b: { c: 2, d: 'x' } };
|
|
10
|
+
expect(stringifyObject(obj)).toBe('a=1 b.c=2 b.d=x');
|
|
11
|
+
});
|
|
12
|
+
it('stringifies an object with array values', () => {
|
|
13
|
+
const obj = { a: [1, 2, 3], b: 'x' };
|
|
14
|
+
expect(stringifyObject(obj)).toBe('a=1,2,3 b=x');
|
|
15
|
+
});
|
|
16
|
+
it('handles objects with undefined and null values', () => {
|
|
17
|
+
const obj = { a: undefined, b: null, c: 1 };
|
|
18
|
+
expect(stringifyObject(obj)).toBe('a=undefined b=null c=1');
|
|
19
|
+
});
|
|
20
|
+
it('handles deeply nested objects', () => {
|
|
21
|
+
const obj = { a: { b: { c: { d: 1 } } } };
|
|
22
|
+
expect(stringifyObject(obj)).toBe('a.b.c.d=1');
|
|
23
|
+
});
|
|
24
|
+
it('handles complex nested objects with arrays', () => {
|
|
25
|
+
const obj = {
|
|
26
|
+
config: {
|
|
27
|
+
values: [1, 2],
|
|
28
|
+
settings: { enabled: true },
|
|
29
|
+
},
|
|
30
|
+
name: 'test',
|
|
31
|
+
};
|
|
32
|
+
expect(stringifyObject(obj)).toBe('config.values=1,2 config.settings.enabled=true name=test');
|
|
33
|
+
});
|
|
34
|
+
it('handles empty object', () => {
|
|
35
|
+
expect(stringifyObject({})).toBe('');
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=stringify-object.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify-object.test.js","sourceRoot":"","sources":["../../src/object/stringify-object.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;QACxC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAA;QACzC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAA;QACpC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC3C,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAA;QACzC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,GAAG,GAAG;YACV,MAAM,EAAE;gBACN,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACd,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aAC5B;YACD,IAAI,EAAE,MAAM;SACb,CAAA;QACD,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IAC/F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,62 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/utils",
|
|
3
|
-
"version": "0.3.2-dev.
|
|
3
|
+
"version": "0.3.2-dev.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"./dist/global.js"
|
|
7
7
|
],
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
-
"types": "./dist/
|
|
11
|
-
"default": "./dist/
|
|
12
|
-
"bun": "./src/index.ts"
|
|
10
|
+
"types": "./dist/mod.d.ts",
|
|
11
|
+
"default": "./dist/mod.js"
|
|
13
12
|
},
|
|
14
13
|
"./cuid": {
|
|
15
14
|
"types": "./dist/cuid/cuid.node.d.ts",
|
|
16
|
-
"node": "./dist/cuid/cuid.node.js",
|
|
17
15
|
"browser": "./dist/cuid/cuid.browser.js",
|
|
18
16
|
"react-native": "./dist/cuid/cuid.browser.js",
|
|
19
|
-
"
|
|
17
|
+
"default": "./dist/cuid/cuid.node.js"
|
|
20
18
|
},
|
|
21
19
|
"./nanoid": {
|
|
22
20
|
"types": "./dist/nanoid/index.d.ts",
|
|
23
|
-
"default": "./dist/nanoid/index.js"
|
|
24
|
-
"bun": "./src/nanoid/index.ts"
|
|
21
|
+
"default": "./dist/nanoid/index.js"
|
|
25
22
|
},
|
|
26
23
|
"./effect": {
|
|
27
24
|
"types": "./dist/effect/index.d.ts",
|
|
28
|
-
"default": "./dist/effect/index.js"
|
|
29
|
-
"bun": "./src/effect/index.ts"
|
|
25
|
+
"default": "./dist/effect/index.js"
|
|
30
26
|
},
|
|
31
27
|
"./node": {
|
|
32
28
|
"types": "./dist/node/mod.d.ts",
|
|
33
|
-
"default": "./dist/node/mod.js"
|
|
34
|
-
"bun": "./src/node/mod.ts"
|
|
29
|
+
"default": "./dist/node/mod.js"
|
|
35
30
|
},
|
|
36
31
|
"./bun": {
|
|
37
32
|
"types": "./dist/bun/mod.d.ts",
|
|
38
|
-
"default": "./dist/bun/mod.js"
|
|
39
|
-
"bun": "./src/bun/mod.ts"
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
"types": "./dist/index.d.ts",
|
|
43
|
-
"typesVersions": {
|
|
44
|
-
"*": {
|
|
45
|
-
"./cuid": [
|
|
46
|
-
"./dist/cuid/cuid.node.d.ts"
|
|
47
|
-
],
|
|
48
|
-
"./nanoid": [
|
|
49
|
-
"./dist/nanoid/index.d.ts"
|
|
50
|
-
],
|
|
51
|
-
"./effect": [
|
|
52
|
-
"./dist/effect/index.d.ts"
|
|
53
|
-
],
|
|
54
|
-
"./node": [
|
|
55
|
-
"./dist/node/mod.d.ts"
|
|
56
|
-
],
|
|
57
|
-
"./bun": [
|
|
58
|
-
"./dist/bun/mod.d.ts"
|
|
59
|
-
]
|
|
33
|
+
"default": "./dist/bun/mod.js"
|
|
60
34
|
}
|
|
61
35
|
},
|
|
62
36
|
"dependencies": {
|
|
@@ -84,7 +58,7 @@
|
|
|
84
58
|
"@opentelemetry/resources": "^2.0.0",
|
|
85
59
|
"@types/bun": "^1.2.5",
|
|
86
60
|
"@types/jsdom": "^21.1.7",
|
|
87
|
-
"@types/node": "
|
|
61
|
+
"@types/node": "22.15.33",
|
|
88
62
|
"@types/web": "^0.0.203",
|
|
89
63
|
"effect": "^3.16.12",
|
|
90
64
|
"jsdom": "^26.0.0",
|
package/src/NoopTracer.ts
CHANGED
package/src/base64.ts
CHANGED
|
@@ -113,7 +113,6 @@ export const decode = (b64: string): Uint8Array => {
|
|
|
113
113
|
const size = binString.length
|
|
114
114
|
const bytes = new Uint8Array(size)
|
|
115
115
|
for (let i = 0; i < size; i++) {
|
|
116
|
-
// eslint-disable-next-line unicorn/prefer-code-point
|
|
117
116
|
bytes[i] = binString.charCodeAt(i)
|
|
118
117
|
}
|
|
119
118
|
return bytes
|
package/src/bun/mod.ts
CHANGED
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
import { $ } from 'bun'
|
|
2
|
-
import { Effect } from 'effect'
|
|
3
|
-
|
|
4
1
|
export * as PlatformBun from '@effect/platform-bun'
|
|
5
2
|
|
|
6
3
|
// TODO remove in favour of other `cmd` implementation
|
|
7
|
-
export const cmd = (_: string) =>
|
|
8
|
-
Effect.promise(() => {
|
|
9
|
-
console.log(`Running command: ${_}`)
|
|
10
|
-
return $`${{ raw: _ }}`
|
|
11
|
-
})
|
|
12
4
|
|
|
13
5
|
export { $ } from 'bun'
|
package/src/cuid/cuid.browser.ts
CHANGED
package/src/cuid/cuid.node.ts
CHANGED
package/src/effect/Effect.ts
CHANGED
|
@@ -5,8 +5,8 @@ import type { UnknownException } from 'effect/Cause'
|
|
|
5
5
|
import { log } from 'effect/Console'
|
|
6
6
|
import type { LazyArg } from 'effect/Function'
|
|
7
7
|
|
|
8
|
-
import { isPromise } from '../
|
|
9
|
-
import { UnknownError } from './Error.
|
|
8
|
+
import { isPromise } from '../mod.ts'
|
|
9
|
+
import { UnknownError } from './Error.ts'
|
|
10
10
|
|
|
11
11
|
export * from 'effect/Effect'
|
|
12
12
|
|
|
@@ -57,7 +57,10 @@ export const tryAll = <Res>(
|
|
|
57
57
|
export const acquireReleaseLog = (label: string) =>
|
|
58
58
|
Effect.acquireRelease(Effect.log(`${label} acquire`), (_, ex) => Effect.log(`${label} release`, ex))
|
|
59
59
|
|
|
60
|
-
export const addFinalizerLog = (...msgs: any[]) =>
|
|
60
|
+
export const addFinalizerLog = (...msgs: any[]) =>
|
|
61
|
+
Effect.addFinalizer((exit) =>
|
|
62
|
+
Effect.log(...msgs, exit._tag === 'Success' ? 'with success' : `with failure: ${Cause.pretty(exit.cause)}`),
|
|
63
|
+
)
|
|
61
64
|
|
|
62
65
|
export const logBefore =
|
|
63
66
|
(...msgs: any[]) =>
|
package/src/effect/Scheduler.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Schema } from 'effect'
|
|
2
2
|
import { describe, expect, test } from 'vitest'
|
|
3
3
|
|
|
4
|
-
import type { DiffItem } from './debug-diff.
|
|
5
|
-
import { debugDiff } from './debug-diff.
|
|
4
|
+
import type { DiffItem } from './debug-diff.ts'
|
|
5
|
+
import { debugDiff } from './debug-diff.ts'
|
|
6
6
|
|
|
7
7
|
describe('debug-diff', () => {
|
|
8
8
|
test('simple object', () => {
|
|
@@ -4,11 +4,11 @@ import { Effect, Hash, ParseResult, Schema } from 'effect'
|
|
|
4
4
|
import type { ParseError } from 'effect/ParseResult'
|
|
5
5
|
import type { ParseOptions } from 'effect/SchemaAST'
|
|
6
6
|
|
|
7
|
-
import { shouldNeverHappen } from '../../
|
|
7
|
+
import { shouldNeverHappen } from '../../mod.ts'
|
|
8
8
|
|
|
9
9
|
export * from 'effect/Schema'
|
|
10
|
-
export * from './debug-diff.
|
|
11
|
-
export * from './msgpack.
|
|
10
|
+
export * from './debug-diff.ts'
|
|
11
|
+
export * from './msgpack.ts'
|
|
12
12
|
|
|
13
13
|
// NOTE this is a temporary workaround until Effect schema has a better way to hash schemas
|
|
14
14
|
// https://github.com/Effect-TS/effect/issues/2719
|
|
@@ -49,13 +49,14 @@ class SubscribableImpl<in out A> extends Effectable.Class<A> implements Subscrib
|
|
|
49
49
|
readonly [TypeId] = TypeId
|
|
50
50
|
// @ts-expect-error type symbol
|
|
51
51
|
readonly [Readable.TypeId] = Readable.TypeId
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
) {
|
|
52
|
+
readonly get: Effect.Effect<A>
|
|
53
|
+
readonly changes: Stream.Stream<A>
|
|
54
|
+
constructor(get: Effect.Effect<A>, changes: Stream.Stream<A>) {
|
|
56
55
|
super()
|
|
56
|
+
this.get = get
|
|
57
|
+
this.changes = changes
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
+
|
|
59
60
|
commit() {
|
|
60
61
|
return this.get
|
|
61
62
|
}
|
|
@@ -2,7 +2,7 @@ import * as Vitest from '@effect/vitest'
|
|
|
2
2
|
import { Effect, Schema, Stream } from 'effect'
|
|
3
3
|
import { JSDOM } from 'jsdom'
|
|
4
4
|
|
|
5
|
-
import * as WebChannel from './WebChannel.
|
|
5
|
+
import * as WebChannel from './WebChannel.ts'
|
|
6
6
|
|
|
7
7
|
Vitest.describe('WebChannel', () => {
|
|
8
8
|
Vitest.describe('windowChannel', () => {
|