This client is a fully-typed Typescript client for the UKRI's Gateway to Research GtR-2 API. It runs both on server (Node.js v18+) and client-side (Browser) javascript providing both ESM and CommonJS modules.
To install the package, use the following code (npm, pnpm or yarn).
pnpm install @jamesgopsill/gtr-client
You can then use package in your code like so (see the examples
folder for more implementations):
Typescript
import {
FundsQuery,
FundsSearchFields,
GtrClient,
} from "@jamesgopsill/gtr-client"
const client = new GtrClient(true)
const query: FundsQuery = {
query: "epsrc",
searchFields: [FundsSearchFields.FUNDER_ORGANISATION_NAME],
pageSize: 10,
}
const r = await client.getFunds(query)
if (r.ok) console.log(r.data)
Javascript (ESM)
import { GtrClient, FundsSearchFields } from "@jamesgopsill/gtr-client"
const client = new GtrClient(true)
const query = {
query: "epsrc",
searchFields: [FundsSearchFields.FUNDER_ORGANISATION_NAME],
pageSize: 10,
}
const r = await client.getFunds(query)
if (r.ok) console.log(r.data)
Javascript (CommonJS)
const gtr = require("@jamesgopsill/gtr-client")
const performQuery = async () => {
const client = new gtr.GtrClient(true)
const query = {
query: "epsrc",
searchFields: [gtr.FundsSearchFields.FUNDER_ORGANISATION_NAME],
pageSize: 10,
}
const r = await client.getFunds(query)
if (r.ok) console.log(r.data)
}
performQuery()
The docs have been produced using TypeDoc and can be accessed here.
Version | Content | Status |
---|---|---|
0.0.1 | Repo up and running | ✔ |
0.2.0 | /funds implemented. |
✔ |
0.3.0 | /organisations implemented. |
✔ |
0.4.0 | /outcomes implemented. |
✔ |
0.5.0 | /persons implemented. |
✔ |
0.6.0 | /projects implemented. |
✔ |
0.7.0 | Simplified client using interface conditionals. | ✔ |
0.8.0 | Refactored again to use programmatically defined functions. | ✔ |
0.9.0 | Custom Filtering Param Interfaces | ✔ |
0.11.0 | Changing how the response is handled. | ✔ |
1.0.0 | Spec complete. | ✔ |
1.1.0 | Updating types and supporting ESM and CommonJS. | ✔ |
We would love to have additional contributors to the project to help us maintain and add functionality to the project. Please use pnpm pre-add
before committing to the repository.
Note. if wanting to run the examples as you develop the repo. Use pnpm link .
to link the repo to your available packages.
If you like this project, please consider sponsoring the developers so they can continue to maintain and improve the package.
Generated using TypeDoc