WebReflection / babel-plugin-transform-builtin-classes

A fix for the infamous Babel #4480 bug.
https://github.com/babel/babel/issues/4480
ISC License
43 stars 2 forks source link

Not working with Node.js 8.9.0 #13

Open rico345100 opened 6 years ago

rico345100 commented 6 years ago

Hello, I just try this with Node.js 8.9.0, but it doesn't worked.

This is the code am I tried:

.babelrc

{
    "presets": ["env", "flow"],
    "plugins":  [
        "transform-flow-strip-types",
        "babel-plugin-transform-es2015-classes",
        ["babel-plugin-transform-builtin-classes", {
            "globals": ["Error"],
            "logIfPatched": true
        }]
    ]
}

exceptions.js

/* @flow */
class BadRequestError extends Error {
    constructor(message:string) {
        super(message);
    }
}

class InvalidRequestBodyError extends Error {
    constructor(message:string) {
        super(message);
    }
}

class UnauthorizedError extends Error {
    constructor(message:string) {
        super(message);
    }
}

class ExpiredResourceError extends Error {
    constructor(message:string) {
        super(message);
    }
}

class InternalServerError extends Error {
    constructor(message:string) {
        super(message);
    }
}

class ResourceNotFoundError extends Error {
    constructor(message:string) {
        super(message);
    }
}

module.exports = {
    BadRequestError,
    InvalidRequestBodyError,
    UnauthorizedError,
    ExpiredResourceError,
    InternalServerError,
    ResourceNotFoundError
};

index.js

/**
 * Return proper status code
 * @param {Error} error 
 */
function getStatusCode(error:Error):number {
    console.log(error instanceof ResourceNotFoundError);    // Returns false here!!

    if(error instanceof InvalidRequestBodyError) 
        return 400;
    else if(error instanceof BadRequestError)
        return 400;
    else if(error instanceof UnauthorizedError)
        return 401;
    else if(error instanceof ResourceNotFoundError)
        return 404; 
    else if(error instanceof ExpiredResourceError)
        return 410;

    return 500;
}

Using babel-cli@6.26.0 and babel-plugin-transform-builtin-classes@0.6.1