UNPKG

@surface/custom-element

Version:

Provides support of directives and data binding on custom elements.

10 lines (9 loc) 552 B
import { setValue } from "@surface/core"; import observe from "./observe.js"; export default function bind(left, leftPath, right, rightPath) { const leftListener = (value) => setValue(value, right, ...rightPath); const rightListener = (value) => setValue(value, left, ...leftPath); const leftSubscription = observe(left, [leftPath], leftListener, true); const rightSubscription = observe(right, [rightPath], rightListener); return { unsubscribe: () => (leftSubscription.unsubscribe(), rightSubscription.unsubscribe()) }; }