packager: ResolutionRequest: use moduleMap instead of hasteMap

Reviewed By: cpojer

Differential Revision: D4605535

fbshipit-source-id: bc8394eb296f3fbeda5d8f0f3c17790db8691033
This commit is contained in:
Jean Lauliac
2017-03-02 08:33:04 -08:00
committed by Facebook Github Bot
parent 5d37bfa605
commit 067496e5f6
5 changed files with 80 additions and 38 deletions

View File

@@ -9,37 +9,55 @@
* @flow
*/
'use strict';
'use strict';
import type { // eslint-disable-line sort-requires
import type { // eslint-disable-line sort-requires
Extensions,
Path,
} from './node-haste.flow';
import type {
import type {
ResolveFn,
TransformedFile,
} from '../types.flow';
const DependencyGraphHelpers = require('../../node-haste/DependencyGraph/DependencyGraphHelpers');
const HasteFS = require('./HasteFS');
const HasteMap = require('../../node-haste/DependencyGraph/HasteMap');
const Module = require('./Module');
const ModuleCache = require('./ModuleCache');
const ResolutionRequest = require('../../node-haste/DependencyGraph/ResolutionRequest');
const DependencyGraphHelpers = require('../../node-haste/DependencyGraph/DependencyGraphHelpers');
const HasteFS = require('./HasteFS');
const HasteMap = require('../../node-haste/DependencyGraph/HasteMap');
const Module = require('./Module');
const ModuleCache = require('./ModuleCache');
const ResolutionRequest = require('../../node-haste/DependencyGraph/ResolutionRequest');
const defaults = require('../../../defaults');
const defaults = require('../../../defaults');
type ResolveOptions = {|
type ResolveOptions = {|
assetExts: Extensions,
extraNodeModules: {[id: string]: string},
transformedFiles: {[path: Path]: TransformedFile},
|};
const platforms = new Set(defaults.platforms);
const platforms = new Set(defaults.platforms);
exports.createResolveFn = function(options: ResolveOptions): ResolveFn {
const {
/**
* We don't need to crawl the filesystem all over again so we just mock
* a jest-haste-map's ModuleMap instance. Eventually, though, we'll
* want to figure out how to reunify and get rid of `HasteMap`.
*/
function getFakeModuleMap(hasteMap: HasteMap) {
return {
getModule(name: string, platform_: string): ?string {
const module = hasteMap.getModule(name, platform_);
return module && module.type === 'Module' ? module.path : null;
},
getPackage(name: string, platform_: string): ?string {
const module = hasteMap.getModule(name, platform_);
return module && module.type === 'Package' ? module.path : null;
},
};
}
exports.createResolveFn = function(options: ResolveOptions): ResolveFn {
const {
assetExts,
extraNodeModules,
transformedFiles,
@@ -82,6 +100,7 @@
hasteMap,
helpers,
moduleCache,
moduleMap: getFakeModuleMap(hasteMap),
platform,
platforms,
preferNativePlatform: true,