overleaf/services/web/scripts/ukamf/ukamf-db.js
Eric Mc Sween df6d0625f1 Merge pull request #2368 from overleaf/ew-ukamf-metadata-processor-cli
ukamf metadata processor cli

GitOrigin-RevId: f823a1dca231546f3ab67c47f6443e56b50e30d1
2019-11-21 13:00:28 +00:00

31 lines
691 B
JavaScript

'use strict'
const fs = require('fs-extra')
const xml2js = require('xml2js')
const UKAMFEntity = require('./ukamf-entity')
class UKAMFDB {
constructor(file) {
this.file = file
}
async init() {
const data = await fs.readFile(this.file, 'utf8')
const parser = new xml2js.Parser()
const xml = await parser.parseStringPromise(data)
this.entities = xml.EntitiesDescriptor.EntityDescriptor
}
findByEntityID(matcher) {
const entity = this.entities.find(
matcher instanceof RegExp
? e => e.$.entityID.match(matcher)
: e => e.$.entityID === matcher
)
return entity ? new UKAMFEntity(entity) : null
}
}
module.exports = UKAMFDB