@marko/vite
Version:
A Marko plugin for Vite
39 lines (38 loc) • 1.73 kB
TypeScript
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;