in src/main.ts [51:72]
public register(messages: RPCMessageType | RPCMessageType[], data: RegistrationData<T>): void {
// Error catching
if (is.array<RPCMessageType>(this.messages) && is.array<RPCMessageType>(messages)) {
let valid = messages.every(v => !!(this.messages as RPCMessageType[]).find(i => i.method === v.method));
if (!valid) {
throw new Error(`Register called on wrong feature.`);
}
} else if (is.array<RPCMessageType>(this.messages) && !is.array<RPCMessageType>(messages)) {
if (!this.messages.find(i => i.method === messages.method)) {
throw new Error(`Register called on wrong feature.`);
}
} else if (!is.array<RPCMessageType>(this.messages) && !is.array<RPCMessageType>(messages)) {
if (this.messages.method !== messages.method) {
throw new Error(`Register called on wrong feature. Requested ${messages.method} but reached feature ${this.messages.method}`);
}
}
let provider = this.registerProvider(data.registerOptions);
if (provider) {
this._providers.set(data.id, provider);
}
}