mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-09-28 21:24:26 +08:00
Since we have the major version jump, we needed to update quite
a few things to make this work:
1. rollup4 ships with native binaries. We can't check them into
our node_modules for all platforms. Luckily they also ship a
a wasm version. This requires us to adjust the 'binary' path
to `node_modules/@rollup/wasm-node/dist/bin/rollup` instead.
2. rollup4 is more strict when it comes to ES modules vs
CommonJS. We adjust this by renaming the rollup config files.
3. Some plugins got deprecated so we had to replace them with
the newer versions (source maps and terser).
Bug: None
Change-Id: If13d590c8185db6ad85b3992d0a869111909dc8c
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5999255
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
89 lines
3.0 KiB
JavaScript
89 lines
3.0 KiB
JavaScript
var test = require('tape');
|
|
var keys = require('object-keys');
|
|
var semver = require('semver');
|
|
|
|
var resolve = require('../');
|
|
|
|
var brokenNode = semver.satisfies(process.version, '11.11 - 11.13');
|
|
|
|
test('core modules', function (t) {
|
|
t.test('isCore()', function (st) {
|
|
st.ok(resolve.isCore('fs'));
|
|
st.ok(resolve.isCore('net'));
|
|
st.ok(resolve.isCore('http'));
|
|
|
|
st.ok(!resolve.isCore('seq'));
|
|
st.ok(!resolve.isCore('../'));
|
|
|
|
st.ok(!resolve.isCore('toString'));
|
|
|
|
st.end();
|
|
});
|
|
|
|
t.test('core list', function (st) {
|
|
var cores = keys(resolve.core);
|
|
st.plan(cores.length);
|
|
|
|
for (var i = 0; i < cores.length; ++i) {
|
|
var mod = cores[i];
|
|
// note: this must be require, not require.resolve, due to https://github.com/nodejs/node/issues/43274
|
|
var requireFunc = function () { require(mod); }; // eslint-disable-line no-loop-func
|
|
t.comment(mod + ': ' + resolve.core[mod]);
|
|
if (resolve.core[mod]) {
|
|
st.doesNotThrow(requireFunc, mod + ' supported; requiring does not throw');
|
|
} else if (brokenNode) {
|
|
st.ok(true, 'this version of node is broken: attempting to require things that fail to resolve breaks "home_paths" tests');
|
|
} else {
|
|
st.throws(requireFunc, mod + ' not supported; requiring throws');
|
|
}
|
|
}
|
|
|
|
st.end();
|
|
});
|
|
|
|
t.test('core via repl module', { skip: !resolve.core.repl }, function (st) {
|
|
var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle
|
|
if (!libs) {
|
|
st.skip('module.builtinModules does not exist');
|
|
return st.end();
|
|
}
|
|
for (var i = 0; i < libs.length; ++i) {
|
|
var mod = libs[i];
|
|
st.ok(resolve.core[mod], mod + ' is a core module');
|
|
st.doesNotThrow(
|
|
function () { require(mod); }, // eslint-disable-line no-loop-func
|
|
'requiring ' + mod + ' does not throw'
|
|
);
|
|
}
|
|
st.end();
|
|
});
|
|
|
|
t.test('core via builtinModules list', { skip: !resolve.core.module }, function (st) {
|
|
var libs = require('module').builtinModules;
|
|
if (!libs) {
|
|
st.skip('module.builtinModules does not exist');
|
|
return st.end();
|
|
}
|
|
var blacklist = [
|
|
'_debug_agent',
|
|
'v8/tools/tickprocessor-driver',
|
|
'v8/tools/SourceMap',
|
|
'v8/tools/tickprocessor',
|
|
'v8/tools/profile'
|
|
];
|
|
for (var i = 0; i < libs.length; ++i) {
|
|
var mod = libs[i];
|
|
if (blacklist.indexOf(mod) === -1) {
|
|
st.ok(resolve.core[mod], mod + ' is a core module');
|
|
st.doesNotThrow(
|
|
function () { require(mod); }, // eslint-disable-line no-loop-func
|
|
'requiring ' + mod + ' does not throw'
|
|
);
|
|
}
|
|
}
|
|
st.end();
|
|
});
|
|
|
|
t.end();
|
|
});
|