diff options
author | 2022-09-22 10:32:42 -0400 | |
---|---|---|
committer | 2022-09-22 10:32:42 -0400 | |
commit | 25a5b9a89aee81c87affca64e1682ebc0c553eaf (patch) | |
tree | d635f1f003f7f3eff5ee6516387f7ba1a4066c62 /packages/integrations/preact/src/signals.ts | |
parent | d650a1161a0288f8f2d35ae67771279d067920e9 (diff) | |
download | astro-25a5b9a89aee81c87affca64e1682ebc0c553eaf.tar.gz astro-25a5b9a89aee81c87affca64e1682ebc0c553eaf.tar.zst astro-25a5b9a89aee81c87affca64e1682ebc0c553eaf.zip |
Revert preact signals support (#4843)
* Revert "Update preact example to match @astrojs/preact ranges (#4840)"
This reverts commit d650a1161a0288f8f2d35ae67771279d067920e9.
* Revert "[ci] format"
This reverts commit e3c78c5b164c338389c437743ba02a7be64e27fb.
* Revert "Support shared signals in Preact islands (#4763)"
This reverts commit 5e46be54683592773e6dfc2d33825493886114b0.
Diffstat (limited to 'packages/integrations/preact/src/signals.ts')
-rw-r--r-- | packages/integrations/preact/src/signals.ts | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/packages/integrations/preact/src/signals.ts b/packages/integrations/preact/src/signals.ts deleted file mode 100644 index 3fa1529f4..000000000 --- a/packages/integrations/preact/src/signals.ts +++ /dev/null @@ -1,53 +0,0 @@ -import type { Context } from './context'; -import { incrementId } from './context.js'; -import type { AstroPreactAttrs, PropNameToSignalMap, SignalLike } from './types'; - -function isSignal(x: any): x is SignalLike { - return x != null && typeof x === 'object' && typeof x.peek === 'function' && 'value' in x; -} - -export function restoreSignalsOnProps(ctx: Context, props: Record<string, any>) { - // Restore signal props that were mutated for serialization - let propMap: PropNameToSignalMap; - if (ctx.propsToSignals.has(props)) { - propMap = ctx.propsToSignals.get(props)!; - } else { - propMap = new Map(); - ctx.propsToSignals.set(props, propMap); - } - for (const [key, signal] of propMap) { - props[key] = signal; - } - return propMap; -} - -export function serializeSignals( - ctx: Context, - props: Record<string, any>, - attrs: AstroPreactAttrs, - map: PropNameToSignalMap -) { - // Check for signals - const signals: Record<string, string> = {}; - for (const [key, value] of Object.entries(props)) { - if (isSignal(value)) { - // Set the value to the current signal value - // This mutates the props on purpose, so that it will be serialized correct. - props[key] = value.peek(); - map.set(key, value); - - let id: string; - if (ctx.signals.has(value)) { - id = ctx.signals.get(value)!; - } else { - id = incrementId(ctx); - ctx.signals.set(value, id); - } - signals[key] = id; - } - } - - if (Object.keys(signals).length) { - attrs['data-preact-signals'] = JSON.stringify(signals); - } -} |