spanwright
Version:
CLI tool to generate Cloud Spanner E2E testing framework projects with Go database tools and Playwright browser automation
64 lines • 1.99 kB
JavaScript
;
// Custom error types for better error handling
Object.defineProperty(exports, "__esModule", { value: true });
exports.SecurityError = exports.ConfigurationError = exports.FileSystemError = exports.ValidationError = exports.SpanwrightError = void 0;
exports.handleError = handleError;
exports.safeExit = safeExit;
class SpanwrightError extends Error {
constructor(message, code) {
super(message);
this.code = code;
this.name = 'SpanwrightError';
}
}
exports.SpanwrightError = SpanwrightError;
class ValidationError extends SpanwrightError {
constructor(message, field) {
super(message, 'VALIDATION_ERROR');
this.field = field;
this.name = 'ValidationError';
}
}
exports.ValidationError = ValidationError;
class FileSystemError extends SpanwrightError {
constructor(message, path) {
super(message, 'FILESYSTEM_ERROR');
this.path = path;
this.name = 'FileSystemError';
}
}
exports.FileSystemError = FileSystemError;
class ConfigurationError extends SpanwrightError {
constructor(message, key) {
super(message, 'CONFIGURATION_ERROR');
this.key = key;
this.name = 'ConfigurationError';
}
}
exports.ConfigurationError = ConfigurationError;
class SecurityError extends SpanwrightError {
constructor(message, path) {
super(message, 'SECURITY_ERROR');
this.path = path;
this.name = 'SecurityError';
}
}
exports.SecurityError = SecurityError;
// Error handling utility
function handleError(error) {
if (error instanceof SpanwrightError) {
console.error(error.message);
process.exit(1);
}
if (error instanceof Error) {
console.error('❌ An error occurred:', error.message);
process.exit(1);
}
console.error('❌ An unknown error occurred');
process.exit(1);
}
// Safe exit utility
function safeExit(code = 0) {
process.exit(code);
}
//# sourceMappingURL=errors.js.map