# unplugin-eta3

> Plugin to precompile Eta functions, making it possible to be used in serverless context like Cloudflare Workers

Latest version **1.0.2** (published 2024-04-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install unplugin-eta3
pnpm add unplugin-eta3
yarn add unplugin-eta3
bun add unplugin-eta3
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2024-04-07 |
| First published | 2024-04-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 29.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | deirn |
| Keywords | unplugin, vite, webpack, rollup, transform, eta |

## Links

- npm: https://www.npmjs.com/package/unplugin-eta3
- Repository: https://github.com/badasintended/unplugin-eta3
- Homepage: https://github.com/badasintended/unplugin-eta3#readme
- Issues: https://github.com/badasintended/unplugin-eta3/issues
- npm.io page: https://npm.io/package/unplugin-eta3

## Dependencies (2)

- [eta](https://npm.io/package/eta.md) ^3.4.0
- [unplugin](https://npm.io/package/unplugin.md) ^1.10.1

## Alternatives

- [raw-loader](https://npm.io/package/raw-loader.md) — 4.3M weekly downloads
- [plop](https://npm.io/package/plop.md) — 1.4M weekly downloads
- [webpack-deadcode-plugin](https://npm.io/package/webpack-deadcode-plugin.md) — 80.3K weekly downloads
- [@storybook/preact-vite](https://npm.io/package/@storybook/preact-vite.md) — 54.2K weekly downloads
- [vite-plugin-transform](https://npm.io/package/vite-plugin-transform.md) — 2.4K weekly downloads

## Recent versions

- 1.0.2 (latest) — 2024-04-07
- 1.0.1 — 2024-04-07
- 1.0.0 — 2024-04-07

## README

# unplugin-eta3

[![NPM version](https://img.shields.io/npm/v/unplugin-eta3?color=a1b858&label=)](https://www.npmjs.com/package/unplugin-eta3)

Plugin to precompile Eta functions, making it possible to be used in serverless context like Cloudflare Workers.

## Install

```bash
npm i --save-dev unplugin-eta3
```

<details>
<summary>Vite</summary><br>

```ts
// vite.config.ts
import eta from "unplugin-eta3/vite";

export default defineConfig({
  plugins: [
    eta({ /* options */ }),
  ],
});
```

Example: [`playground/`](./playground/)

<br></details>

<details>
<summary>Rollup</summary><br>

```ts
// rollup.config.js
import eta from "unplugin-eta3/rollup";

export default {
  plugins: [
    eta({ /* options */ }),
  ],
};
```

<br></details>


<details>
<summary>Webpack</summary><br>

```ts
// webpack.config.js
module.exports = {
  /* ... */
  plugins: [
    require("unplugin-eta3/webpack")({ /* options */ })
  ]
};
```

<br></details>

<details>
<summary>Nuxt</summary><br>

```ts
// nuxt.config.js
export default defineNuxtConfig({
  modules: [
    ["unplugin-eta3/nuxt", { /* options */ }],
  ],
});
```

> This module works for both Nuxt 2 and [Nuxt Vite](https://github.com/nuxt/vite)

<br></details>

<details>
<summary>Vue CLI</summary><br>

```ts
// vue.config.js
module.exports = {
  configureWebpack: {
    plugins: [
      require("unplugin-eta3/webpack")({ /* options */ }),
    ],
  },
};
```

<br></details>

<details>
<summary>esbuild</summary><br>

```ts
// esbuild.config.js
import { build } from "esbuild";
import eta from "unplugin-eta3/esbuild";

build({
  plugins: [eta()],
});
```

<br></details>

## TypeScript Types
Declare the module
```typescript
declare module "*.eta" {
  import type { TemplateFunction } from "eta/dist/types/compile";

  const template: TemplateFunction;
  export default template;
}
```

## Usage
```eta
Hello <%= it.hello %>!
```

```typescript
import { Eta } from "eta";
import template from "./template.eta";

const eta = new Eta();
const output = eta.render(template, { hello: "World" });

console.log(output);
```

---
_Source: https://npm.io/package/unplugin-eta3 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
