summaryrefslogtreecommitdiff
path: root/packages/integrations/preact/src/signals.ts
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2022-09-22 10:32:42 -0400
committerGravatar GitHub <noreply@github.com> 2022-09-22 10:32:42 -0400
commit25a5b9a89aee81c87affca64e1682ebc0c553eaf (patch)
treed635f1f003f7f3eff5ee6516387f7ba1a4066c62 /packages/integrations/preact/src/signals.ts
parentd650a1161a0288f8f2d35ae67771279d067920e9 (diff)
downloadastro-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.ts53
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);
- }
-}