fusion-cli/build/babel-plugins/babel-plugin-utils/replace-import-declaration.js (32 lines of code) (raw):

/** Copyright (c) 2018 Uber Technologies, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow */ /* eslint-env node */ const snakeCase = require('just-snake-case'); module.exports = replaceImportDeclaration; /* Before: import {syncChunkPaths, allChunkPaths} from 'fusion-core'; After: const syncChunkPaths = SECRET_SYNC_CHUNK_PATHS_GLOBAL; const allChunkPaths = SECRET_ALL_CHUNK_PATHS_GLOBAL; */ function replaceImportDeclaration( t /*: Object */, packageName /*: string | Array<string> */ ) { return { ImportDeclaration(path /*: Object */) { const sourceName = path.get('source').node.value; if ( (Array.isArray(packageName) && packageName.indexOf(sourceName) === -1) || (typeof packageName === 'string' && sourceName !== packageName) ) { return; } path.replaceWithMultiple( path.get('specifiers').map(specifier => { const specifierName = specifier.get('imported').node.name; return t.variableDeclaration('const', [ t.variableDeclarator( t.identifier(specifierName), t.identifier( 'SECRET_' + snakeCase(specifierName).toUpperCase() + '_GLOBAL' ) ), ]); }) ); }, }; }