babel-plugin-transform-builtin-classes icon indicating copy to clipboard operation
babel-plugin-transform-builtin-classes copied to clipboard

Not working with Node.js 8.9.0

Open rico345100 opened this issue 7 years ago • 0 comments

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 [email protected] and [email protected]

rico345100 avatar Apr 02 '18 15:04 rico345100