Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update/fix the existing TS declaration file (#285)
* Update/fix the existing TS declaration file This commit modernizes/fixes the existing TypeScript declaration file as follows: - The module declaration now better represents how exports are currently setup, by using module augmentation to give access to helper functions that are added to the `gql` function itself. - Backwards compatibility has been maintained by re-exporting helper functions. - Stronger typing changes; the first param of the `gql` template literal is now a read only string based array, and the `gql` return type is a `DocumentNode`. We're leveraging TS' [import types](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-9.html#import-types) functionality to reference the `DocumentNode` type, which will help avoid issues like the previously reverted attempts to do this in #151 and #196. - While the new `gql` type changes could in theory be considered breaking, they really shouldn't be in practice. Tagged template literals enforce the use of an immutable array of strings, which means that even though `literals` was `any` before, the param should only ever been an array of strings. Along the same lines, the `gql` function has only ever returned a `DocumentNode`, so moving away from the `any` return type should be pretty safe. * Changelog update
- Loading branch information