Pass in the platform options when loading dependencies

Reviewed By: @jingc

Differential Revision: D2488262
This commit is contained in:
Amjad Masad 2015-09-28 22:40:56 -07:00 committed by facebook-github-bot-4
parent 9ef24d8cc8
commit ca007aabb4
3 changed files with 37 additions and 6 deletions

View File

@ -47,9 +47,9 @@ exports.buildBundleFromUrl = function(options, reqUrl) {
});
};
exports.getDependencies = function(options, main) {
exports.getDependencies = function(options, bundleOptions) {
var server = createServer(options);
return server.getDependencies(main)
return server.getDependencies(bundleOptions)
.then(function(r) {
server.end();
return r.dependencies;

View File

@ -96,6 +96,21 @@ const bundleOpts = declareOpts({
}
});
const dependencyOpts = declareOpts({
platform: {
type: 'string',
required: true,
},
dev: {
type: 'boolean',
default: true,
},
entryFile: {
type: 'string',
required: true,
},
});
class Server {
constructor(options) {
const opts = validateOpts(options);
@ -174,8 +189,15 @@ class Server {
return this.buildBundle(options);
}
getDependencies(main) {
return this._bundler.getDependencies(main);
getDependencies(options) {
return Promise.resolve().then(() => {
const opts = dependencyOpts(options);
return this._bundler.getDependencies(
opts.entryFile,
opts.dev,
opts.platform,
);
});
}
_onFileChange(type, filepath, root) {

View File

@ -35,7 +35,11 @@ function _dependencies(argv, conf, resolve, reject) {
command: 'output',
description: 'File name where to store the output, ex. /tmp/dependencies.txt',
type: 'string',
}
}, {
command: 'platform',
description: 'The platform extension used for selecting modules',
type: 'string',
},
], argv);
const rootModuleAbsolutePath = args['entry-file'];
@ -57,6 +61,11 @@ function _dependencies(argv, conf, resolve, reject) {
)
)[0];
const options = {
platform: args.platform,
entryFile: relativePath,
};
const writeToFile = args.output;
const outStream = writeToFile
? fs.createWriteStream(args.output)
@ -66,7 +75,7 @@ function _dependencies(argv, conf, resolve, reject) {
log('Waiting for the packager.');
resolve(ReactPackager.createClientFor(config).then(client => {
log('Packager client was created');
return client.getDependencies(relativePath)
return client.getDependencies(options)
.then(deps => {
log('Packager returned dependencies');
client.close();