Socket
Socket
Sign inDemoInstall

@supercharge/method-missing

Package Overview
Dependencies
Maintainers
3
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@supercharge/method-missing

Run a pipeline of async tasks


Version published
Maintainers
3
Created
Source


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

Keywords

FAQs

Package last updated on 31 Jul 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc