alloc / alloc/saus

[RFC] Option-driven tree-shaking toggles

Abierto
#74 0 comentarios 0 reacciones 0 asignados Ver en GitHub
proposal roadmap
Lenguaje dominante
TypeScript
Estrellas
38
Forks
1
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

## The Problem

There's no simple way to include code in client/server bundle only when a specific plugin/framework option has a specific value at build time.

### Example

In any Vite-compiled module:

```ts
// @toggle foo
callSomeFunction(...args)
```

The `foo` toggle should be registered with Saus **at build time:**

```ts
export function MySausPlugin(options) {
return {
name: 'my-saus-plugin',
saus({ toggles }) {
// The `foo` option of my plugin decides if "foo" toggle is removed.
if (options.foo) {
toggles.use("foo")
}
}
}
}
```

In the above example, if the `foo` option of `MySausPlugin` is falsy, the `callSomeFunction` line is removed at build time.

Ideally, plugins would use namespaces in their toggle IDs:

```ts
// @toggle my-saus-plugin.foo
callSomeFunction(...args)
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.