ef.js

Declarative DOM helper experiment

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
import { el, type ElementSetup } from "../../../src/ef.js";

const html = new Proxy(
  {},
  {
    get<K extends keyof HTMLElementTagNameMap>(_: unknown, name: K) {
      return (
        setups?: readonly ElementSetup<HTMLElementTagNameMap[K]>[],
        children?: Parameters<typeof el>[2],
      ) => {
        return el(name, setups, children);
      };
    },
  },
) as {
  [K in keyof HTMLElementTagNameMap]: (
    setups?: readonly ElementSetup<HTMLElementTagNameMap[K]>[],
    children?: Parameters<typeof el>[2],
  ) => HTMLElementTagNameMap[K];
};

export default html;