Skip to content

Commit 0b3ca78

Browse files
authored
Add exports to all packages (#5646)
* exports for analytics * support exports for app * support exports for app-check * add exports to auth * support exports for auth-compat * add exports to component * add exports to database packages * exports for firestore * add exports to functions * add exports to installations * add exports to logger * add exports to messaging * add exports to perf * add exports to rc * add exports to storage * update template * add exports to util * add exports to webchannel * use default import to import cjs libs * make node code esm compatible * remove esm entrypoint for app in nodejs to mininize dual package hazard * reorganize builds by env * fix typo * format * remove esm entrypoint for nodejs for fcm * expose package.json to nodejs * fix * fix path in build * simplify exports * formatting * enable esModuleInterop * use default import * use default import * remove esm support for Nodejs in messaging
1 parent 6160497 commit 0b3ca78

File tree

179 files changed

+1406
-1196
lines changed

Some content is hidden

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

179 files changed

+1406
-1196
lines changed

config/tsconfig.base.json

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"module": "ES2015",
2020
"moduleResolution": "node",
2121
"resolveJsonModule": true,
22+
"esModuleInterop": true,
2223
"sourceMap": true,
2324
"target": "es5",
2425
"typeRoots": [

packages/analytics-compat/package.json

+11-4
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,16 @@
44
"description": "",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"main": "dist/index.cjs.js",
7-
"browser": "dist/index.esm2017.js",
8-
"module": "dist/index.esm2017.js",
7+
"browser": "dist/esm/index.esm2017.js",
8+
"module": "dist/esm/index.esm2017.js",
9+
"esm5": "dist/esm/index.esm.js",
10+
"exports": {
11+
".": {
12+
"require": "./dist/index.cjs.js",
13+
"default": "./dist/esm/index.esm2017.js"
14+
},
15+
"./package.json": "./package.json"
16+
},
917
"files": [
1018
"dist"
1119
],
@@ -54,6 +62,5 @@
5462
".ts"
5563
],
5664
"reportDir": "./coverage/node"
57-
},
58-
"esm5": "dist/index.esm.js"
65+
}
5966
}

packages/analytics-compat/rollup.config.js

+20-27
Original file line numberDiff line numberDiff line change
@@ -18,39 +18,20 @@
1818
import json from '@rollup/plugin-json';
1919
import typescriptPlugin from 'rollup-plugin-typescript2';
2020
import typescript from 'typescript';
21+
import { emitModulePackageFile } from '../../scripts/build/rollup_emit_module_package_file';
2122
import pkg from './package.json';
2223

2324
const deps = Object.keys(
2425
Object.assign({}, pkg.peerDependencies, pkg.dependencies)
2526
);
26-
/**
27-
* ES5 Builds
28-
*/
27+
2928
const es5BuildPlugins = [
3029
typescriptPlugin({
3130
typescript
3231
}),
3332
json()
3433
];
3534

36-
const es5Builds = [
37-
/**
38-
* Browser Builds
39-
*/
40-
{
41-
input: 'src/index.ts',
42-
output: [
43-
{ file: pkg.main, format: 'cjs', sourcemap: true },
44-
{ file: pkg.esm5, format: 'es', sourcemap: true }
45-
],
46-
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
47-
plugins: es5BuildPlugins
48-
}
49-
];
50-
51-
/**
52-
* ES2017 Builds
53-
*/
5435
const es2017BuildPlugins = [
5536
typescriptPlugin({
5637
typescript,
@@ -63,20 +44,32 @@ const es2017BuildPlugins = [
6344
json({ preferConst: true })
6445
];
6546

66-
const es2017Builds = [
47+
const esmBuilds = [
6748
{
68-
/**
69-
* Browser Build
70-
*/
7149
input: 'src/index.ts',
7250
output: {
7351
file: pkg.browser,
7452
format: 'es',
7553
sourcemap: true
7654
},
7755
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
78-
plugins: es2017BuildPlugins
56+
plugins: [...es2017BuildPlugins, emitModulePackageFile()]
57+
},
58+
{
59+
input: 'src/index.ts',
60+
output: { file: pkg.esm5, format: 'es', sourcemap: true },
61+
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
62+
plugins: [...es5BuildPlugins, emitModulePackageFile()]
63+
}
64+
];
65+
66+
const cjsBuilds = [
67+
{
68+
input: 'src/index.ts',
69+
output: { file: pkg.main, format: 'cjs', sourcemap: true },
70+
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
71+
plugins: es5BuildPlugins
7972
}
8073
];
8174

82-
export default [...es5Builds, ...es2017Builds];
75+
export default [...esmBuilds, ...cjsBuilds];

packages/analytics-compat/src/service.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { AnalyticsService } from './service';
1919
import firebase, { FirebaseApp } from '@firebase/app-compat';
2020
import * as analyticsExp from '@firebase/analytics';
2121
import { stub, match, SinonStub } from 'sinon';
22-
import * as sinonChai from 'sinon-chai';
22+
import sinonChai from 'sinon-chai';
2323

2424
use(sinonChai);
2525

packages/analytics/package.json

+11-4
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,16 @@
44
"description": "A analytics package for new firebase packages",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"main": "dist/index.cjs.js",
7-
"browser": "dist/index.esm2017.js",
8-
"module": "dist/index.esm2017.js",
7+
"browser": "dist/esm/index.esm2017.js",
8+
"module": "dist/esm/index.esm2017.js",
9+
"esm5": "dist/esm/index.esm.js",
10+
"exports": {
11+
".": {
12+
"require": "./dist/index.cjs.js",
13+
"default": "./dist/esm/index.esm2017.js"
14+
},
15+
"./package.json": "./package.json"
16+
},
917
"files": [
1018
"dist"
1119
],
@@ -60,6 +68,5 @@
6068
".ts"
6169
],
6270
"reportDir": "./coverage/node"
63-
},
64-
"esm5": "dist/index.esm.js"
71+
}
6572
}

packages/analytics/rollup.config.js

+33-36
Original file line numberDiff line numberDiff line change
@@ -20,49 +20,20 @@ import typescriptPlugin from 'rollup-plugin-typescript2';
2020
import replace from 'rollup-plugin-replace';
2121
import typescript from 'typescript';
2222
import { generateBuildTargetReplaceConfig } from '../../scripts/build/rollup_replace_build_target';
23+
import { emitModulePackageFile } from '../../scripts/build/rollup_emit_module_package_file';
2324
import pkg from './package.json';
2425

2526
const deps = [
2627
...Object.keys(Object.assign({}, pkg.peerDependencies, pkg.dependencies))
2728
];
2829

29-
/**
30-
* ES5 Builds
31-
*/
3230
const es5BuildPlugins = [
3331
typescriptPlugin({
3432
typescript
3533
}),
3634
json()
3735
];
3836

39-
const es5Builds = [
40-
/**
41-
* Browser Builds
42-
*/
43-
{
44-
input: 'src/index.ts',
45-
output: [{ file: pkg.main, format: 'cjs', sourcemap: true }],
46-
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
47-
plugins: [
48-
...es5BuildPlugins,
49-
replace(generateBuildTargetReplaceConfig('cjs', 5))
50-
]
51-
},
52-
{
53-
input: 'src/index.ts',
54-
output: [{ file: pkg.esm5, format: 'es', sourcemap: true }],
55-
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
56-
plugins: [
57-
...es5BuildPlugins,
58-
replace(generateBuildTargetReplaceConfig('esm', 5))
59-
]
60-
}
61-
];
62-
63-
/**
64-
* ES2017 Builds
65-
*/
6637
const es2017BuildPlugins = [
6738
typescriptPlugin({
6839
typescript,
@@ -75,11 +46,21 @@ const es2017BuildPlugins = [
7546
json({ preferConst: true })
7647
];
7748

78-
const es2017Builds = [
49+
/**
50+
* ESM builds
51+
*/
52+
const esmBuilds = [
53+
{
54+
input: 'src/index.ts',
55+
output: [{ file: pkg.esm5, format: 'es', sourcemap: true }],
56+
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
57+
plugins: [
58+
...es5BuildPlugins,
59+
replace(generateBuildTargetReplaceConfig('esm', 5)),
60+
emitModulePackageFile()
61+
]
62+
},
7963
{
80-
/**
81-
* Browser Build
82-
*/
8364
input: 'src/index.ts',
8465
output: {
8566
file: pkg.browser,
@@ -89,9 +70,25 @@ const es2017Builds = [
8970
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
9071
plugins: [
9172
...es2017BuildPlugins,
92-
replace(generateBuildTargetReplaceConfig('esm', 2017))
73+
replace(generateBuildTargetReplaceConfig('esm', 2017)),
74+
emitModulePackageFile()
75+
]
76+
}
77+
];
78+
79+
/**
80+
* CJS builds
81+
*/
82+
const cjsBuilds = [
83+
{
84+
input: 'src/index.ts',
85+
output: [{ file: pkg.main, format: 'cjs', sourcemap: true }],
86+
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
87+
plugins: [
88+
...es5BuildPlugins,
89+
replace(generateBuildTargetReplaceConfig('cjs', 5))
9390
]
9491
}
9592
];
9693

97-
export default [...es5Builds, ...es2017Builds];
94+
export default [...esmBuilds, ...cjsBuilds];

packages/analytics/testing/setup.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
*/
1717

1818
import { use } from 'chai';
19-
import * as chaiAsPromised from 'chai-as-promised';
20-
import * as sinonChai from 'sinon-chai';
19+
import chaiAsPromised from 'chai-as-promised';
20+
import sinonChai from 'sinon-chai';
2121

2222
use(chaiAsPromised);
2323
use(sinonChai);

packages/app-check-compat/package.json

+12-5
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,16 @@
44
"description": "A compat App Check package for new firebase packages",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"main": "dist/index.cjs.js",
7-
"browser": "dist/index.esm2017.js",
8-
"module": "dist/index.esm2017.js",
7+
"browser": "dist/esm/index.esm2017.js",
8+
"module": "dist/esm/index.esm2017.js",
9+
"esm5": "dist/esm/index.esm.js",
10+
"exports": {
11+
".": {
12+
"require": "./dist/index.cjs.js",
13+
"default": "./dist/esm/index.esm2017.js"
14+
},
15+
"./package.json": "./package.json"
16+
},
917
"files": [
1018
"dist"
1119
],
@@ -55,6 +63,5 @@
5563
".ts"
5664
],
5765
"reportDir": "./coverage/node"
58-
},
59-
"esm5": "dist/index.esm.js"
60-
}
66+
}
67+
}

packages/app-check-compat/rollup.config.js

+20-27
Original file line numberDiff line numberDiff line change
@@ -18,39 +18,20 @@
1818
import json from '@rollup/plugin-json';
1919
import typescriptPlugin from 'rollup-plugin-typescript2';
2020
import typescript from 'typescript';
21+
import { emitModulePackageFile } from '../../scripts/build/rollup_emit_module_package_file';
2122
import pkg from './package.json';
2223

2324
const deps = Object.keys(
2425
Object.assign({}, pkg.peerDependencies, pkg.dependencies)
2526
);
26-
/**
27-
* ES5 Builds
28-
*/
27+
2928
const es5BuildPlugins = [
3029
typescriptPlugin({
3130
typescript
3231
}),
3332
json()
3433
];
3534

36-
const es5Builds = [
37-
/**
38-
* Browser Builds
39-
*/
40-
{
41-
input: 'src/index.ts',
42-
output: [
43-
{ file: pkg.main, format: 'cjs', sourcemap: true },
44-
{ file: pkg.esm5, format: 'es', sourcemap: true }
45-
],
46-
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
47-
plugins: es5BuildPlugins
48-
}
49-
];
50-
51-
/**
52-
* ES2017 Builds
53-
*/
5435
const es2017BuildPlugins = [
5536
typescriptPlugin({
5637
typescript,
@@ -63,20 +44,32 @@ const es2017BuildPlugins = [
6344
json({ preferConst: true })
6445
];
6546

66-
const es2017Builds = [
47+
const esmBuilds = [
48+
{
49+
input: 'src/index.ts',
50+
output: { file: pkg.esm5, format: 'es', sourcemap: true },
51+
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
52+
plugins: [...es5BuildPlugins, emitModulePackageFile()]
53+
},
6754
{
68-
/**
69-
* Browser Build
70-
*/
7155
input: 'src/index.ts',
7256
output: {
7357
file: pkg.browser,
7458
format: 'es',
7559
sourcemap: true
7660
},
7761
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
78-
plugins: es2017BuildPlugins
62+
plugins: [...es2017BuildPlugins, emitModulePackageFile()]
63+
}
64+
];
65+
66+
const cjsBuilds = [
67+
{
68+
input: 'src/index.ts',
69+
output: { file: pkg.main, format: 'cjs', sourcemap: true },
70+
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
71+
plugins: es5BuildPlugins
7972
}
8073
];
8174

82-
export default [...es5Builds, ...es2017Builds];
75+
export default [...esmBuilds, ...cjsBuilds];

packages/app-check-compat/rollup.shared.js

-16
This file was deleted.

0 commit comments

Comments
 (0)