-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Description
Mine is a ESM project. Doing this:
import esbuildPluginPino from 'esbuild-plugin-pino';
const config = {
...
plugins: [esbuildPluginPino({ transports: [] })],
...
};
doesn't throw type errors any more but results in a build error:
file:///home/varun/dummy-project/esbuild.config.mjs:7
import esbuildPluginPino from 'esbuild-plugin-pino';
^^^^^^^^^^^^^^^^^
SyntaxError: The requested module 'esbuild-plugin-pino' does not provide an export named 'default'
Please check:
#246 (comment)
And:
https://arethetypeswrong.github.io/?p=esbuild-plugin-pino%402.3.1
Ultimately what you need is along the lines of:
package.json
{
"name": "esbuild-plugin-pino",
"version": "X.Y.Z",
"main": "./dist/index.cjs",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.mjs",
"require": "./dist/index.cjs",
"default": "./dist/index.mjs"
}
},
"sideEffects": false
}
dist/index.cjs (CJS)
'use strict';
/** @type {(opts?: { transports?: string[] }) => import('esbuild').Plugin} */
function esbuildPluginPino(opts = {}) {
// ...existing implementation...
}
module.exports = esbuildPluginPino;
// bonus for interop with some bundlers:
module.exports.esbuildPluginPino = esbuildPluginPino;
module.exports.default = esbuildPluginPino;
dist/index.mjs (ESM)
import { createRequire } from 'node:module';
const require = createRequire(import.meta.url); // for require.resolve, etc.
/** @type {(opts?: { transports?: string[] }) => import('esbuild').Plugin} */
export function esbuildPluginPino(opts = {}) {
// ...same implementation as CJS version...
}
export default esbuildPluginPino;
dist/index.d.ts
import type { Plugin } from 'esbuild';
declare function esbuildPluginPino(opts?: { transports?: string[] }): Plugin;
export default esbuildPluginPino;
export { esbuildPluginPino };
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels