microdata-rdf-streaming-parser
Version:
A fast and lightweight streaming Microdata to RDF parser
29 lines • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ItemPropertyHandlerNumber = void 0;
const Util_1 = require("../Util");
/**
* Handler for an item property with a number attribute.
*/
class ItemPropertyHandlerNumber {
constructor(tagName, attributeName) {
this.tagName = tagName;
this.attributeName = attributeName;
}
canHandle(tagName, attributes) {
return this.tagName === tagName && this.attributeName in attributes;
}
getObject(attributes, util, itemScope) {
const value = attributes[this.attributeName];
let datatype;
if (!Number.isNaN(Number.parseInt(value, 10)) && !value.includes('.')) {
datatype = `${Util_1.Util.XSD}integer`;
}
else if (!Number.isNaN(Number.parseFloat(value))) {
datatype = `${Util_1.Util.XSD}double`;
}
return util.dataFactory.literal(value, datatype && util.dataFactory.namedNode(datatype));
}
}
exports.ItemPropertyHandlerNumber = ItemPropertyHandlerNumber;
//# sourceMappingURL=ItemPropertyHandlerNumber.js.map