All files / solid/src hoc.ts

100% Statements 10/10
100% Branches 2/2
100% Functions 2/2
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  1x           1x 9x 9x 9x 9x 9x 9x   9x 9x  
import type { Component, JSX } from 'solid-js';
import { proxyProps } from './props.js';
import type { BindableComponentProps, BindableProps } from './types.js';
 
export type BindableComponent<P> = (props: P) => JSX.Element;
 
// biome-ignore lint/suspicious/noExplicitAny: library
export function bindable<P extends Record<string, any>>(
  Component: Component<BindableComponentProps<P>>
): BindableComponent<BindableProps<P>> {
  const Bindable = (props: BindableComponentProps<P>) => {
    const bindableProps = proxyProps(props);
    return Component(bindableProps as never);
  };
 
  return Bindable as never;
}