UNPKG

495 BJavaScriptView Raw
1const memoize = require('lodash.memoize')
2const camelCase = require('lodash.camelcase')
3const { plural } = require('pluralize')
4
5const pluralCamelMemoized = memoize(str => plural(camelCase(str)))
6
7/**
8 * @param {Object} options:
9 * @param {Function} options.caseMapper
10 */
11function tableNamer({ caseMapper = pluralCamelMemoized } = {}) {
12 return Model =>
13 class extends Model {
14 static get tableName() {
15 return caseMapper(this.name)
16 }
17 }
18}
19
20module.exports = tableNamer