Skip to content

Commit 93795c7

Browse files
authored
report build variants for packages (#5596)
* report build variants for app * report build target for firestore * report runtime env for app * report build target for auth * report build target for database and analytics * report build variants for functions * report build variants for installations * report things for fcm * report build variant for perf * report build variants for storage * Create stupid-scissors-compare.md * fix lint * prettier * update typing paths
1 parent f5a1714 commit 93795c7

32 files changed

+458
-89
lines changed

.changeset/stupid-scissors-compare.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
"@firebase/analytics": patch
3+
"@firebase/app": patch
4+
"@firebase/auth": patch
5+
"@firebase/database": patch
6+
"@firebase/firestore": patch
7+
"@firebase/functions": patch
8+
"@firebase/installations": patch
9+
"@firebase/messaging": patch
10+
"@firebase/performance": patch
11+
"@firebase/remote-config": patch
12+
"@firebase/storage": patch
13+
---
14+
15+
report build variants for packages

packages/analytics/rollup.config.js

+20-6
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717

1818
import json from '@rollup/plugin-json';
1919
import typescriptPlugin from 'rollup-plugin-typescript2';
20+
import replace from 'rollup-plugin-replace';
2021
import typescript from 'typescript';
22+
import { generateBuildTargetReplaceConfig } from '../../scripts/build/rollup_replace_build_target';
2123
import pkg from './package.json';
2224

2325
const deps = [
@@ -40,12 +42,21 @@ const es5Builds = [
4042
*/
4143
{
4244
input: 'src/index.ts',
43-
output: [
44-
{ file: pkg.main, format: 'cjs', sourcemap: true },
45-
{ file: pkg.esm5, format: 'es', sourcemap: true }
46-
],
45+
output: [{ file: pkg.main, format: 'cjs', sourcemap: true }],
4746
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
48-
plugins: es5BuildPlugins
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+
]
4960
}
5061
];
5162

@@ -76,7 +87,10 @@ const es2017Builds = [
7687
sourcemap: true
7788
},
7889
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
79-
plugins: es2017BuildPlugins
90+
plugins: [
91+
...es2017BuildPlugins,
92+
replace(generateBuildTargetReplaceConfig('esm', 2017))
93+
]
8094
}
8195
];
8296

packages/analytics/src/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ function registerAnalytics(): void {
6565
);
6666

6767
registerVersion(name, version);
68+
// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation
69+
registerVersion(name, version, '__BUILD_TARGET__');
6870

6971
function internalFactory(
7072
container: ComponentContainer

packages/app/rollup.config.js

+23-3
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
*/
1717

1818
import typescriptPlugin from 'rollup-plugin-typescript2';
19+
import replace from 'rollup-plugin-replace';
1920
import typescript from 'typescript';
2021
import json from '@rollup/plugin-json';
22+
import { generateBuildTargetReplaceConfig } from '../../scripts/build/rollup_replace_build_target';
2123
import pkg from './package.json';
2224

2325
const deps = Object.keys(
@@ -42,7 +44,13 @@ const es5Builds = [
4244
input: 'src/index.ts',
4345
output: [{ file: pkg.esm5, format: 'es', sourcemap: true }],
4446
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
45-
plugins: es5BuildPlugins
47+
plugins: [
48+
...es5BuildPlugins,
49+
replace({
50+
...generateBuildTargetReplaceConfig('esm', 5),
51+
'__RUNTIME_ENV__': ''
52+
})
53+
]
4654
},
4755
/**
4856
* Node.js Build
@@ -51,7 +59,13 @@ const es5Builds = [
5159
input: 'src/index.ts',
5260
output: [{ file: pkg.main, format: 'cjs', sourcemap: true }],
5361
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
54-
plugins: es5BuildPlugins
62+
plugins: [
63+
...es5BuildPlugins,
64+
replace({
65+
...generateBuildTargetReplaceConfig('cjs', 5),
66+
'__RUNTIME_ENV__': 'node'
67+
})
68+
]
5569
}
5670
];
5771

@@ -84,7 +98,13 @@ const es2017Builds = [
8498
sourcemap: true
8599
},
86100
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`)),
87-
plugins: es2017BuildPlugins
101+
plugins: [
102+
...es2017BuildPlugins,
103+
replace({
104+
...generateBuildTargetReplaceConfig('esm', 2017),
105+
'__RUNTIME_ENV__': ''
106+
})
107+
]
88108
}
89109
];
90110

packages/app/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@ export * from './api';
2828
export * from './internal';
2929
export * from './public-types';
3030

31-
registerCoreComponents();
31+
registerCoreComponents('__RUNTIME_ENV__');

packages/app/src/registerCoreComponents.ts

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ export function registerCoreComponents(variant?: string): void {
3232

3333
// Register `app` package.
3434
registerVersion(name, version, variant);
35+
// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation
36+
registerVersion(name, version, '__BUILD_TARGET__');
3537
// Register platform SDK identifier (no version).
3638
registerVersion('fire-js', '');
3739
}

packages/auth/rollup.config.js

+29-13
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@
1818
import strip from '@rollup/plugin-strip';
1919
import typescriptPlugin from 'rollup-plugin-typescript2';
2020
import json from '@rollup/plugin-json';
21+
import replace from 'rollup-plugin-replace';
2122
import typescript from 'typescript';
2223
import alias from '@rollup/plugin-alias';
24+
import { generateBuildTargetReplaceConfig } from '../../scripts/build/rollup_replace_build_target';
2325
import pkg from './package.json';
2426

2527
const deps = Object.keys(Object.assign({}, pkg.peerDependencies, pkg.dependencies));
@@ -30,14 +32,14 @@ const deps = Object.keys(Object.assign({}, pkg.peerDependencies, pkg.dependencie
3032
* more info. This regex tests explicitly ./src/platform_browser so that the
3133
* only impacted file is the main index.ts
3234
*/
33-
const nodeAliasPlugin = alias({
35+
const nodeAliasPlugin = alias({
3436
entries: [
35-
{
36-
find: /^\.\/src\/platform_browser(\/.*)?$/,
37-
replacement: `./src/platform_node`
38-
}
37+
{
38+
find: /^\.\/src\/platform_browser(\/.*)?$/,
39+
replacement: `./src/platform_node`
40+
}
3941
]
40-
});
42+
});
4143
/**
4244
* ES5 Builds
4345
*/
@@ -60,8 +62,8 @@ const es5Builds = [
6062
index: 'index.ts',
6163
internal: 'internal/index.ts'
6264
},
63-
output: [{ dir: 'dist/esm5', format: 'esm', sourcemap: true }],
64-
plugins: es5BuildPlugins,
65+
output: [{ dir: 'dist/esm5', format: 'es', sourcemap: true }],
66+
plugins: [...es5BuildPlugins, replace(generateBuildTargetReplaceConfig('esm', 5))],
6567
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`))
6668
},
6769
/**
@@ -86,7 +88,8 @@ const es5Builds = [
8688
]
8789
}
8890

89-
})
91+
}),
92+
replace(generateBuildTargetReplaceConfig('esm', 5))
9093
],
9194
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`))
9295
},
@@ -99,7 +102,11 @@ const es5Builds = [
99102
internal: 'internal/index.ts'
100103
},
101104
output: [{ dir: 'dist/node', format: 'cjs', sourcemap: true }],
102-
plugins: [nodeAliasPlugin, ...es5BuildPlugins],
105+
plugins: [
106+
nodeAliasPlugin,
107+
...es5BuildPlugins,
108+
replace(generateBuildTargetReplaceConfig('cjs', 5))
109+
],
103110
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`))
104111
},
105112
/**
@@ -111,7 +118,10 @@ const es5Builds = [
111118
internal: 'internal/index.ts'
112119
},
113120
output: [{ dir: 'dist/cordova', format: 'es', sourcemap: true }],
114-
plugins: es5BuildPlugins,
121+
plugins: [
122+
...es5BuildPlugins,
123+
replace(generateBuildTargetReplaceConfig('esm', 5))
124+
],
115125
external: id =>
116126
[...deps, 'cordova'].some(dep => id === dep || id.startsWith(`${dep}/`))
117127
},
@@ -124,7 +134,10 @@ const es5Builds = [
124134
internal: 'internal/index.ts'
125135
},
126136
output: [{ dir: 'dist/rn', format: 'cjs', sourcemap: true }],
127-
plugins: es5BuildPlugins,
137+
plugins: [
138+
...es5BuildPlugins,
139+
replace(generateBuildTargetReplaceConfig('cjs', 5))
140+
],
128141
external: id =>
129142
[...deps, 'react-native'].some(
130143
dep => id === dep || id.startsWith(`${dep}/`)
@@ -164,7 +177,10 @@ const es2017Builds = [
164177
format: 'es',
165178
sourcemap: true
166179
},
167-
plugins: es2017BuildPlugins,
180+
plugins: [
181+
...es2017BuildPlugins,
182+
replace(generateBuildTargetReplaceConfig('esm', 2017))
183+
],
168184
external: id => deps.some(dep => id === dep || id.startsWith(`${dep}/`))
169185
}
170186
];

packages/auth/src/core/auth/register.ts

+2
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,6 @@ export function registerAuth(clientPlatform: ClientPlatform): void {
123123
);
124124

125125
registerVersion(name, version, getVersionForPlatform(clientPlatform));
126+
// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation
127+
registerVersion(name, version, '__BUILD_TARGET__');
126128
}

packages/database/rollup.config.js

+14-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717

1818
import json from '@rollup/plugin-json';
1919
import typescriptPlugin from 'rollup-plugin-typescript2';
20+
import replace from 'rollup-plugin-replace';
2021
import typescript from 'typescript';
22+
import { generateBuildTargetReplaceConfig } from '../../scripts/build/rollup_replace_build_target';
2123
import pkg from './package.json';
2224

2325
const deps = [
@@ -50,7 +52,10 @@ const es5Builds = [
5052
{
5153
input: 'src/index.node.ts',
5254
output: [{ file: pkg.main, format: 'cjs', sourcemap: true }],
53-
plugins: es5BuildPlugins,
55+
plugins: [
56+
...es5BuildPlugins,
57+
replace(generateBuildTargetReplaceConfig('cjs', 5))
58+
],
5459
treeshake: {
5560
moduleSideEffects: false
5661
},
@@ -69,7 +74,10 @@ const es5Builds = [
6974
sourcemap: true
7075
}
7176
],
72-
plugins: es5BuildPlugins,
77+
plugins: [
78+
...es5BuildPlugins,
79+
replace(generateBuildTargetReplaceConfig('esm', 5))
80+
],
7381
treeshake: {
7482
moduleSideEffects: false
7583
},
@@ -120,7 +128,10 @@ const es2017Builds = [
120128
sourcemap: true
121129
}
122130
],
123-
plugins: es2017BuildPlugins,
131+
plugins: [
132+
...es2017BuildPlugins,
133+
replace(generateBuildTargetReplaceConfig('esm', 2017))
134+
],
124135
treeshake: {
125136
moduleSideEffects: false
126137
},

packages/database/src/register.ts

+2
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,6 @@ export function registerDatabase(variant?: string): void {
4747
).setMultipleInstances(true)
4848
);
4949
registerVersion(name, version, variant);
50+
// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation
51+
registerVersion(name, version, '__BUILD_TARGET__');
5052
}

packages/firestore/lite/register.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,7 @@ export function registerFirestore(): void {
5353
ComponentType.PUBLIC
5454
)
5555
);
56-
registerVersion('firestore-lite', version, 'node');
56+
// RUNTIME_ENV and BUILD_TARGET are replaced by real values during the compilation
57+
registerVersion('firestore-lite', version, '__RUNTIME_ENV__');
58+
registerVersion('firestore-lite', version, '__BUILD_TARGET__');
5759
}

0 commit comments

Comments
 (0)