babel-plugin-solid-if-component
TypeScript icon, indicating that this package has built-in type declarations

0.0.2 • Public • Published

babel-plugin-solid-if-component

babel-plugin-solid-if-component is a Babel for SolidJS plugin that gives you an <If> and <Else> component macros. It compiles to Solid's <Show> component (<Else> goes to the fallback prop) and it gives you an altrnative syntax to the <Show> component that achieve the same conditional rendering behavior.

Try in Stackblitz

Open example repo in Github

Note
This plugin is WIP.

import { If, Else } from 'babel-plugin-solid-if-component';

const MyComp = () => {
   return (
      <>
         <If cond={hello}>
            <div>Hello</div>
         </If>
         <Else>
            <div>Goodbye</div>
         </Else>
      </>
   )
}

// ↓ ↓ ↓ ↓  Compiles to ↓ ↓ ↓ ↓

import { Show as _Show } from "solid-js";

const MyComp = () => {
   return (
      <>
         <_Show
            when={hello}
            fallback={<div>Goodbye</div>}
         >
            <div>Hello</div>
         </_Show>
      </>
   )
}
  • The <If> component can be used by itself.
  • The <Else> component has to always follow an <If> component.
  • An else-if syntax is not supported yet but is on the roadmap.
  • Error handling is not fully implemented yet.
  • Errors can also be prvented by an ESLint rule which is also on the roadmap.

Getting Started

npm i -D babel-plugin-solid-if-component

In your Vite config, find the your vite-plugin-solid initialization (in the default Solid template it will be imported as solidPlugin).

The first argument this initialization function takes, is the options object.

Add this field to the initializer options:

{
   babel: {
      plugins: ['babel-plugin-solid-if-component']
   } 
}

Roadmap / Missing Features

  • <ElseIf> / <Elif> component
  • Error handling
  • More tests
  • ESLint rule
  • Alternative auto import syntax: <m:if> and <m:else> (under considaration)

Other cool plugins for Solid

Package Sidebar

Install

npm i babel-plugin-solid-if-component

Weekly Downloads

1

Version

0.0.2

License

MIT

Unpacked Size

22.2 kB

Total Files

10

Last publish

Collaborators

  • orenelb