@nahanil/zhdict-lite
Version:
Access extended CC-CEDICT dictionary data
59 lines (53 loc) • 1.17 kB
JavaScript
const DB = require('./models/index.js')
const Op = require('sequelize').Op
const _ = require('lodash')
/**
* @nahanil/zhdict-lite
* @module @nahanil/zhdict-lite
*/
class ZhdictLite {
constructor () {
this.db = DB()
}
/**
* Search the for a given word.
* @function search
* @param {string|object} query - The word as a string, or a Sequelize `where` query.
* @returns {Promise}
*/
search (query) {
let where
if (_.isString(query)) {
where = {
[Op.or]: [
{ simplified: query },
{ traditional: query }
]
}
} else {
where = query
}
return this.db.word.findAll({
where: where,
raw: true
})
}
/**
* Search characters by radical.
* @function searchByRadical
* @param {string} radical - The character as a string, or a Sequelize `where` query.
* @returns {Promise}
*/
searchByRadical (radical) {
return this.db.word.findAll({
where: {
[Op.or]: [
{ radicalSimplified: radical },
{ radicalTraditional: radical }
]
},
raw: true
})
}
}
module.exports = new ZhdictLite()