@citation-js/plugin-doi
Version:
Plugin for DOI input for Citation.js
29 lines (28 loc) • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.parse = parseDoiJson;
var _type = _interopRequireDefault(require("./type.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function parseDoiJson(data) {
const res = {
type: (0, _type.default)(data.type, data)
};
const dateFields = ['submitted', 'issued', 'event-date', 'original-date', 'container', 'accessed'];
dateFields.forEach(field => {
const value = data[field];
if (value && value['date-parts'] && typeof value['date-parts'][0] === 'number') {
value['date-parts'] = [value['date-parts']];
}
});
if (data.type === 'dissertation' && !data.genre) {
res.genre = 'Doctoral dissertation';
}
if (data.type === 'posted-content' && (data.subtype === 'preprint' || data.member === '31795')) {
if (Array.isArray(data.institution) && data.institution[0] && data.institution[0].name) {
res['container-title'] = data.institution[0].name;
}
}
return Object.assign({}, data, res);
}