@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.
Files changed (110) hide show
  1. package/dist/.tsbuildinfo.json +1 -1
  2. package/dist/NoopTracer.d.ts.map +1 -1
  3. package/dist/NoopTracer.js.map +1 -1
  4. package/dist/base64.d.ts.map +1 -1
  5. package/dist/base64.js +0 -1
  6. package/dist/base64.js.map +1 -1
  7. package/dist/bun/mod.d.ts +0 -2
  8. package/dist/bun/mod.d.ts.map +1 -1
  9. package/dist/bun/mod.js +0 -6
  10. package/dist/bun/mod.js.map +1 -1
  11. package/dist/cuid/cuid.browser.d.ts.map +1 -1
  12. package/dist/cuid/cuid.browser.js +0 -1
  13. package/dist/cuid/cuid.browser.js.map +1 -1
  14. package/dist/cuid/cuid.node.d.ts.map +1 -1
  15. package/dist/cuid/cuid.node.js +0 -1
  16. package/dist/cuid/cuid.node.js.map +1 -1
  17. package/dist/effect/Effect.d.ts.map +1 -1
  18. package/dist/effect/Effect.js +3 -3
  19. package/dist/effect/Effect.js.map +1 -1
  20. package/dist/effect/Scheduler.d.ts.map +1 -1
  21. package/dist/effect/Scheduler.js +0 -1
  22. package/dist/effect/Scheduler.js.map +1 -1
  23. package/dist/effect/Schema/debug-diff.test.js +1 -1
  24. package/dist/effect/Schema/index.d.ts +2 -2
  25. package/dist/effect/Schema/index.js +3 -3
  26. package/dist/effect/Schema/index.js.map +1 -1
  27. package/dist/effect/Subscribable.d.ts.map +1 -1
  28. package/dist/effect/Subscribable.js +2 -3
  29. package/dist/effect/Subscribable.js.map +1 -1
  30. package/dist/effect/WebChannel/WebChannel.d.ts +3 -3
  31. package/dist/effect/WebChannel/WebChannel.js +5 -5
  32. package/dist/effect/WebChannel/WebChannel.test.js +1 -1
  33. package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts +2 -2
  34. package/dist/effect/WebChannel/broadcastChannelWithAck.js +2 -2
  35. package/dist/effect/WebChannel/mod.d.ts +3 -3
  36. package/dist/effect/WebChannel/mod.d.ts.map +1 -1
  37. package/dist/effect/WebChannel/mod.js +3 -3
  38. package/dist/effect/WebChannel/mod.js.map +1 -1
  39. package/dist/effect/WebLock.js.map +1 -1
  40. package/dist/effect/WebSocket.test.js +1 -1
  41. package/dist/effect/index.d.ts +22 -23
  42. package/dist/effect/index.d.ts.map +1 -1
  43. package/dist/effect/index.js +25 -26
  44. package/dist/effect/index.js.map +1 -1
  45. package/dist/env.js +1 -1
  46. package/dist/fast-deep-equal.d.ts.map +1 -1
  47. package/dist/fast-deep-equal.js +0 -1
  48. package/dist/fast-deep-equal.js.map +1 -1
  49. package/dist/global.d.ts +3 -0
  50. package/dist/global.d.ts.map +1 -1
  51. package/dist/global.js.map +1 -1
  52. package/dist/index.d.ts +83 -42
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +19 -16
  55. package/dist/index.js.map +1 -1
  56. package/dist/misc.d.ts.map +1 -1
  57. package/dist/misc.js +0 -1
  58. package/dist/misc.js.map +1 -1
  59. package/dist/mod.d.ts +82 -0
  60. package/dist/mod.d.ts.map +1 -0
  61. package/dist/mod.js +167 -0
  62. package/dist/mod.js.map +1 -0
  63. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js +2 -2
  64. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts +2 -2
  65. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js +3 -3
  66. package/dist/node/mod.d.ts +4 -4
  67. package/dist/node/mod.d.ts.map +1 -1
  68. package/dist/node/mod.js +5 -5
  69. package/dist/node/mod.js.map +1 -1
  70. package/dist/object/index.d.ts +3 -2
  71. package/dist/object/index.d.ts.map +1 -1
  72. package/dist/object/index.js +3 -2
  73. package/dist/object/index.js.map +1 -1
  74. package/dist/object/stringify-object.d.ts +9 -0
  75. package/dist/object/stringify-object.d.ts.map +1 -0
  76. package/dist/object/stringify-object.js +27 -0
  77. package/dist/object/stringify-object.js.map +1 -0
  78. package/dist/object/stringify-object.test.d.ts +2 -0
  79. package/dist/object/stringify-object.test.d.ts.map +1 -0
  80. package/dist/object/stringify-object.test.js +38 -0
  81. package/dist/object/stringify-object.test.js.map +1 -0
  82. package/package.json +9 -35
  83. package/src/NoopTracer.ts +0 -1
  84. package/src/base64.ts +0 -1
  85. package/src/bun/mod.ts +0 -8
  86. package/src/cuid/cuid.browser.ts +0 -1
  87. package/src/cuid/cuid.node.ts +0 -1
  88. package/src/effect/Effect.ts +6 -3
  89. package/src/effect/Scheduler.ts +0 -1
  90. package/src/effect/Schema/debug-diff.test.ts +2 -2
  91. package/src/effect/Schema/index.ts +3 -3
  92. package/src/effect/Subscribable.ts +6 -5
  93. package/src/effect/WebChannel/WebChannel.test.ts +1 -1
  94. package/src/effect/WebChannel/WebChannel.ts +5 -5
  95. package/src/effect/WebChannel/broadcastChannelWithAck.ts +3 -3
  96. package/src/effect/WebChannel/mod.ts +3 -3
  97. package/src/effect/WebLock.ts +1 -1
  98. package/src/effect/WebSocket.test.ts +1 -1
  99. package/src/effect/index.ts +104 -110
  100. package/src/env.ts +1 -1
  101. package/src/fast-deep-equal.ts +0 -2
  102. package/src/global.ts +4 -0
  103. package/src/misc.ts +0 -1
  104. package/src/{index.ts → mod.ts} +21 -16
  105. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts +3 -3
  106. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts +3 -3
  107. package/src/node/mod.ts +6 -6
  108. package/src/object/index.ts +3 -2
  109. package/src/object/stringify-object.test.ts +44 -0
  110. 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
@@ -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 '../ChildProcessWorker.js';
7
- import { GetPersonById, GetUserById, InitialMessage, Person, User } from './schema.js';
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 '../../mod.js';
5
- import * as ChildProcessRunner from '../ChildProcessRunner.js';
6
- import { Person, User, WorkerMessage } from './schema.js';
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) => {
@@ -1,10 +1,10 @@
1
1
  import { Effect, Layer } from 'effect';
2
- import { OtelTracer, UnknownError } from '../effect/index.js';
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 ChildProcessRunner from './ChildProcessRunner/ChildProcessRunner.js';
7
- export * as ChildProcessWorker from './ChildProcessRunner/ChildProcessWorker.js';
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
@@ -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,uBAAuB,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAE7D,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"}
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 '../effect/index.js';
4
- import { makeNoopTracer } from '../NoopTracer.js';
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 ChildProcessRunner from './ChildProcessRunner/ChildProcessRunner.js';
9
- export * as ChildProcessWorker from './ChildProcessRunner/ChildProcessWorker.js';
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
@@ -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,uBAAuB,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAE7D,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,CACU,CAAA;IAE9C,OAAO,WAAW,CAAA;AACpB,CAAC,CAAC,CAAA"}
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"}
@@ -1,5 +1,6 @@
1
- export * from './pick.js';
2
- export * from './omit.js';
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;AAEzB,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"}
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"}
@@ -1,6 +1,7 @@
1
1
  import { pipe } from 'effect';
2
- export * from './pick.js';
3
- export * from './omit.js';
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);
@@ -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;AAIzB,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"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stringify-object.test.d.ts.map
@@ -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.0",
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/index.d.ts",
11
- "default": "./dist/index.js",
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
- "bun": "./src/cuid/cuid.node.ts"
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": "^22.15.33",
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
@@ -1,4 +1,3 @@
1
- /* eslint-disable prefer-arrow/prefer-arrow-functions */
2
1
  /** biome-ignore-all lint/complexity/noArguments: using arguments is fine here */
3
2
  import type * as otel from '@opentelemetry/api'
4
3
 
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'
@@ -1,4 +1,3 @@
1
- /* eslint-disable unicorn/prefer-global-this */
2
1
  /**
3
2
  * Based on:
4
3
  *
@@ -35,7 +35,6 @@ const fingerprint = () => {
35
35
  hostname
36
36
  .split('')
37
37
  .reduce((prev, char) => {
38
- // eslint-disable-next-line unicorn/prefer-code-point
39
38
  return +prev + char.charCodeAt(0)
40
39
  }, +length + 36)
41
40
  .toString(36),
@@ -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 '../index.js'
9
- import { UnknownError } from './Error.js'
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[]) => Effect.addFinalizer(() => Effect.log(...msgs))
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[]) =>
@@ -9,6 +9,5 @@ export const messageChannel = (shouldYield: Scheduler.Scheduler['shouldYield'] =
9
9
 
10
10
  messageChannel.port1.postMessage(undefined)
11
11
 
12
- // eslint-disable-next-line unicorn/prefer-add-event-listener
13
12
  messageChannel.port2.onmessage = task
14
13
  }, shouldYield)
@@ -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.js'
5
- import { debugDiff } from './debug-diff.js'
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 '../../index.js'
7
+ import { shouldNeverHappen } from '../../mod.ts'
8
8
 
9
9
  export * from 'effect/Schema'
10
- export * from './debug-diff.js'
11
- export * from './msgpack.js'
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
- constructor(
53
- readonly get: Effect.Effect<A>,
54
- readonly changes: Stream.Stream<A>,
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
- // eslint-disable-next-line prefer-arrow/prefer-arrow-functions
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.js'
5
+ import * as WebChannel from './WebChannel.ts'
6
6
 
7
7
  Vitest.describe('WebChannel', () => {
8
8
  Vitest.describe('windowChannel', () => {