Skip to content
This repository was archived by the owner on Apr 16, 2020. It is now read-only.

Commit c4fdf27

Browse files
committed
esm: Move exports logic behind a flag
1 parent fd6a107 commit c4fdf27

File tree

4 files changed

+9
-2
lines changed

4 files changed

+9
-2
lines changed

src/module_wrap.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -613,7 +613,8 @@ Maybe<const PackageConfig*> GetPackageConfig(Environment* env,
613613

614614
Local<Value> exports_v;
615615
Persistent<Value> exports;
616-
if (pkg_json->Get(env->context(),
616+
if (env->options()->experimental_exports &&
617+
pkg_json->Get(env->context(),
617618
env->exports_string()).ToLocal(&exports_v) &&
618619
!exports_v->IsNullOrUndefined()) {
619620
exports.Reset(env->isolate(), exports_v);
@@ -809,6 +810,7 @@ Maybe<URL> PackageExportsResolve(Environment* env,
809810
const std::string& pkg_subpath,
810811
const PackageConfig& pcfg,
811812
const URL& base) {
813+
CHECK(env->options()->experimental_exports);
812814
Isolate* isolate = env->isolate();
813815
Local<Context> context = env->context();
814816
Local<Value> exports = pcfg.exports.Get(isolate);

src/node_options.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,10 @@ DebugOptionsParser::DebugOptionsParser() {
300300
}
301301

302302
EnvironmentOptionsParser::EnvironmentOptionsParser() {
303+
AddOption("--experimental-exports",
304+
"experimental support for exports in package.json",
305+
&EnvironmentOptions::experimental_exports,
306+
kAllowedInEnvironment);
303307
AddOption("--experimental-modules",
304308
"experimental ES Module support and caching modules",
305309
&EnvironmentOptions::experimental_modules,

src/node_options.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ class DebugOptions : public Options {
100100
class EnvironmentOptions : public Options {
101101
public:
102102
bool abort_on_uncaught_exception = false;
103+
bool experimental_exports = false;
103104
bool experimental_modules = false;
104105
std::string es_module_specifier_resolution;
105106
bool experimental_wasm_modules = false;

test/es-module/test-esm-exports.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Flags: --experimental-modules
1+
// Flags: --experimental-modules --experimental-exports
22

33
import { mustCall } from '../common/index.mjs';
44
import { ok, strictEqual } from 'assert';

0 commit comments

Comments
 (0)