@citation-js/plugin-doi
Version:
Plugin for DOI input for Citation.js
23 lines • 730 B
JavaScript
import { util } from '@citation-js/core';
import parseDoiJson from './json.js';
const apiOptions = {
checkContentType: true,
headers: {
Accept: 'application/vnd.citationstyles.csl+json'
}
};
function processApiResponse(response) {
if (response === '[]') {
return {};
}
return parseDoiJson(JSON.parse(response));
}
function parseDoiApiAsync(data) {
const response = [].concat(data).map(url => util.fetchFileAsync(url, apiOptions).then(processApiResponse));
return Promise.all(response);
}
function parseDoiApi(data) {
const response = [].concat(data).map(url => util.fetchFile(url, apiOptions)).map(processApiResponse);
return response;
}
export { parseDoiApi as parse, parseDoiApiAsync as parseAsync };