-
Notifications
You must be signed in to change notification settings - Fork 2
/
PanicStrategy.ts
108 lines (89 loc) · 3.34 KB
/
PanicStrategy.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import { CampaignDTO, FlagDTO } from '../index.ts'
import { FlagshipStatus, METHOD_DEACTIVATED_ERROR, METHOD_DEACTIVATED_SEND_CONSENT_ERROR } from '../enum/index.ts'
import { IHit, modificationsRequested, primitive } from '../types.ts'
import { logError, sprintf } from '../utils/utils.ts'
import { DefaultStrategy } from './DefaultStrategy.ts'
import { HitAbstract, HitShape } from '../hit/index.ts'
import { BatchDTO } from '../hit/Batch.ts'
import { FlagMetadata, IFlagMetadata } from '../flag/FlagMetadata.ts'
export class PanicStrategy extends DefaultStrategy {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
setConsent (hasConsented:boolean):void {
this.visitor.hasConsented = hasConsented
const methodName = 'setConsent'
logError(this.config, sprintf(METHOD_DEACTIVATED_SEND_CONSENT_ERROR, FlagshipStatus[FlagshipStatus.READY_PANIC_ON]), methodName)
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
updateContext (_context: Record<string, primitive>): void {
this.log('updateContext')
}
clearContext (): void {
this.log('clearContext')
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
getModificationSync<T> (params: modificationsRequested<T>): T {
this.log('getModification')
return params.defaultValue
}
async lookupHits (): Promise<void> {
//
}
async lookupVisitor (): Promise<void> {
//
}
public async cacheVisitor ():Promise<void> {
//
}
protected async cacheHit (): Promise<void> {
//
}
protected fetchVisitorCampaigns (): CampaignDTO[] {
return []
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
getModificationsSync<T> (params: modificationsRequested<T>[], _activateAll?: boolean): Record<string, T> {
this.log('getModifications')
const flags:Record<string, T> = {}
params.forEach(item => {
flags[item.key] = item.defaultValue
})
return flags
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getModificationInfoSync (_key: string): FlagDTO | null {
this.log('getModificationInfo')
return null
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async activateModification (_params: string): Promise<void> {
this.log('activateModification')
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async activateModifications (_params: string[] | { key: string }[]): Promise<void> {
this.log('activateModifications')
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
sendHit (_hit: HitAbstract | IHit| HitShape| BatchDTO): Promise<void> {
this.log('sendHit')
return Promise.resolve()
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
sendHits (_hits: HitAbstract[] | IHit[]|HitShape[]|BatchDTO[]): Promise<void> {
this.log('sendHits')
return Promise.resolve()
}
getFlagValue <T> (param:{ key:string, defaultValue: T, flag?:FlagDTO, userExposed?: boolean}): T {
this.log('Flag.value')
return param.defaultValue
}
async userExposed (): Promise<void> {
this.log('userExposed')
}
getFlagMetadata ():IFlagMetadata {
this.log('flag.metadata')
return FlagMetadata.Empty()
}
private log (methodName:string) {
logError(this.config, sprintf(METHOD_DEACTIVATED_ERROR, methodName, FlagshipStatus[FlagshipStatus.READY_PANIC_ON]), methodName)
}
}