objection-table-name

2.0.2 • Public • Published

objection-table-name

CircleCI codecov Version Downloads Docs

Enjoy objection-tablename? Check out my other objection plugins: objection-hashid and objection-authorize!

What To Solve

class NodeModule extends Model {
  static get tableName() {
    return 'nodeModules' // you type it on every model
  }
}

what about:

class NodeModule extends Model {}
console.log(NodeModule.tableName)
// => nodeModules

Installation

$ npm install objection-table-name

Usage

const { Model } = require('objection')
const tableName = require('objection-table-name')

// The common way is:
// - make this is as your base class

// BaseModel.js
class BaseModel extends tableName()(Model) {}

// TransactionDetail.js
class TransactionDetail extends BaseModel {}
console.log(TransactionDetail.tableName)
// => transactionDetails

You can define your own mapper

function upperFirst([s, ...rest]) {
  return [s.toUpperCase(), ...rest].join('')
}

class BaseModel extends TableNamer({
  caseMapper: upperFirst
})(Model) {}

class foo_Bar extends BaseModel {}
console.log(foo_Bar.tableName)
// => Foo_Bar

Lodash provides some already defined caseMappers. You can use it too.

Package Sidebar

Install

npm i objection-table-name

Weekly Downloads

21

Version

2.0.2

License

LGPL-3.0

Unpacked Size

12.3 kB

Total Files

7

Last publish

Collaborators

  • janejeon