UNPKG

@marko/vite

Version:
39 lines (38 loc) 1.73 kB
import { types as t } from "@marko/compiler"; /** * This plugin is designed to transform imports within Marko files to interop between ESM and CJS. * In Node, ESM files cannot reliably use named imports and default imports from CJS files. * Additionally, modules which are transpiled from ESM to CJS will use a `__esModule` property to * signal that the consuming ESM code should treat `exports.default` as the default import. * This plugin only modifies imports it determined to be for CJS modules. * * Examples: * 1. Named imports: * Source: import { bar as baz } from 'foo'; * Becomes: import * as _foo from 'foo'; * const { bar: baz } = importNS(_foo); * * 2. Default imports: * Source: import myFoo from 'foo'; * Becomes: import * as _myFoo from 'foo'; * const { default: myFoo } = importDefault(_myFoo); * * 3. Namespace imports: * Source: import * as nsFoo from 'foo'; * Becomes: import * as _nsFoo from 'foo'; * const nsFoo = importNS(_nsFoo); * * 4. Default and named imports: * Source: import myFoo, { bar as baz } from 'foo'; * Becomes: import * as _foo from 'foo'; * const { default: myFoo } = importDefault(_foo); * const { bar: baz } = importNS(_foo); */ export declare const cjsInteropHelpersId = "\0marko-cjs-interop.js"; export declare const cjsInteropHelpersCode = "export const importNS = m => m && (m.default === void 0 || m.__esModule ? m : m.default);\nexport const importDefault = m => m?.default?.__esModule ? m.default : m;\n"; declare const _default: { Program: { exit(program: t.NodePath<t.Program>): void; }; }; export default _default;