{"id":25195,"library":"effect-sugar-esbuild","title":"effect-sugar-esbuild","description":"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.","status":"active","version":"0.2.0","language":"javascript","source_language":"en","source_url":"https://github.com/clayroach/effect-sugar","tags":["javascript","esbuild","esbuild-plugin","effect","effect-ts","transformer","gen-blocks","tsx","bundler","typescript"],"install":[{"cmd":"npm install effect-sugar-esbuild","lang":"bash","label":"npm"},{"cmd":"yarn add effect-sugar-esbuild","lang":"bash","label":"yarn"},{"cmd":"pnpm add effect-sugar-esbuild","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency: esbuild plugin API required for bundling","package":"esbuild","optional":false}],"imports":[{"note":"Named export, not default. ESM-only package.","wrong":"import effectSugarESBuild from 'effect-sugar-esbuild'","symbol":"effectSugarESBuild","correct":"import { effectSugarESBuild } from 'effect-sugar-esbuild'"},{"note":"Requires using destructuring because it's a named export. The package may not support CommonJS via require; prefer ESM imports.","wrong":"const effectSugarESBuild = require('effect-sugar-esbuild')","symbol":"effectSugarESBuild","correct":"const { effectSugarESBuild } = require('effect-sugar-esbuild')"},{"note":"Notice the lowercase start: the export is camelCase starting with lowercase 'e'.","wrong":"import { EffectSugarESBuild } from 'effect-sugar-esbuild'","symbol":"effectSugarESBuild","correct":"import { effectSugarESBuild } from 'effect-sugar-esbuild'"}],"quickstart":{"code":"// Install: npm install --save-dev effect-sugar-esbuild\n\n// esbuild.config.js\nimport { effectSugarESBuild } from 'effect-sugar-esbuild';\n\nexport default {\n  plugins: [effectSugarESBuild()],\n  // ... other esbuild options\n};\n\n// Or programmatically:\nimport * as esbuild from 'esbuild';\nimport { effectSugarESBuild } from 'effect-sugar-esbuild';\n\nawait esbuild.build({\n  entryPoints: ['src/index.ts'],\n  bundle: true,\n  outfile: 'dist/index.js',\n  plugins: [effectSugarESBuild()],\n});","lang":"typescript","description":"Demonstrates adding the Effect-TS sugar plugin to esbuild for transforming gen blocks in both config file and programmatic usage."},"warnings":[{"fix":"Pin to exact version (e.g., effect-sugar-esbuild@0.2.0) to avoid unexpected breaks.","message":"The package is pre-1.0.0 and may introduce breaking changes in minor versions.","severity":"breaking","affected_versions":"<1.0.0"},{"fix":"Upgrade esbuild to >=0.17.0.","message":"The plugin only works with esbuild >=0.17.0. Using older esbuild versions will cause errors.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Install effect (e.g., effect, @effect/core) separately.","message":"This plugin only transforms gen block syntax; it does NOT include the Effect-TS runtime. You must also install the main effect package.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"search_vec":"'0.17.0':27 '0.2.0':24 'alongsid':37 'block':14,106 'build':81 'bundler':108 'clayroach':88 'const':16 'definit':85 'differ':60 'direct':74 'ecosystem':36 'effect':2,11,19,34,39,44,50,63,99,101 'effect-sugar':33 'effect-sugar-esbuild':1 'effect-sugar-tsc':43,62 'effect-sugar-vit':38 'effect-t':10,49,100 'enabl':47 'esbuild':4,6,26,77,95,97 'esbuild-plugin':96 'faster':80 'gen':13,105 'gen-block':104 'generat':52 'github':90 'integr':73 'javascript':22,94 'licens':93 'mit':92 'part':30 'patch':57,70 'plugin':7,72,78,98 'releas':86 'requir':54 'result':17 'ship':82 'sugar':3,35,40,45,64 'support':25 'syntax':15 'transform':9,103 'ts':12,51,56,69,102 'ts-patch':55,68 'tsc':46,65 'tsx':107 'type':84 'typescript':83,109 'use':48,67 'valid':21 'version':23 'vite':41,59 'without':53 'yield':18","created_at":"2026-05-01T13:43:30.516153+00:00","updated_at":"2026-05-01T13:43:30.516153+00:00","problems":[{"fix":"Use import instead of require, or set \"type\": \"module\" in package.json.","cause":"Attempting to require() an ESM-only package.","error":"Error: esbuild: Must use import to load ES Module: /path/to/effect-sugar-esbuild"},{"fix":"Use plugins: [effectSugarESBuild()] (with parentheses) in esbuild config.","cause":"Passing the function reference instead of calling it.","error":"Error: [plugin: effect-sugar] The plugin must be called with effectSugarESBuild()"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/clayroach/effect-sugar","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/effect-sugar-esbuild","openapi_spec":null,"status_page":null,"smithery":null,"categories":["web-framework"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-05-01","next_check":"2026-07-30","install_tag":null}}