Firebase-admin-node: TypeScript Error When Importing GCS Types to index.d.ts

Created on 15 Aug 2017  路  5Comments  路  Source: firebase/firebase-admin-node

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

  1. Not expose the GCS Bucket type in our API, and use any instead.
  2. Change our module declaration as follows:
// index.d.ts
declare module 'firebase-admin' {
}

export = admin;

This fixes the error, but I don't know if it has other consequences.

bug

Most helpful comment

This has been fixed in #71. Expect a 5.2.1 patch release soon.

All 5 comments

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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

CoreyCole picture CoreyCole  路  4Comments

reyou picture reyou  路  3Comments

IchordeDionysos picture IchordeDionysos  路  3Comments

cmdhema picture cmdhema  路  3Comments

aaaguirrep picture aaaguirrep  路  3Comments