Preview: generateImportNames.js.flow
Size: 922 B
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/metro/src/ModuleGraph/worker/generateImportNames.js.flow
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @flow strict-local
*/
'use strict';
const traverse = require('@babel/traverse').default;
const nullthrows = require('nullthrows');
/**
* Select unused names for "metroImportDefault" and "metroImportAll", by
* calling "generateUid".
*/
function generateImportNames(ast: BabelNode): {
importAll: string,
importDefault: string,
} {
let importDefault;
let importAll;
traverse(ast, {
Program(path) {
importAll = path.scope.generateUid('$$_IMPORT_ALL');
importDefault = path.scope.generateUid('$$_IMPORT_DEFAULT');
path.stop();
},
});
return {
importAll: nullthrows(importAll),
importDefault: nullthrows(importDefault),
};
}
module.exports = generateImportNames;
Directory Contents
Dirs: 0 × Files: 9