@iyulab/oops
Version:
Core SDK for Oops - Safe text file editing with automatic backup
100 lines • 3.65 kB
JavaScript
;
/**
* Error classes for Oops
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileOperationError = exports.PermissionError = exports.ValidationError = exports.GitOperationError = exports.WorkspaceCorruptedError = exports.WorkspaceNotFoundError = exports.FileNotTrackedError = exports.FileAlreadyTrackedError = exports.FileNotFoundError = exports.OopsError = void 0;
class OopsError extends Error {
code;
details;
constructor(message, code, details = {}) {
super(message);
this.name = 'OopsError';
this.code = code;
this.details = details;
Error.captureStackTrace(this, this.constructor);
}
}
exports.OopsError = OopsError;
class FileNotFoundError extends OopsError {
constructor(filePath, details = {}) {
super(`File not found: ${filePath}`, 'FILE_NOT_FOUND', { filePath, ...details });
this.name = 'FileNotFoundError';
}
}
exports.FileNotFoundError = FileNotFoundError;
class FileAlreadyTrackedError extends OopsError {
constructor(filePath, details = {}) {
super(`File is already being tracked: ${filePath}`, 'FILE_ALREADY_TRACKED', {
filePath,
...details,
});
this.name = 'FileAlreadyTrackedError';
}
}
exports.FileAlreadyTrackedError = FileAlreadyTrackedError;
class FileNotTrackedError extends OopsError {
constructor(filePath, details = {}) {
super(`File is not being tracked: ${filePath}`, 'FILE_NOT_TRACKED', { filePath, ...details });
this.name = 'FileNotTrackedError';
}
}
exports.FileNotTrackedError = FileNotTrackedError;
class WorkspaceNotFoundError extends OopsError {
constructor(workspacePath, details = {}) {
super(`Workspace not found: ${workspacePath}`, 'WORKSPACE_NOT_FOUND', {
workspacePath,
...details,
});
this.name = 'WorkspaceNotFoundError';
}
}
exports.WorkspaceNotFoundError = WorkspaceNotFoundError;
class WorkspaceCorruptedError extends OopsError {
constructor(workspacePath, details = {}) {
super(`Workspace is corrupted: ${workspacePath}`, 'WORKSPACE_CORRUPTED', {
workspacePath,
...details,
});
this.name = 'WorkspaceCorruptedError';
}
}
exports.WorkspaceCorruptedError = WorkspaceCorruptedError;
class GitOperationError extends OopsError {
constructor(operation, details = {}) {
super(`Git operation failed: ${operation}`, 'GIT_OPERATION_ERROR', { operation, ...details });
this.name = 'GitOperationError';
}
}
exports.GitOperationError = GitOperationError;
class ValidationError extends OopsError {
constructor(message, details = {}) {
super(`Validation failed: ${message}`, 'VALIDATION_ERROR', details);
this.name = 'ValidationError';
}
}
exports.ValidationError = ValidationError;
class PermissionError extends OopsError {
constructor(path, operation, details = {}) {
super(`Permission denied: ${operation} on ${path}`, 'PERMISSION_ERROR', {
path,
operation,
...details,
});
this.name = 'PermissionError';
}
}
exports.PermissionError = PermissionError;
class FileOperationError extends OopsError {
constructor(operation, path, message, details = {}) {
super(`File operation failed: ${operation} on ${path} - ${message}`, 'FILE_OPERATION_ERROR', {
operation,
path,
message,
...details,
});
this.name = 'FileOperationError';
}
}
exports.FileOperationError = FileOperationError;
//# sourceMappingURL=errors.js.map