diff --git a/.gitignore b/.gitignore index bef0cb3..1f45d3a 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,5 @@ dist .yarn/build-state.yml .yarn/install-state.gz .pnp.* + +repl.ts \ No newline at end of file diff --git a/package.json b/package.json index 73f065f..82efab3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aet/babel-tailwind", - "version": "0.0.1-beta.3", + "version": "0.0.1-beta.4", "main": "dist/index.js", "license": "MIT", "private": true, diff --git a/src/index.ts b/src/index.ts index 3f50a99..9ea2284 100644 --- a/src/index.ts +++ b/src/index.ts @@ -256,21 +256,25 @@ function babelTailwind( */ export const babelPlugin = ({ filter = /\.[jt]sx?$/, - getPlugins, + plugins: getPlugins, }: { filter?: RegExp; - getPlugins(file: { path: string; contents: string }): babel.PluginItem[]; + plugins: + | babel.PluginItem[] + | ((file: { path: string; contents: string }) => babel.PluginItem[]); }): esbuild.Plugin => ({ name: "babel-plugin", setup(build) { build.onLoad({ filter }, ({ path }) => { const load = once(() => readFileSync(path, "utf-8")); - const plugins = getPlugins({ - path, - get contents() { - return load(); - }, - }); + const plugins = Array.isArray(getPlugins) + ? getPlugins + : getPlugins({ + path, + get contents() { + return load(); + }, + }); if (!plugins.length) { return; @@ -278,7 +282,7 @@ export const babelPlugin = ({ const { code } = transformSync(load(), { parserOpts: { - plugins: ["jsx", "typescript"], + plugins: ["jsx", "decorators", "typescript", "importAttributes"], }, filename: path, plugins, @@ -339,7 +343,7 @@ const esbuildPlugin = ( build.onLoad({ filter: /.*/, namespace: ESBUILD_NAMESPACE }, async ({ path }) => { if (path === "directive:base") { return { - contents: (await compile(`@tailwind base;`)).css!, + contents: (await compile(`@tailwind base;`)).css, loader: "css", }; } diff --git a/tsup.config.ts b/tsup.config.ts index 6921e3e..d722ca3 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -12,10 +12,7 @@ export default defineConfig({ define: { "process.env.BABEL_TAILWIND_BUILD": "true", }, - esbuildOptions(options) { - options.banner = { - ...options.banner, - js: "/* eslint-disable */", - }; + banner: { + js: "/* eslint-disable */", }, });