eclipsa 0.1.2 → 0.1.3
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/{action-DstcBFEm.mjs → action-CgM3EJUS.mjs} +26 -2
- package/{action-DstcBFEm.mjs.map → action-CgM3EJUS.mjs.map} +1 -1
- package/{client-D1zMr8hs.mjs → client-COjBNTyt.mjs} +4 -4
- package/{client-D1zMr8hs.mjs.map → client-COjBNTyt.mjs.map} +1 -1
- package/{component-DjUmyVqL.d.mts → component-D_nEtZ69.d.mts} +2 -2
- package/core/client/mod.d.mts +2 -2
- package/core/client/mod.mjs +4 -4
- package/core/dev-client/mod.d.mts +1 -1
- package/core/dev-client/mod.mjs +4 -4
- package/core/internal.d.mts +1 -1
- package/core/internal.mjs +1 -1
- package/core/prod-client/mod.d.mts +3 -3
- package/core/prod-client/mod.mjs +4 -4
- package/{internal-Dmvt_AGE.d.mts → internal-Csbm0Qnv.d.mts} +3 -3
- package/jsx/jsx-dev-runtime.d.mts +1 -1
- package/jsx/jsx-runtime.d.mts +1 -1
- package/jsx/mod.d.mts +1 -1
- package/jsx/mod.mjs +1 -1
- package/{mod-CaLAdQcH.d.mts → mod-DLb8ple9.d.mts} +4 -4
- package/mod.d.mts +4 -4
- package/mod.mjs +6 -6
- package/mod.mjs.map +1 -1
- package/package.json +2 -2
- package/{resume-hmr-BRDojQNp.mjs → resume-hmr-qTpLc5o-.mjs} +1 -1
- package/{resume-hmr-BRDojQNp.mjs.map → resume-hmr-qTpLc5o-.mjs.map} +1 -1
- package/{signal-CosyYdtA.d.mts → signal-B7AfIKrr.d.mts} +1 -1
- package/{signal-D1WmFjmJ.mjs → signal-CJtquEfo.mjs} +2 -2
- package/{signal-D1WmFjmJ.mjs.map → signal-CJtquEfo.mjs.map} +1 -1
- package/{snapshot-BG0kq9wt.mjs → snapshot-BdY3jcVk.mjs} +1 -1
- package/{snapshot-BG0kq9wt.mjs.map → snapshot-BdY3jcVk.mjs.map} +1 -1
- package/{types-WOJV0N2h.d.mts → types-BCEY9lGp.d.mts} +1 -1
- package/{types-DDeNM8UH.d.mts → types-DKpefD_u.d.mts} +1 -1
- package/vite/mod.mjs +29 -147180
- package/vite/mod.mjs.map +1 -1
- package/web-utils/mod.d.mts +1 -1
- package/web-utils/mod.mjs +2 -2
- package/loader-DDVVUXBr.mjs +0 -2
- /package/{jsx-runtime-QIK6ADiK.d.mts → jsx-runtime-BFDPoxFn.d.mts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-
|
|
1
|
+
{"version":3,"file":"signal-CJtquEfo.mjs","names":[],"sources":["../core/signal.ts"],"sourcesContent":["import {\n createStandaloneRuntimeSignal,\n createEffect,\n createOnCleanup,\n createOnMount,\n createOnVisible,\n createWatch,\n getRuntimeContainer,\n getRuntimeSignalId,\n readAsyncSignalSnapshot,\n useRuntimeSignal,\n writeAsyncSignalSnapshot,\n} from './runtime.ts'\nimport { createPendingSignalError, isPendingSignalError } from './suspense.ts'\n\nexport interface Signal<T> {\n value: T\n}\n\ninterface SignalFactory {\n <T>(value: T): Signal<T>\n <T>(value?: T | undefined): Signal<T | undefined>\n computed<T>(value: () => T | Promise<T>, dependencies?: WatchDependency[]): Signal<T>\n}\n\ninterface ComputedSnapshot<T> {\n __e_async_computed: true\n error?: unknown\n promise?: Promise<T>\n status: 'pending' | 'rejected' | 'resolved'\n value?: T\n}\n\nexport type WatchDependency<T = unknown> = Signal<T> | (() => T)\n\nconst isPromiseLike = <T>(value: unknown): value is Promise<T> =>\n !!value && typeof value === 'object' && 'then' in value && typeof value.then === 'function'\n\nconst isComputedSnapshot = <T>(value: unknown): value is ComputedSnapshot<T> =>\n !!value && typeof value === 'object' && (value as ComputedSnapshot<T>).__e_async_computed === true\n\nconst createComputedSnapshot = <T>(\n snapshot: Omit<ComputedSnapshot<T>, '__e_async_computed'>,\n): ComputedSnapshot<T> => ({\n __e_async_computed: true,\n ...snapshot,\n})\n\nconst createComputedSignalFactory =\n (createBaseSignal: <T>(value: T) => Signal<T>): SignalFactory['computed'] =>\n <T>(fn: () => T | Promise<T>, dependencies?: WatchDependency[]) => {\n const state = createBaseSignal<ComputedSnapshot<T>>(\n createComputedSnapshot({\n status: 'pending',\n }),\n )\n const runtimeContainer = getRuntimeContainer()\n const signalId = getRuntimeSignalId(state)\n const seededSnapshot =\n signalId !== null\n ? (readAsyncSignalSnapshot(signalId, runtimeContainer) as ComputedSnapshot<T> | undefined)\n : undefined\n let useSeededSnapshot = !!seededSnapshot && seededSnapshot.status !== 'pending'\n let version = 0\n\n createEffect(\n () => {\n if (useSeededSnapshot && seededSnapshot) {\n useSeededSnapshot = false\n state.value = seededSnapshot\n if (signalId !== null) {\n writeAsyncSignalSnapshot(signalId, seededSnapshot, runtimeContainer)\n }\n return\n }\n\n const currentVersion = ++version\n try {\n const nextValue = fn()\n if (isPromiseLike<T>(nextValue)) {\n const pending = createComputedSnapshot<T>({\n promise: nextValue,\n status: 'pending',\n })\n state.value = pending\n if (signalId !== null) {\n writeAsyncSignalSnapshot(signalId, pending, runtimeContainer)\n }\n nextValue.then(\n (resolved) => {\n if (currentVersion !== version) {\n return\n }\n const completed = createComputedSnapshot<T>({\n status: 'resolved',\n value: resolved,\n })\n state.value = completed\n if (signalId !== null) {\n writeAsyncSignalSnapshot(signalId, completed, runtimeContainer)\n }\n },\n (error) => {\n if (currentVersion !== version) {\n return\n }\n const failed = createComputedSnapshot<T>({\n error,\n status: 'rejected',\n })\n state.value = failed\n if (signalId !== null) {\n writeAsyncSignalSnapshot(signalId, failed, runtimeContainer)\n }\n },\n )\n return\n }\n\n const resolved = createComputedSnapshot<T>({\n status: 'resolved',\n value: nextValue,\n })\n state.value = resolved\n if (signalId !== null) {\n writeAsyncSignalSnapshot(signalId, resolved, runtimeContainer)\n }\n } catch (error) {\n if (isPendingSignalError(error)) {\n const pending = createComputedSnapshot<T>({\n promise: error.promise as Promise<T>,\n status: 'pending',\n })\n state.value = pending\n if (signalId !== null) {\n writeAsyncSignalSnapshot(signalId, pending, runtimeContainer)\n }\n return\n }\n const failed = createComputedSnapshot<T>({\n error,\n status: 'rejected',\n })\n state.value = failed\n if (signalId !== null) {\n writeAsyncSignalSnapshot(signalId, failed, runtimeContainer)\n }\n }\n },\n dependencies\n ? {\n dependencies,\n errorLabel: 'useComputed',\n untracked: true,\n }\n : undefined,\n )\n\n const handle = {} as Signal<T>\n Object.defineProperty(handle, 'value', {\n configurable: true,\n enumerable: true,\n get() {\n const snapshot = state.value\n if (!isComputedSnapshot<T>(snapshot)) {\n return snapshot as T\n }\n if (snapshot.status === 'pending') {\n throw createPendingSignalError(snapshot.promise ?? Promise.resolve(undefined))\n }\n if (snapshot.status === 'rejected') {\n throw snapshot.error\n }\n return snapshot.value as T\n },\n })\n return handle\n }\n\nexport const signal = ((value) => createStandaloneRuntimeSignal(value)) as SignalFactory\n\nexport const useSignal = ((value) => useRuntimeSignal(value)) as SignalFactory\n\nsignal.computed = createComputedSignalFactory((value) => createStandaloneRuntimeSignal(value))\nuseSignal.computed = createComputedSignalFactory((value) => useRuntimeSignal(value))\n\nexport const effect = (fn: () => void) => createEffect(fn)\nexport const onCleanup = (fn: () => void) => createOnCleanup(fn)\nexport const onMount = (fn: () => void) => createOnMount(fn)\nexport const onVisible = (fn: () => void) => createOnVisible(fn)\nexport const useWatch = (fn: () => void, dependencies?: WatchDependency[]) =>\n createWatch(fn, dependencies)\n\nexport const useComputed = <T>(fn: () => T | Promise<T>, dependencies?: WatchDependency[]) =>\n useSignal.computed(fn, dependencies)\nexport const useComputed$ = useComputed\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-
|
|
1
|
+
{"version":3,"file":"snapshot-BdY3jcVk.mjs","names":[],"sources":["../core/snapshot.ts"],"sourcesContent":["interface SignalReader {\n read(): unknown\n}\n\ninterface SnapshotState {\n readers: SignalReader[]\n cursor: number\n values: unknown[] | null\n}\n\nconst SNAPSHOT_STATE_KEY = Symbol.for('eclipsa.snapshot-state')\n\nconst getCurrentSnapshotState = (): SnapshotState | null => {\n return (\n (globalThis as unknown as Record<PropertyKey, SnapshotState | null>)[SNAPSHOT_STATE_KEY] ?? null\n )\n}\n\nconst setCurrentSnapshotState = (state: SnapshotState | null) => {\n ;(globalThis as unknown as Record<PropertyKey, SnapshotState | null>)[SNAPSHOT_STATE_KEY] = state\n}\n\nexport const withSignalSnapshot = <T>(\n values: unknown[] | null,\n fn: () => T,\n): {\n result: T\n values: unknown[]\n} => {\n const previous = getCurrentSnapshotState()\n const state: SnapshotState = {\n readers: [],\n cursor: 0,\n values,\n }\n setCurrentSnapshotState(state)\n\n try {\n const result = fn()\n return {\n result,\n values: values ?? state.readers.map((reader) => reader.read()),\n }\n } finally {\n setCurrentSnapshotState(previous)\n }\n}\n\nexport const consumeSnapshotValue = <T>(fallback: T): T => {\n const state = getCurrentSnapshotState()\n if (!state) {\n return fallback\n }\n\n const index = state.cursor++\n if (state.values && index < state.values.length) {\n return state.values[index] as T\n }\n\n return fallback\n}\n\nexport const registerSnapshotSignal = (reader: SignalReader) => {\n getCurrentSnapshotState()?.readers.push(reader)\n}\n"],"mappings":";AAUA,MAAM,qBAAqB,OAAO,IAAI,yBAAyB;AAE/D,MAAM,gCAAsD;AAC1D,QACG,WAAoE,uBAAuB;;AAIhG,MAAM,2BAA2B,UAAgC;AAC7D,YAAoE,sBAAsB;;AAG9F,MAAa,sBACX,QACA,OAIG;CACH,MAAM,WAAW,yBAAyB;CAC1C,MAAM,QAAuB;EAC3B,SAAS,EAAE;EACX,QAAQ;EACR;EACD;AACD,yBAAwB,MAAM;AAE9B,KAAI;AAEF,SAAO;GACL,QAFa,IAAI;GAGjB,QAAQ,UAAU,MAAM,QAAQ,KAAK,WAAW,OAAO,MAAM,CAAC;GAC/D;WACO;AACR,0BAAwB,SAAS;;;AAIrC,MAAa,wBAA2B,aAAmB;CACzD,MAAM,QAAQ,yBAAyB;AACvC,KAAI,CAAC,MACH,QAAO;CAGT,MAAM,QAAQ,MAAM;AACpB,KAAI,MAAM,UAAU,QAAQ,MAAM,OAAO,OACvC,QAAO,MAAM,OAAO;AAGtB,QAAO;;AAGT,MAAa,0BAA0B,WAAyB;AAC9D,0BAAyB,EAAE,QAAQ,KAAK,OAAO"}
|
|
@@ -8,4 +8,4 @@ type Insertable = string | number | boolean | undefined | null | Node | Insertab
|
|
|
8
8
|
type ClientElementLike = Insertable | Insertable[];
|
|
9
9
|
//#endregion
|
|
10
10
|
export { Insertable as n, ClientElementLike as t };
|
|
11
|
-
//# sourceMappingURL=types-
|
|
11
|
+
//# sourceMappingURL=types-DKpefD_u.d.mts.map
|