serwist
Version:
A Swiss Army knife for service workers.
42 lines (35 loc) • 1.14 kB
text/typescript
/*
Copyright 2018 Google LLC
Use of this source code is governed by an MIT-style
license that can be found in the LICENSE file or at
https://opensource.org/licenses/MIT.
*/
import { messageGenerator } from "../models/messages/messageGenerator.js";
import type { MessageKey } from "../models/messages/messages.js";
import type { MapLikeObject } from "../types.js";
/**
* Serwist errors should be thrown with this class.
* This allows use to ensure the type easily in tests,
* helps developers identify errors from Serwist
* easily and allows use to optimise error
* messages correctly.
*
* @private
*/
export class SerwistError extends Error {
details?: MapLikeObject;
/**
*
* @param errorCode The error code that
* identifies this particular error.
* @param details Any relevant arguments
* that will help developers identify issues should
* be added as a key on the context object.
*/
constructor(errorCode: MessageKey, details?: MapLikeObject) {
const message = messageGenerator(errorCode, details);
super(message);
this.name = errorCode;
this.details = details;
}
}