dataverse-client-javascript
A JavaScript/TypeScript client for Dataverse.
NPM
Module available as js-dataverse
at https://www.npmjs.com/package/js-dataverse
Usage
Create a new client:
const client = new DataverseClient('https://demo.dataverse.org/')
Request dataset information:
const response = await client.getDataverseInformation('myDataverseAlias')
Current available functions
public async getDataverseInformation(alias: string): Promise<AxiosResponse> {
public async listDatasets(alias: string): Promise<AxiosResponse> {
public async addDataset(dataverseAlias: string, payload: string): Promise<AxiosResponse> {
public async addBasicDataset(dataverseAlias: string, datasetInformation: BasicDatasetInformation): Promise<AxiosResponse> {
public async search(options: SearchOptions): Promise<AxiosResponse> {
public async searchOnlyPublished(options: SearchOptions): Promise<AxiosResponse> {
public async getFile(fileId: string): Promise<AxiosResponse> {
public async getFileMetadata(fileId: string, draftVersion: boolean = false): Promise<AxiosResponse> {
public async getLatestDatasetInformation(datasetId: string): Promise<AxiosResponse> {
public async getLatestPublishedDatasetVersion(datasetId: string): Promise<AxiosResponse> {
public async getDraftDatasetVersion(datasetId: string): Promise<AxiosResponse> {
public async getLatestDatasetInformationFromDOI(doi: string): Promise<AxiosResponse> {
public async getDatasetVersions(datasetId: string): Promise<AxiosResponse> {
public async getDatasetVersion(datasetId: string, version: string): Promise<AxiosResponse> {
Note: Version must be published, e.g.:
http://demo.dataverse.org/api/datasets/389608/versions/1
public async listDataverseRoleAssignments(dataverseAlias: string): Promise<AxiosResponse> {
public async getMetric(datasetId: string, metricType: DataverseMetricType, yearMonth?: string): Promise<AxiosResponse> {
public async getMetricByCountry(datasetId: string, metricType: DataverseMetricType, countryCode?: string, yearMonth?: string) {
public async replaceFile(fileId: string, filename: string, fileBuffer: Buffer, jsonData: object = {}): Promise<any> {
public async publishDataset(datasetId: string, versionUpgradeType: DatasetVersionUpgradeType = DatasetVersionUpgradeType.MAJOR): Promise<AxiosResponse> {
public async updateDataset(datasetId: string, datasetInformation: BasicDatasetInformation): Promise<AxiosResponse> {
public async deleteDataset(datasetId: string): Promise<AxiosResponse> {
public async getDatasetFiles(datasetId: string): Promise<AxiosResponse> {
Build project
In order to build the project, we need to run the following command:
yarn build
or npm run build
the build generated will be placed in dist
folder.
Tests and checks
Pre-requisites
Make sure that you install all the project dependencies
yarn install
or npm install
Keep consistent, whether you use yarn or npm
Running tests in CICD pipeline
yarn test:ci
or npm run test:ci
Test coverage
yarn test:coverage
or npm run test:coverage
Format checks
Making sure that the code format is following the guidelines
yarn format:check
or npm run format:check
Lint checks
Running a linting check on the code
yarn eslint:check
or npm run eslint:check
Publishing new version
Automated publishing of versions could be automated when merging to master. Below are the steps that would be required to publish a new version:
- Run tests and checks
- Build the project
- Commit changes
- Upgrade npm version
- Publish,
npm publish