Web platform helpers for simplifying and automating dataset publishing via Dataverse APIs.
Use in any platform supporting standard fetch, but with special support for Deno.
Warning: This project is neither official nor complete, see IQSS's TypeScript client for that.
For Deno, environment variables are recommended for configuring.
import { base, key, root } from "dataverse/deno/env.js";
console.log({ base, root });
Example .env
file for linux/bash
export dataverse_base="https://test.dataverse.no"
export dataverse_root="polarfront"
export dataverse_token=""
Prior to creating a dataset, existing metadata must be translated into Dataverse's internal object format (the payload).
You may build from the basicDatasetTemplate
and obtain payload via
payloadFromBasicDataset
:
import {
basicDatasetTemplate,
payloadFromBasicDataset,
} from "dataverse/dataset/create.js";
const basic = basicDatasetTemplate();
const payload = payloadFromBasicDataset(basic);
console.log(payload);
// {
// datasetVersion: {
// metadataBlocks: { citation: { fields: [Array], displayName: "Citation Metadata" } }
// }
// }
Simply call create
that will return a regular fetch response object:
const { base, root, key } = {
"base": "https://test.dataverse.no",
key: "…",
root: "path",
};
const basic = { title: "Title1" };
const payload = payloadFromBasicDataset(basicDatasetTemplate(basic));
const response = await create({ payload, base, root, key });
console.log(await response.text());
//{"status":"OK","data":{"id":156919,"persistentId":"doi:10.21337/RQVGWV"}}
Note: the example code above require setting up a working import map for your project.