UNPKG

@ribajs/router

Version:

Routing extension for Riba.js inspired by Barba.js

39 lines (32 loc) 1.04 kB
import { RouterModuleOptions } from "../types/index.js"; import { HideShowTransition } from "./Transition/HideShowTransition.js"; export class RouterService { protected static _options: RouterModuleOptions; public static instance?: RouterService; public static get options() { return this._options; } protected constructor() { /**/ } public static getSingleton() { if (this.instance) { return this.instance; } throw new Error( `Singleton of RouterService not defined, please call setSingleton first!`, ); } public static setSingleton(options: Partial<RouterModuleOptions> = {}) { if (this.instance) { console.warn(`Singleton of RouterService already defined!`); return this.instance; } options.defaultTransition = options.defaultTransition ?? new HideShowTransition(); options.scrollToAnchorOffset = options.scrollToAnchorOffset ?? 0; this._options = options as RouterModuleOptions; this.instance = new this(); return this.instance; } }