Skip to content

Commit 4d36404

Browse files
authored
Fix Firestore exports for Node (#5532)
1 parent 05773dc commit 4d36404

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

.changeset/big-cooks-drum.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@firebase/firestore': minor
3+
---
4+
5+
Fix exports field to also point to Node ESM builds. This change requires Node.js version 10+.

packages/firestore/lite/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "@firebase/firestore-lite",
33
"description": "A lite version of the Firestore SDK",
44
"main": "../dist/lite/index.node.cjs.js",
5-
"main-esm": "../dist/lite/index.node.esm2017.js",
5+
"main-esm": "../dist/lite/index.node.mjs",
66
"module": "../dist/lite/index.browser.esm2017.js",
77
"browser": "../dist/lite/index.browser.esm2017.js",
88
"react-native": "../dist/lite/index.rn.esm2017.js",

packages/firestore/package.json

+10-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "@firebase/firestore",
33
"version": "3.1.1",
44
"engines": {
5-
"node": "^8.13.0 || >=10.10.0"
5+
"node": ">=10.10.0"
66
},
77
"description": "The Cloud Firestore component of the Firebase JS SDK.",
88
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
@@ -49,16 +49,22 @@
4949
},
5050
"exports": {
5151
".": {
52-
"node": "./dist/index.node.cjs.js",
52+
"node": {
53+
"require": "./dist/index.node.cjs.js",
54+
"import": "./dist/index.node.mjs"
55+
},
5356
"default": "./dist/index.esm2017.js"
5457
},
5558
"./lite": {
56-
"node": "./dist/lite/index.node.cjs.js",
59+
"node": {
60+
"require": "./dist/lite/index.node.cjs.js",
61+
"import": "./dist/lite/index.node.mjs"
62+
},
5763
"default": "./dist/lite/index.browser.esm2017.js"
5864
}
5965
},
6066
"main": "dist/index.node.cjs.js",
61-
"main-esm": "dist/index.node.cjs.esm2017.js",
67+
"main-esm": "dist/index.node.mjs",
6268
"react-native": "dist/index.rn.js",
6369
"browser": "dist/index.esm2017.js",
6470
"module": "dist/index.esm2017.js",

packages/firestore/src/platform/node/grpc_connection.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,16 @@
1515
* limitations under the License.
1616
*/
1717

18+
// This is a hack fix for Node ES modules to use `require`.
19+
// @ts-ignore To avoid using `allowSyntheticDefaultImports` flag.
20+
import module from 'module';
21+
1822
import {
1923
Metadata,
2024
GrpcObject,
2125
credentials as GrpcCredentials,
2226
ServiceError
2327
} from '@grpc/grpc-js';
24-
import { version as grpcVersion } from '@grpc/grpc-js/package.json';
2528

2629
import { Token } from '../../api/credentials';
2730
import { DatabaseInfo } from '../../core/database_info';
@@ -35,6 +38,12 @@ import { logError, logDebug, logWarn } from '../../util/log';
3538
import { NodeCallback, nodePromise } from '../../util/node_api';
3639
import { Deferred } from '../../util/promise';
3740

41+
// This is a hack fix for Node ES modules to use `require`.
42+
// @ts-ignore To avoid using `--module es2020` flag.
43+
const require = module.createRequire(import.meta.url);
44+
// eslint-disable-next-line @typescript-eslint/no-require-imports
45+
const { version: grpcVersion } = require('@grpc/grpc-js/package.json');
46+
3847
const LOG_TAG = 'Connection';
3948
const X_GOOG_API_CLIENT_VALUE = `gl-node/${process.versions.node} fire/${SDK_VERSION} grpc/${grpcVersion}`;
4049

0 commit comments

Comments
 (0)