@supercharge/method-missing
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published


Method Missing

Handle missing methods on your classes, like PHP’s __call.


Installation · Docs · Usage



Latest Version Monthly downloads

Follow @marcuspoehls and @superchargejs for updates!


Introduction

The @supercharge/method-missing package allows you to handle missing methods in your JavaScript classes. It calls the __call(methodName, args) method in your class when trying to invoke a missing method.

Installation

npm i @supercharge/method-missing

Docs

Find all the details for @supercharge/method-missing in the extensive Supercharge docs.

Usage

Using @supercharge/method-missing is pretty straightforward. The package exports a class that you must extend in your implemented class. Then, add a __call(methodName, args) method to your class. The __call method allows you to handle all calls for methods that are not existent in your class.

I guess an example clears things up:

const MethodMissing = require('@supercharge/method-missing')

class QueryInterface extends MethodMissing {
  /**
   * Creates an instance wrapping the Sequelize `queryInterface` instance.
   *
   * @param {QueryInterface} queryInterface
   */
  constructor (queryInterface) {
    super()

    this.queryInterface = queryInterface
  }

  /**
   * Determine whether the given `column` already exists in the given `table`.
   *
   * @param {String} table
   * @param {String} column
   *
   * @returns {Boolean}
   */
  async hasColumn(tableName, columnName) {
    const description = await this.queryInterface.describeTable(tableName)

    return !!description[columnName]
  }


  /**
   * Pass through all calls to the original query interface.
   *
   * @param {String} methodName
   * @param {Array} args
   *
   * @returns {*}
   */
  __call(methodName, args) {
    return this.queryInterface[methodName](...args)
  }
}

Contributing

Do you miss a function? We very much appreciate your contribution! Please send in a pull request 😊

  1. Create a fork
  2. Create your feature branch: git checkout -b my-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request 🚀

License

MIT © Supercharge


superchargejs.com  ·  GitHub @superchargejs  ·  Twitter @superchargejs

Package Sidebar

Install

npm i @supercharge/method-missing

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

9.08 kB

Total Files

11

Last publish

Collaborators

  • celsiusf
  • peitek
  • marcuspoehls