mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-05-14 04:59:45 +08:00
Stronger typing for transformers
Reviewed By: jeanlauliac Differential Revision: D5006679 fbshipit-source-id: 795c60db363fb53bc74697e4befe50995e9b97a7
This commit is contained in:
committed by
Facebook Github Bot
parent
3dfed2e865
commit
73fc439bc0
@@ -12,6 +12,7 @@
|
||||
|
||||
const JsFileWrapping = require('./JsFileWrapping');
|
||||
|
||||
const asyncify = require('async/asyncify');
|
||||
const collectDependencies = require('./collect-dependencies');
|
||||
const defaults = require('../../../defaults');
|
||||
const docblock = require('../../node-haste/DependencyGraph/docblock');
|
||||
@@ -34,10 +35,18 @@ import type {
|
||||
export type TransformOptions = {|
|
||||
filename: string,
|
||||
polyfill?: boolean,
|
||||
transformer: Transformer,
|
||||
transformer: Transformer<*>,
|
||||
variants?: TransformVariants,
|
||||
|};
|
||||
|
||||
const defaultTransformOptions = {
|
||||
dev: true,
|
||||
generateSourceMaps: true,
|
||||
hot: false,
|
||||
inlineRequires: false,
|
||||
platform: '',
|
||||
projectRoot: '',
|
||||
};
|
||||
const defaultVariants = {default: {}};
|
||||
|
||||
const ASSET_EXTENSIONS = new Set(defaults.assetExts);
|
||||
@@ -61,17 +70,12 @@ function transformModule(
|
||||
const {filename, transformer, variants = defaultVariants} = options;
|
||||
const tasks = {};
|
||||
Object.keys(variants).forEach(name => {
|
||||
tasks[name] = cb => {
|
||||
try {
|
||||
cb(null, transformer.transform(
|
||||
code,
|
||||
filename,
|
||||
variants[name],
|
||||
));
|
||||
} catch (error) {
|
||||
cb(error, null);
|
||||
}
|
||||
};
|
||||
tasks[name] = asyncify(() => transformer.transform(
|
||||
code,
|
||||
filename,
|
||||
{...defaultTransformOptions, ...variants[name]},
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
series(tasks, (error, results: {[key: string]: TransformerResult}) => {
|
||||
|
||||
Reference in New Issue
Block a user