Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add package.json "exports" to Metro packages, alias "private" to "src" #1441

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions packages/buck-worker-tool/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@
"description": "Implementation of the Buck worker protocol for Node.js.",
"license": "MIT",
"main": "src/worker-tool.js",
"exports": {
".": "./src/worker-tool.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"dependencies": {
"duplexer": "^0.1.1",
"flow-enums-runtime": "^0.0.6",
Expand Down
7 changes: 7 additions & 0 deletions packages/metro-babel-register/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
"version": "0.81.1",
"description": "🚇 babel/register configuration for Metro.",
"main": "src/babel-register.js",
"exports": {
".": "./src/babel-register.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-babel-transformer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"version": "0.81.1",
"description": "🚇 Base Babel transformer for Metro.",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-cache-key/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"version": "0.81.1",
"description": "🚇 Cache key utility.",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-cache/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"version": "0.81.1",
"description": "🚇 Cache layers for Metro.",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
9 changes: 9 additions & 0 deletions packages/metro-config/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@
"version": "0.81.1",
"description": "🚇 Config parser for Metro.",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js",
"./src/defaults": "./src/defaults/index.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"version": "0.81.1",
"description": "🚇 Metro's core package.",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-file-map/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"version": "0.81.1",
"description": "[Experimental] - 🚇 File crawling, watching and mapping for Metro",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-memory-fs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"version": "0.81.1",
"description": "🚇 A memory-based implementation of `fs` useful for testing.",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-minify-terser/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"version": "0.81.1",
"description": "🚇 Minifier for Metro based on Terser.",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
10 changes: 9 additions & 1 deletion packages/metro-resolver/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,15 @@
"name": "metro-resolver",
"version": "0.81.1",
"description": "🚇 Implementation of Metro's resolution logic.",
"main": "src",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
7 changes: 6 additions & 1 deletion packages/metro-runtime/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@
"name": "metro-runtime",
"version": "0.81.1",
"description": "🚇 Module required for evaluating Metro bundles.",
"main": "src",
"exports": {
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-source-map/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"version": "0.81.1",
"description": "🚇 Source map generator for Metro.",
"main": "src/source-map.js",
"exports": {
".": "./src/source-map.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js",
"./src/Consumer": "./src/Consumer/index.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-symbolicate/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@
"license": "MIT",
"main": "./src/index.js",
"bin": "./src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-transform-plugins/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"version": "0.81.1",
"description": "🚇 Transform plugins for Metro.",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro-transform-worker/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"version": "0.81.1",
"description": "🚇 Transform worker for Metro.",
"main": "src/index.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
8 changes: 8 additions & 0 deletions packages/metro/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@
"description": "🚇 The JavaScript bundler for React Native.",
"main": "src/index.js",
"bin": "src/cli.js",
"exports": {
".": "./src/index.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src": "./src/index.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
7 changes: 7 additions & 0 deletions packages/ob1/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
"version": "0.81.1",
"description": "A small library for working with 0- and 1-based offsets in a type-checked way.",
"main": "src/ob1.js",
"exports": {
".": "./src/ob1.js",
"./package.json": "./package.json",
"./private/*": "./src/*.js",
"./src/*.js": "./src/*.js",
"./src/*": "./src/*.js"
},
"repository": {
"type": "git",
"url": "[email protected]:facebook/metro.git"
Expand Down
29 changes: 29 additions & 0 deletions scripts/__tests__/subpackages-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,32 @@ test('forces all packages to have an .npmignore with expected entries', () => {
);
});
});

test('use package.json#exports, exporting a main and package.json', () => {
checkAssertionInPackages(getPackages(), packagePath => {
const packageJson = readPackageJson(packagePath);
expect(packageJson.exports).toEqual(
expect.objectContaining({
...(packageJson.main != null
? {
'.': packageJson.main.startsWith('./')
? packageJson.main
: './' + packageJson.main,
}
: null),
...(packageJson.main?.endsWith('src/index.js')
? {
// For backward compatibility, allow importing src as a directory
'./src': './src/index.js',
}
: null),
'./package.json': './package.json',
'./private/*': './src/*.js',
// If an import specifies .js, keep it
'./src/*.js': './src/*.js',
// Add .js to extensionless imports
'./src/*': './src/*.js',
}),
);
});
});
Loading