mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
5da408297f
Rely on jest for now until we get a better and less hacky solution to running tests in the browser, probably a totally different test suite with different behavior/goals.
48 lines
1.3 KiB
JavaScript
Executable File
48 lines
1.3 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
// -*- mode: js -*-
|
|
// vim: set ft=javascript :
|
|
"use strict";
|
|
|
|
var babel = require('babel');
|
|
|
|
var constants = require('../vendor/constants')(babel);
|
|
|
|
var TRANSFORM_IGNORE_RE = /^WebComponents$/;
|
|
|
|
require("commoner").version(
|
|
require("../package.json").version
|
|
).resolve(function(id) {
|
|
var context = this;
|
|
|
|
// Note that the result of context.getProvidedP() is cached for the
|
|
// duration of the build, so it is both consistent and cheap to
|
|
// evaluate multiple times.
|
|
return context.getProvidedP().then(function(idToPath) {
|
|
// If a module declares its own identifier using @providesModule
|
|
// then that identifier will be a key in the idToPath object.
|
|
if (idToPath.hasOwnProperty(id)) {
|
|
return context.readFileP(idToPath[id]);
|
|
}
|
|
|
|
// Otherwise assume the identifier maps directly to a path in the
|
|
// filesystem.
|
|
return context.readModuleP(id);
|
|
});
|
|
|
|
}).process(function(id, source) {
|
|
var context = this;
|
|
|
|
// This is hacky but that's ok… It really only matters for tests since it
|
|
// won't otherwise be in the dependency tree.
|
|
if (!TRANSFORM_IGNORE_RE.test(id)) {
|
|
// This is where JSX, ES6, etc. desugaring happens.
|
|
source = babel.transform(source, {
|
|
blacklist: ['spec.functionName', 'validation.react'],
|
|
plugins: [constants],
|
|
filename: id
|
|
}).code;
|
|
}
|
|
|
|
return source;
|
|
});
|