- Migrated all pages from Next.js to Astro - Added PDPA-compliant Privacy Policy (Thai) - Added PDPA-compliant Terms & Conditions (Thai) - Added Cookie Policy with disclosure (Thai) - Implemented cookie consent banner (client-side) - Integrated Umami Analytics placeholder - Blog system with 3 posts - Optimized Docker configuration for production - Static site build (184KB, 11 pages) - Ready for Easypanel deployment Backup: /Users/kunthawatgreethong/Gitea/dealplustech-backup-nextjs-20260309.tar.gz
27 lines
871 B
JavaScript
27 lines
871 B
JavaScript
|
|
import {FetchBaseError} from './base.js';
|
|
|
|
/**
|
|
* @typedef {{ address?: string, code: string, dest?: string, errno: number, info?: object, message: string, path?: string, port?: number, syscall: string}} SystemError
|
|
*/
|
|
|
|
/**
|
|
* FetchError interface for operational errors
|
|
*/
|
|
export class FetchError extends FetchBaseError {
|
|
/**
|
|
* @param {string} message - Error message for human
|
|
* @param {string} [type] - Error type for machine
|
|
* @param {SystemError} [systemError] - For Node.js system error
|
|
*/
|
|
constructor(message, type, systemError) {
|
|
super(message, type);
|
|
// When err.type is `system`, err.erroredSysCall contains system error and err.code contains system error code
|
|
if (systemError) {
|
|
// eslint-disable-next-line no-multi-assign
|
|
this.code = this.errno = systemError.code;
|
|
this.erroredSysCall = systemError.syscall;
|
|
}
|
|
}
|
|
}
|