Skip to content

Commit afe2f71

Browse files
authored
chore: enable esModuleInterop (#1751)
1 parent e598c3b commit afe2f71

File tree

11 files changed

+18
-36
lines changed

11 files changed

+18
-36
lines changed

integration_test/functions/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { GoogleAuth } from "google-auth-library";
33
import { Request, Response } from "express";
44
import * as admin from "firebase-admin";
55
import * as functions from "firebase-functions";
6-
import * as fs from "fs";
6+
import fs from "fs";
77
import fetch from "node-fetch";
88

99
import * as v1 from "./v1";

mocha/setup.ts

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
1-
import * as chai from "chai";
2-
import * as chaiAsPromisedModule from "chai-as-promised";
3-
import * as nockModule from "nock";
4-
5-
// Normalize CommonJS exports so ts-node (Node.js 20) and Node.js 22's strip-only loader
6-
// both receive callable modules without relying on esModuleInterop.
7-
type ChaiPlugin = Parameters<typeof chai.use>[0];
8-
type NockModule = typeof nockModule;
9-
10-
const chaiAsPromisedExport = chaiAsPromisedModule as ChaiPlugin & { default?: ChaiPlugin };
11-
const chaiAsPromised = chaiAsPromisedExport.default ?? chaiAsPromisedExport;
12-
const nockExport = nockModule as NockModule & { default?: NockModule };
13-
const nock = nockExport.default ?? nockExport;
1+
import chai from "chai";
2+
import chaiAsPromised from "chai-as-promised";
3+
import nock from "nock";
144

155
chai.use(chaiAsPromised);
16-
176
nock.disableNetConnect();

scripts/bin-test/mocha-setup.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
import * as chai from "chai";
2-
import * as chaiAsPromisedModule from "chai-as-promised";
3-
4-
// Match the runtime shim in mocha/setup.ts so bin tests work on Node.js 20 ts-node
5-
// and Node.js 22's strip-only TypeScript loader without enabling esModuleInterop.
6-
type ChaiPlugin = Parameters<typeof chai.use>[0];
7-
8-
const chaiAsPromisedExport = chaiAsPromisedModule as ChaiPlugin & { default?: ChaiPlugin };
9-
const chaiAsPromised = chaiAsPromisedExport.default ?? chaiAsPromisedExport;
1+
import chai from "chai";
2+
import chaiAsPromised from "chai-as-promised";
103

114
chai.use(chaiAsPromised);

scripts/bin-test/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as subprocess from "child_process";
22
import * as path from "path";
33
import { promisify } from "util";
4-
import * as fs from "fs/promises";
4+
import fs from "fs/promises";
55
import * as os from "os";
66

77
import { expect } from "chai";

spec/common/config.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
// SOFTWARE.
2222

2323
import { expect } from "chai";
24-
import * as fs from "fs";
25-
import * as process from "process";
24+
import fs from "fs";
2625
import * as sinon from "sinon";
2726

2827
import { firebaseConfig, resetCache } from "../../src/common/config";

spec/fixtures/mockrequest.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { EventEmitter } from 'node:stream';
22

3-
import * as jwt from 'jsonwebtoken';
4-
import * as jwkToPem from 'jwk-to-pem';
5-
import * as nock from 'nock';
3+
import jwt from 'jsonwebtoken';
4+
import jwkToPem from 'jwk-to-pem';
5+
import nock from 'nock';
66
import * as mockJWK from '../fixtures/credential/jwk.json';
77
import * as mockKey from '../fixtures/credential/key.json';
88

src/bin/firebase-functions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
// SOFTWARE.
2424

2525
import * as http from "http";
26-
import * as express from "express";
27-
import * as fs from "fs/promises";
26+
import express from "express";
27+
import fs from "fs/promises";
2828
import * as path from "path";
2929
import { loadStack } from "../runtime/loader";
3030
import { stackToWire } from "../runtime/manifest";

src/common/config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { AppOptions } from "firebase-admin/app";
2-
import { readFileSync } from "fs";
2+
import fs from "fs";
33
import * as path from "path";
44

55
import * as logger from "../logger";
@@ -29,7 +29,7 @@ export function firebaseConfig(): AppOptions | null {
2929
// explicitly state that the user can set the env to a file:
3030
// https://firebase.google.com/docs/admin/setup#initialize-without-parameters
3131
if (!env.startsWith("{")) {
32-
env = readFileSync(path.join(process.env.PWD, env)).toString("utf8");
32+
env = fs.readFileSync(path.join(process.env.PWD, env)).toString("utf8");
3333
}
3434

3535
cache = JSON.parse(env);

src/common/providers/https.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2121
// SOFTWARE.
2222

23-
import * as cors from "cors";
23+
import cors from "cors";
2424
import * as express from "express";
2525
import { DecodedAppCheckToken } from "firebase-admin/app-check";
2626

src/v2/providers/https.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
* @packageDocumentation
2626
*/
2727

28-
import * as cors from "cors";
28+
import cors from "cors";
2929
import * as express from "express";
3030
import { convertIfPresent, convertInvoker, copyIfPresent } from "../../common/encoding";
3131
import { wrapTraceContext } from "../trace";

0 commit comments

Comments
 (0)