Registry / web-framework / effect-sugar-esbuild

effect-sugar-esbuild

JSON →
library0.2.0jsnpmunverified

An esbuild plugin that transforms Effect-TS gen block syntax (`const result = yield* effect`) into valid JavaScript. Version 0.2.0 supports esbuild >=0.17.0. It is part of the effect-sugar ecosystem alongside effect-sugar-vite and effect-sugar-tsc. Enables using Effect-TS generators without requiring ts-patch or Vite. Different from effect-sugar-tsc which uses ts-patch, this plugin integrates directly as an esbuild plugin for faster builds. Ships TypeScript type definitions. Released by clayroach on GitHub under MIT license.

npm install effect-sugar-esbuild
INSTALL
IMPORT
SIG · EFFECT-SUGAR-ESBUI
E
effect-sugar-esbuild
web-frameworkjavascriptv0.2.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

effectSugarESBuild
✓ import { effectSugarESBuild } from 'effect-sugar-esbuild'
✗ import effectSugarESBuild from 'effect-sugar-esbuild'
Named export, not default. ESM-only package.
effectSugarESBuild
✓ const { effectSugarESBuild } = require('effect-sugar-esbuild')
✗ const effectSugarESBuild = require('effect-sugar-esbuild')
Requires using destructuring because it's a named export. The package may not support CommonJS via require; prefer ESM imports.
effectSugarESBuild
✓ import { effectSugarESBuild } from 'effect-sugar-esbuild'
✗ import { EffectSugarESBuild } from 'effect-sugar-esbuild'
Notice the lowercase start: the export is camelCase starting with lowercase 'e'.

Demonstrates adding the Effect-TS sugar plugin to esbuild for transforming gen blocks in both config file and programmatic usage.

// Install: npm install --save-dev effect-sugar-esbuild // esbuild.config.js import { effectSugarESBuild } from 'effect-sugar-esbuild'; export default { plugins: [effectSugarESBuild()], // ... other esbuild options }; // Or programmatically: import * as esbuild from 'esbuild'; import { effectSugarESBuild } from 'effect-sugar-esbuild'; await esbuild.build({ entryPoints: ['src/index.ts'], bundle: true, outfile: 'dist/index.js', plugins: [effectSugarESBuild()], });
Debug
Known issues
breakingThe package is pre-1.0.0 and may introduce breaking changes in minor versions.
fix
Pin to exact version (e.g., effect-sugar-esbuild@0.2.0) to avoid unexpected breaks.
affects: <1.0.0
gotchaThe plugin only works with esbuild >=0.17.0. Using older esbuild versions will cause errors.
fix
Upgrade esbuild to >=0.17.0.
affects: >=0.0.0
gotchaThis plugin only transforms gen block syntax; it does NOT include the Effect-TS runtime. You must also install the main effect package.
fix
Install effect (e.g., effect, @effect/core) separately.
affects: >=0.0.0
Errors
Common errors & fixes
Error: esbuild: Must use import to load ES Module: /path/to/effect-sugar-esbuild
Attempting to require() an ESM-only package.
fix
Use import instead of require, or set "type": "module" in package.json.
Error: [plugin: effect-sugar] The plugin must be called with effectSugarESBuild()
Passing the function reference instead of calling it.
fix
Use plugins: [effectSugarESBuild()] (with parentheses) in esbuild config.
Upgrade
Version history
0.2.0latest on npm
Audit
Dependencies
esbuildrequiredpeer dependency: esbuild plugin API required for bundling
Agent activity
4 hits · last 30 days
node
4
Resources
effect-sugar-esbuild — npm install effect-sugar-esbuild · libregistry