mixit/src/components/service/BaseService.ts

41 lines
885 B
TypeScript
Raw Normal View History

2019-05-01 15:07:08 +00:00
import { Component, Prop, Watch } from 'vue-property-decorator'
import { Auth } from '@/types/App'
2019-05-03 15:03:13 +00:00
import SettingBoolean from '../input/SettingBoolean.vue'
import SettingInt from '../input/SettingInt.vue'
import SettingString from '../input/SettingString.vue'
2019-05-01 15:07:08 +00:00
import ServiceEmiter from '../ServiceEmiter'
2019-05-03 15:03:13 +00:00
import ServiceHeader from '../ServiceHeader.vue'
2019-05-01 15:07:08 +00:00
2019-05-03 15:03:13 +00:00
@Component({ components: { ServiceHeader, SettingString, SettingInt, SettingBoolean } })
2019-05-01 15:07:08 +00:00
export default class BaseService extends ServiceEmiter {
@Prop({
type: Map,
default() {
return new Auth()
}
})
readonly auth!: Auth
@Prop({ type: Object, default: {} })
readonly options!: object
@Watch('auth')
onAuthChanged() {
this.init()
}
get mustBeDefined() {
return new Error('Must be defined')
}
created() {
this.init()
}
init(): void {
throw this.mustBeDefined
}
}