In v5.2.0 we added Cloud Storage support to the Admin SDK. As a part of this we made a few changes to the index.d.ts file:
import {Bucket} from '@google-cloud/storage';
declare namespace admin.storage {
interface Storage {
app: admin.app.App;
bucket(name?: string): Bucket;
}
}
Turns out this is not supported properly in TypeScript. It triggers the following error in downstream apps:
node_modules/firebase-admin/lib/index.d.ts(396,3): error TS2666: Exports and export assignments are not permitted in module augmentations.
npm ERR! Test failed. See above for more details.
Simply having the import statement at the top-level of the file is sufficient to trigger the error.
Possible Solutions
Bucket type in our API, and use any instead.// index.d.ts
declare module 'firebase-admin' {
}
export = admin;
This fixes the error, but I don't know if it has other consequences.
Confirmed, 5.2.0 is borked. 馃槥
ERROR in ./functions/node_modules/firebase-admin/lib/index.d.ts
(397,3): error TS2666: Exports and export assignments are not permitted in module augmentations.
My vote would be for solution #1. In the mean time, reverting to 5.1.0 fixes the issue.
This has been fixed in #71. Expect a 5.2.1 patch release soon.
@hiranya911 can you investigate option 2? Would help to make the storage lib more usable.
@Crazometer Yes, I can take a look.
Perhaps somebody who better understands the dependency model of Node.js/TypeScript can explain to us what this change implies to the overall operation of the SDK.
@Crazometer I just sent out #87 to implement the 2nd option. If you can try it out, and give us some feedback that would be great.
Most helpful comment
This has been fixed in #71. Expect a 5.2.1 patch release soon.