Nebulous Plasma Muffin

    babel-plugin-transform-class-constructor-call

    6.24.1 • Public • Published

    babel-plugin-transform-class-constructor-call (deprecated)

    Proposal Withdrawn: can be solved with decorators.

    This plugin allows Babel to transform class constructors.

    It basically allows to use the new.target feature on ES2015 classes:

    class Point {
     
      constructor(x, y) {
        this.x = x;
        this.y = y;
      }
     
      call constructor(x, y) {
        return new Point(x, y);
      }
     
    }
     
    let p1 = new Point(1, 2); // OK
    let p2 = Point(3, 4); // OK

    Example

    Date example

    The javascript Date works this way:

    // You can get a Date instance using the new keyword
    let now = new Date();
    console.log(now.getMonth()); // Prints '3'
    console.log(now.toString()); // Prints 'Mon Apr 11 2016 13:26:07 GMT+0100 (BST)'
     
    // You can get a string of the current date using Date as a function:
    let nowStr = Date();
    console.log(nowStr); // Prints 'Mon Apr 11 2016 13:26:07 GMT+0100 (BST)'

    It is currently possible to implement something like that using new.target (see example in proposal) and this new feature makes it available for ES2015 classes.

    A date implementation could be:

    class Date {
      constructor() {
        // ...
      }
     
      call constructor() {
        let date = new Date();
        return date.toString();
      }
    }
     
    let now = new Date(); // Get a Date instance
    let nowStr = Date(); // Use the 'call constructor()' part to get a string value of the current date

    Installation

    npm install --save-dev babel-plugin-transform-class-constructor-call

    Usage

    Via .babelrc (Recommended)

    .babelrc

    {
      "plugins": ["transform-class-constructor-call"]
    }

    Via CLI

    babel --plugins transform-class-constructor-call script.js

    Via Node API

    require("babel-core").transform("code", {
      plugins: ["transform-class-constructor-call"]
    });

    References

    Keywords

    Install

    npm i babel-plugin-transform-class-constructor-call

    DownloadsWeekly Downloads

    353,673

    Version

    6.24.1

    License

    MIT

    Last publish

    Collaborators

    • hzoo
    • loganfsmyth
    • existentialism
    • sebmck