MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / _bind

Function _bind

www/js/_hyperscript.js:9909–9941  ·  view source on GitHub ↗
(left, right, target, feature, runtime2)

Source from the content-addressed store, hash-verified

9907 return typeof expr.set === "function";
9908 }
9909 function _bind(left, right, target, feature, runtime2) {
9910 var ctx = runtime2.makeContext(target, feature, target, null);
9911 var leftSide = _resolveSide(left, target, feature, runtime2, ctx);
9912 var rightSide = _resolveSide(right, target, feature, runtime2, ctx);
9913 var leftWritable = leftSide.element || _isAssignable(left);
9914 var rightWritable = rightSide.element || _isAssignable(right);
9915 if (!leftWritable && !rightWritable) {
9916 throw new Error("bind requires at least one writable side");
9917 }
9918 if (leftWritable) {
9919 runtime2.reactivity.createEffect(
9920 function() {
9921 return rightSide.read();
9922 },
9923 function(newValue) {
9924 leftSide.write(newValue);
9925 },
9926 { element: target }
9927 );
9928 }
9929 if (rightWritable) {
9930 runtime2.reactivity.createEffect(
9931 function() {
9932 return leftSide.read();
9933 },
9934 function(newValue) {
9935 rightSide.write(newValue);
9936 },
9937 { element: target }
9938 );
9939 }
9940 _setupFormReset(leftSide, rightSide, target, runtime2);
9941 }
9942 function _resolveSide(expr, target, feature, runtime2, ctx) {
9943 var value = expr.evaluate(ctx);
9944 if (value instanceof Element) {

Callers 1

installMethod · 0.70

Calls 5

_resolveSideFunction · 0.70
_isAssignableFunction · 0.70
_setupFormResetFunction · 0.70
makeContextMethod · 0.45
createEffectMethod · 0.45

Tested by

no test coverage detected