@ribajs/core
Version:
Core module of Riba.js
35 lines (29 loc) • 786 B
text/typescript
import { Formatter, Formatters } from "../types/index.js";
import { ModuleElementService } from "./module-element.service.js";
export class FormatterService extends ModuleElementService {
protected type: "binder" | "formatter" | "components" | "services" =
"formatter";
/**
*
*/
constructor(formatters: Formatters) {
super(formatters);
}
/**
* Regist a formatter with his name
*/
public register(
formatter: Formatter,
fallbackName?: string,
forceFallback = false,
): Formatters {
const name = forceFallback
? fallbackName || formatter.name
: formatter.name || fallbackName;
if (!name) {
throw new Error("Formatter name not found!");
}
this.elements[name] = formatter;
return this.elements;
}
}