(record: ServiceRecord)
| 24 | #views: BaseViewType[] = []; |
| 25 | |
| 26 | registerService(record: ServiceRecord) { |
| 27 | const name = record.name ?? record.serviceClass.name; |
| 28 | if (name in this.#services) |
| 29 | throw new Error(`Service "${name}" has already been registered.`); |
| 30 | if (record.viewClasses.length < 1) |
| 31 | throw new Error(`Found no view when registering service "${name}".`); |
| 32 | if (!matchClass(WebService, record.serviceClass)) |
| 33 | throw new Error('The serviceClass must inherit from WebService.'); |
| 34 | for (const viewClass of record.viewClasses) { |
| 35 | if (!this.#views.includes(viewClass)) |
| 36 | throw new Error(`View "${viewClass.name}" is not registered.`); |
| 37 | } |
| 38 | this.#services[name] = record; |
| 39 | } |
| 40 | |
| 41 | unregisterService(arg: string | WebServiceType) { |
| 42 | const name = typeof arg == 'string' ? arg : arg.name; |
no test coverage detected