UNPKG

@ampproject/rollup-plugin-closure-compiler

Version:

Rollup + Google Closure Compiler

44 lines (43 loc) 1.92 kB
/** * Copyright 2018 The AMP HTML Authors. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS-IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { ChunkTransform } from '../../transform'; import { TransformInterface } from '../../types'; import MagicString from 'magic-string'; export default class ImportTransform extends ChunkTransform implements TransformInterface { private importedExternalsSyntax; private importedExternalsLocalNames; dynamicImportPresent: boolean; name: string; /** * Generate externs for local names of external imports. * Otherwise, advanced mode compilation will fail since the reference is unknown. * @return string representing content of generated extern. */ extern(): string | null; /** * Before Closure Compiler modifies the source, we need to ensure external imports have been removed * since Closure will error out when it encounters them. * @param code source to parse, and modify * @return modified input source with external imports removed. */ pre: (fileName: string, source: MagicString) => Promise<MagicString>; /** * After Closure Compiler has modified the source, we need to re-add the external imports * @param code source post Closure Compiler Compilation * @return Promise containing the repaired source */ post(fileName: string, source: MagicString): Promise<MagicString>; }