32 lines
799 B
JavaScript
32 lines
799 B
JavaScript
|
|
||
|
"use strict";
|
||
|
|
||
|
class MemoryFileSystemError extends Error {
|
||
|
constructor(err, path, operation) {
|
||
|
super(err, path);
|
||
|
|
||
|
// Set `name` and `message` before call `Error.captureStackTrace` \
|
||
|
// so that we will obtain the correct 1st line of stack, like:
|
||
|
// [Error]: [Message]
|
||
|
this.name = this.constructor.name;
|
||
|
var message = [`${err.code}:`, `${err.description},`];
|
||
|
// Add operation name and path into message, similar to node `fs` style.
|
||
|
if(operation) {
|
||
|
message.push(operation);
|
||
|
}
|
||
|
message.push(`\'${path}\'`);
|
||
|
this.message = message.join(' ');
|
||
|
|
||
|
this.code = err.code;
|
||
|
this.errno = err.errno;
|
||
|
this.path = path;
|
||
|
this.operation = operation;
|
||
|
|
||
|
if(Error.captureStackTrace) {
|
||
|
Error.captureStackTrace(this, this.constructor);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = MemoryFileSystemError;
|