UNPKG

sucrase

Version:

Super-fast alternative to Babel for when you can target modern JS runtimes

79 lines (78 loc) 2.41 kB
import { Transformer } from './Transformer'; import { RootTransformer } from '../index'; import TokenProcessor from '../TokenProcessor'; import { ImportProcessor } from '../ImportProcessor'; import { NameManager } from '../NameManager'; export default class ImportTransformer implements Transformer { readonly rootTransformer: RootTransformer; readonly tokens: TokenProcessor; readonly nameManager: NameManager; readonly importProcessor: ImportProcessor; readonly shouldAddModuleExports: boolean; private hadExport; private hadNamedExport; private hadDefaultExport; constructor(rootTransformer: RootTransformer, tokens: TokenProcessor, nameManager: NameManager, importProcessor: ImportProcessor, shouldAddModuleExports: boolean); preprocess(): void; getPrefixCode(): string; getSuffixCode(): string; process(): boolean; /** * Transform this: * import foo, {bar} from 'baz'; * into * var _baz = require('baz'); var _baz2 = _interopRequireDefault(_baz); * * The import code was already generated in the import preprocessing step, so * we just need to look it up. */ private processImport(); private processIdentifier(); processObjectShorthand(): boolean; processExport(): void; private processAssignment(); private processExportDefault(); /** * Transform this: * export const x = 1; * into this: * const x = exports.x = 1; */ private processExportVar(); /** * Transform this: * export function foo() {} * into this: * function foo() {} exports.foo = foo; */ private processExportFunction(); /** * Skip past a function with a name and return that name. */ private processNamedFunction(); /** * Transform this: * export class A {} * into this: * class A {} exports.A = A; */ private processExportClass(); /** * Skip past a class with a name and return that name. */ private processNamedClass(); /** * Transform this: * export {a, b as c}; * into this: * exports.a = a; exports.c = b; * * OR * * Transform this: * export {a, b as c} from './foo'; * into the pre-generated Object.defineProperty code from the ImportProcessor. */ private processExportBindings(); private processExportStar(); }