Skip to content

Commit 2fae73b

Browse files
hsubox76levino
authored andcommitted
Put firebase/* entry point ESM files in their own subdirs with "type: module" package.json (firebase#6826)
1 parent 24a8cf2 commit 2fae73b

File tree

54 files changed

+224
-140
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+224
-140
lines changed

.changeset/eighty-ants-do.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'firebase': patch
3+
---
4+
5+
Modify entry point ESM bundles to conform to Node ESM specs.

packages/analytics-compat/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
"main": "dist/index.cjs.js",
77
"browser": "dist/esm/index.esm2017.mjs",
88
"module": "dist/esm/index.esm2017.mjs",
9-
"esm5": "dist/esm/index.esm.mjs",
9+
"esm5": "dist/esm/index.esm.js",
1010
"exports": {
1111
".": {
1212
"types": "./dist/src/index.d.ts",
1313
"require": "./dist/index.cjs.js",
14-
"esm5": "./dist/esm/index.esm.mjs",
14+
"esm5": "./dist/esm/index.esm.js",
1515
"default": "./dist/esm/index.esm2017.mjs"
1616
},
1717
"./package.json": "./package.json"

packages/analytics/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
"main": "dist/index.cjs.js",
77
"browser": "dist/esm/index.esm2017.mjs",
88
"module": "dist/esm/index.esm2017.mjs",
9-
"esm5": "dist/esm/index.esm.mjs",
9+
"esm5": "dist/esm/index.esm.js",
1010
"exports": {
1111
".": {
1212
"types": "./dist/analytics-public.d.ts",
1313
"require": "./dist/index.cjs.js",
14-
"esm5": "./dist/esm/index.esm.mjs",
14+
"esm5": "./dist/esm/index.esm.js",
1515
"default": "./dist/esm/index.esm2017.mjs"
1616
},
1717
"./package.json": "./package.json"

packages/app-check-compat/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
"main": "dist/index.cjs.js",
77
"browser": "dist/esm/index.esm2017.mjs",
88
"module": "dist/esm/index.esm2017.mjs",
9-
"esm5": "dist/esm/index.esm.mjs",
9+
"esm5": "dist/esm/index.esm.js",
1010
"exports": {
1111
".": {
1212
"types": "./dist/src/index.d.ts",
1313
"require": "./dist/index.cjs.js",
14-
"esm5": "./dist/esm/index.esm.mjs",
14+
"esm5": "./dist/esm/index.esm.js",
1515
"default": "./dist/esm/index.esm2017.mjs"
1616
},
1717
"./package.json": "./package.json"

packages/app-check/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
"main": "dist/index.cjs.js",
77
"browser": "dist/esm/index.esm2017.mjs",
88
"module": "dist/esm/index.esm2017.mjs",
9-
"esm5": "dist/esm/index.esm.mjs",
9+
"esm5": "dist/esm/index.esm.js",
1010
"exports": {
1111
".": {
1212
"types": "./dist/app-check-public.d.ts",
1313
"require": "./dist/index.cjs.js",
14-
"esm5": "./dist/esm/index.esm.mjs",
14+
"esm5": "./dist/esm/index.esm.js",
1515
"default": "./dist/esm/index.esm2017.mjs"
1616
},
1717
"./package.json": "./package.json"

packages/auth-compat/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66
"main": "dist/index.node.cjs.js",
77
"browser": "dist/index.esm2017.mjs",
88
"module": "dist/index.esm2017.mjs",
9-
"esm5": "dist/index.esm.mjs",
9+
"esm5": "dist/index.esm.js",
1010
"exports": {
1111
".": {
1212
"types": "./dist/auth-compat/index.d.ts",
1313
"node": {
1414
"types": "./dist/auth-compat/index.node.d.ts",
15-
"import": "./dist/esm/index.node.esm.mjs",
15+
"import": "./dist/esm/index.node.esm.js",
1616
"require": "./dist/index.node.cjs.js"
1717
},
18-
"esm5": "./dist/index.esm.mjs",
18+
"esm5": "./dist/index.esm.js",
1919
"default": "./dist/index.esm2017.mjs"
2020
},
2121
"./package.json": "./package.json"

packages/database/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
".": {
1313
"types": "./dist/public.d.ts",
1414
"node": {
15-
"import": "./dist/node-esm/index.node.esm.mjs",
15+
"import": "./dist/node-esm/index.node.esm.js",
1616
"require": "./dist/index.node.cjs.js"
1717
},
1818
"esm5": "./dist/index.esm5.js",
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/analytics",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/esm/index.esm.js",
5+
"module": "dist/esm/index.esm.js",
66
"typings": "dist/analytics/index.d.ts"
77
}
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/app-check",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/app-check/index.d.ts"
77
}

packages/firebase/app/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/app",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/app/index.d.ts"
77
}
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/auth/cordova",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/auth/cordova/index.d.ts"
77
}

packages/firebase/auth/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/auth",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/auth/index.d.ts"
77
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/auth/react-native",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/auth/react-native/index.d.ts"
77
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/analytics",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/analytics/index.d.ts"
77
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/app-check",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/app-check/index.d.ts"
77
}
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/app",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "../index.d.ts"
77
}
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/auth",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/auth/index.d.ts"
77
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/database",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/database/index.d.ts"
77
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/firestore",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/firestore/index.d.ts"
77
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/functions",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/functions/index.d.ts"
77
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/installations",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/installations/index.d.ts"
77
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/messaging",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/messaging/index.d.ts"
77
}

packages/firebase/compat/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "firebase/compat",
33
"main": "dist/index.node.cjs",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"react-native": "dist/index.rn.cjs.js",
77
"typings": "index.d.ts",
88
"components": [
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/performance",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/performance/index.d.ts"
77
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/remote-config",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/remote-config/index.d.ts"
77
}

packages/firebase/compat/rollup.config.js

+45-6
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import json from '@rollup/plugin-json';
2727
import pkg from '../package.json';
2828
import compatPkg from './package.json';
2929
import appPkg from './app/package.json';
30+
import { emitModulePackageFile } from '../../../scripts/build/rollup_emit_module_package_file';
3031

3132
const external = Object.keys(pkg.dependencies || {});
3233
const uglifyOptions = {
@@ -92,7 +93,25 @@ const typescriptPluginCDN = rollupTypescriptPlugin({
9293
*/
9394
const appBuilds = [
9495
/**
95-
* App Browser Builds
96+
* App ESM Build
97+
* Uses "type:module" in package.json to signal this is ESM.
98+
* Allows the extension to remain '.js' as some tools do not recognize
99+
* '.mjs'.
100+
*/
101+
{
102+
input: `${__dirname}/app/index.ts`,
103+
output: [
104+
{
105+
file: resolve(__dirname, 'app', appPkg.browser),
106+
format: 'es',
107+
sourcemap: true
108+
}
109+
],
110+
plugins: [...plugins, typescriptPlugin, emitModulePackageFile()],
111+
external: id => external.some(dep => id === dep || id.startsWith(`${dep}/`))
112+
},
113+
/**
114+
* App CJS/MJS Builds
96115
*/
97116
{
98117
input: `${__dirname}/app/index.ts`,
@@ -106,11 +125,6 @@ const appBuilds = [
106125
file: resolve(__dirname, 'app', appPkg.main.replace('.cjs.js', '.mjs')),
107126
format: 'es',
108127
sourcemap: true
109-
},
110-
{
111-
file: resolve(__dirname, 'app', appPkg.browser),
112-
format: 'es',
113-
sourcemap: true
114128
}
115129
],
116130
plugins: [...plugins, typescriptPlugin],
@@ -137,6 +151,28 @@ const componentBuilds = compatPkg.components
137151
.map(component => {
138152
const pkg = require(`${__dirname}/${component}/package.json`);
139153
return [
154+
/**
155+
* Component ESM build
156+
* Uses "type:module" in package.json to signal this is ESM.
157+
* Allows the extension to remain '.js' as some tools do not recognize
158+
* '.mjs'.
159+
*/
160+
{
161+
input: `${__dirname}/${component}/index.ts`,
162+
output: [
163+
{
164+
file: resolve(__dirname, component, pkg.browser),
165+
format: 'es',
166+
sourcemap: true
167+
}
168+
],
169+
plugins: [...plugins, typescriptPlugin, emitModulePackageFile()],
170+
external: id =>
171+
external.some(dep => id === dep || id.startsWith(`${dep}/`))
172+
},
173+
/**
174+
* Component CJS/MJS builds
175+
*/
140176
{
141177
input: `${__dirname}/${component}/index.ts`,
142178
output: [
@@ -164,6 +200,9 @@ const componentBuilds = compatPkg.components
164200
external: id =>
165201
external.some(dep => id === dep || id.startsWith(`${dep}/`))
166202
},
203+
/**
204+
* Component UMD build
205+
*/
167206
{
168207
input: `${__dirname}/${component}/index.ts`,
169208
output: createUmdOutputConfig(`firebase-${component}-compat.js`),
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/compat/storage",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/compat/storage/index.d.ts"
77
}
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/database",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/database/index.d.ts"
77
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase/firestore/lite",
33
"main": "dist/index.cjs.js",
4-
"browser": "dist/index.esm.mjs",
5-
"module": "dist/index.esm.mjs",
4+
"browser": "dist/index.esm.js",
5+
"module": "dist/index.esm.js",
66
"typings": "dist/firestore/lite/index.d.ts"
77
}

0 commit comments

Comments
 (0)