{"id":21282,"library":"esbuild-plugin-typescript-decorators","title":"esbuild-plugin-typescript-decorators","description":"An ESBuild plugin that enables TypeScript decorator metadata emission (emitDecoratorMetadata) which ESBuild does not support natively. Version 0.1.0 is the initial release, with no further updates. It fills a gap for developers using ESBuild with decorators, as ESBuild skips type system features. This plugin ensures Reflect.getMetadata returns correct type information (e.g., design:type) during transpilation. It is a lightweight alternative to switching to tsc or ts-jest, but limited to emitDecoratorMetadata support only.","status":"active","version":"0.1.0","language":"javascript","source_language":"en","source_url":"https://github.com/jcindex/esbuild-plugin-typescript-decorators","tags":["javascript","esbuild","esbuild-plugin","typescript","decoraters","emitDecoratorMetadata"],"install":[{"cmd":"npm install esbuild-plugin-typescript-decorators","lang":"bash","label":"npm"},{"cmd":"yarn add esbuild-plugin-typescript-decorators","lang":"bash","label":"yarn"},{"cmd":"pnpm add esbuild-plugin-typescript-decorators","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency; plugin works with ESBuild v0.9+","package":"esbuild","optional":false}],"imports":[{"note":"Named export only; no default export.","wrong":"const esbuildDecorators = require('esbuild-plugin-typescript-decorators').esbuildDecorators","symbol":"esbuildDecorators","correct":"import { esbuildDecorators } from 'esbuild-plugin-typescript-decorators'"},{"note":"Must call as function, it returns a plugin object.","wrong":"plugins: [esbuildDecorators]","symbol":"esbuildDecorators (as plugin)","correct":"plugins: [esbuildDecorators()]"},{"note":"CommonJS require fails because esbuild is ESM-only in recent versions.","wrong":"const esbuild = require('esbuild')","symbol":"esbuild","correct":"import esbuild from 'esbuild'"}],"quickstart":{"code":"import esbuild from 'esbuild'\nimport { esbuildDecorators } from 'esbuild-plugin-typescript-decorators'\n\nawait esbuild.build({\n  entryPoints: ['src/index.ts'],\n  outfile: 'dist/index.js',\n  bundle: true,\n  tsconfig: 'tsconfig.json', // must have \"experimentalDecorators\": true and \"emitDecoratorMetadata\": true\n  plugins: [\n    esbuildDecorators()\n  ]\n})","lang":"typescript","description":"Shows basic usage to bundle a TypeScript file with decorator metadata using ESBuild and the plugin."},"warnings":[{"fix":"Use a different tool like tsc or swc for full decorator support.","message":"ESBuild does not support decorators at all beyond basic transpilation; this plugin only adds emitDecoratorMetadata, not full decorator support (e.g., no proposal-stage decorators).","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use esbuildDecorators() in plugins array.","message":"Plugin must be called as a function (esbuildDecorators()), not passed directly.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Check compatibility; consider forking or using alternatives.","message":"Package has not been updated since v0.1.0; may not work with latest ESBuild versions (e.g., ESBuild v0.20+).","severity":"deprecated","affected_versions":">=0.1.0"}],"env_vars":null,"search_vec":"'0.1.0':23 'altern':65 'correct':53 'decor':5,12,41 'decorat':86 'design':57 'develop':37 'e.g':56 'emiss':14 'emitdecoratormetadata':15,77,87 'enabl':10 'ensur':50 'esbuild':2,7,17,39,43,81,83 'esbuild-plugin':82 'esbuild-plugin-typescript-decor':1 'featur':47 'fill':33 'gap':35 'inform':55 'initi':26 'javascript':80 'jest':73 'lightweight':64 'limit':75 'metadata':13 'nativ':21 'plugin':3,8,49,84 'reflect.getmetadata':51 'releas':27 'return':52 'skip':44 'support':20,78 'switch':67 'system':46 'transpil':60 'ts':72 'ts-jest':71 'tsc':69 'type':45,54,58 'typescript':4,11,85 'updat':31 'use':38 'version':22","created_at":"2026-04-27T16:59:04.325032+00:00","updated_at":"2026-04-27T16:59:04.325032+00:00","problems":[{"fix":"Install typescript: npm install --save-dev typescript","cause":"Missing TypeScript as a peer dependency.","error":"Error: [plugin: esbuild-decorators] Cannot find module 'typescript'"},{"fix":"Use import { esbuildDecorators } from 'esbuild-plugin-typescript-decorators' and then in plugins: [esbuildDecorators()]","cause":"Importing as default instead of named export or forgetting to call it.","error":"TypeError: esbuildDecorators is not a function"},{"fix":"Set \"experimentalDecorators\": true and \"emitDecoratorMetadata\": true in tsconfig.","cause":"tsconfig.json missing emitDecoratorMetadata or experimentalDecorators.","error":"Error: Reflect.getMetadata returns undefined even with plugin"}],"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/jcindex/esbuild-plugin-typescript-decorators","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/esbuild-plugin-typescript-decorators","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops","web-framework"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-18","next_check":"2026-07-26","install_tag":null}}