mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
32 lines
691 B
JavaScript
32 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
|