abstract class HasSettings<SettingsType> {
  settings: SettingsType;
  getDefaultSettings() {
    return {} as SettingsType;
  }
  constructor(givenSettings?: Partial<SettingsType>) {
    this.settings = {
      ...this.getDefaultSettings(),
      ...(givenSettings || {})
    }
  }
}
export default HasSettings;
