static defineMessage()
The static "tag" method builds from the given values the error message
CommonError.defineMessage()
CommonError.defineMessage()The static "tag" method builds from the given values the error message of a string type on the template.
protected static defineMessage(
templateStringsArray: TemplateStringsArray,
...values: any[]
): string {
let problem: string,
fix: string,
id: string | undefined,
template: string,
additional: { link?: string; min?: number; max?: number; type?: string };
[problem, fix, id, template, additional] = values;
template = (template || CommonError.template)
.replace('{problem}', problem || '')
.replace(/{id}/g, id || '')
.replace(/{link}/g, additional?.link ? additional.link : '')
.replace(/{max}/g, additional?.max ? String(additional.max) : '')
.replace(/{min}/g, additional?.min ? String(additional.min) : '')
.replace(/{type}/g, additional?.type ? additional.type : '')
.replace('{fix}', fix || '');
return template;
}Parameters
templateStringsArray:TemplateStringsArray
templateStringsArray:TemplateStringsArray-
A rest parameter of expressions in order ${problem}, ${fix}, ${id}, ${template} and ${additional}.
Returns
The return value is the error message of a string type created from the expressions given in the values.
Example usage
// Example usage.
import { CommonError } from '@angular-package/error';
const problem = 'The given `age` parameter must be';
const fix = 'Provided string type is not accepted, change to ';
const id = 'AE: 427';
const template = `Issue({id}): {problem} of {type} between range {min} and {max}. {fix}{type}`;
const additional = { max: 27, min: 9, type: 'number' };
class TestError<Id extends string> extends CommonError<Id> {
public static isError<Id extends string>(
value: any,
id?: Id
): value is CommonError<Id> {
return super.isError(value, id);
}
public static defineMessage(
templateStringsArray: TemplateStringsArray,
...values: any[]
): string {
return super.defineMessage(templateStringsArray, ...values);
}
}
// Returns
// Issue(AE: 427): The given `age` parameter must be of number between range 9 and 27. Provided string type is not accepted, change to number
TestError.defineMessage`${problem}${fix}${id}${template}${additional}`;Last updated
Was this helpful?