-
Notifications
You must be signed in to change notification settings - Fork 47
/
factory.ts
95 lines (91 loc) · 4.11 KB
/
factory.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
/*
* @forgerock/javascript-sdk
*
* factory.ts
*
* Copyright (c) 2020-2024 ForgeRock. All rights reserved.
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file for details.
*/
import FRCallback from '.';
import { CallbackType } from '../../auth/enums';
import type { Callback } from '../../auth/interfaces';
import AttributeInputCallback from './attribute-input-callback';
import ChoiceCallback from './choice-callback';
import ConfirmationCallback from './confirmation-callback';
import DeviceProfileCallback from './device-profile-callback';
import HiddenValueCallback from './hidden-value-callback';
import KbaCreateCallback from './kba-create-callback';
import MetadataCallback from './metadata-callback';
import NameCallback from './name-callback';
import PasswordCallback from './password-callback';
import PingOneProtectEvaluationCallback from './ping-protect-evaluation-callback';
import PingOneProtectInitializeCallback from './ping-protect-initialize-callback';
import PollingWaitCallback from './polling-wait-callback';
import ReCaptchaCallback from './recaptcha-callback';
import RedirectCallback from './redirect-callback';
import SelectIdPCallback from './select-idp-callback';
import SuspendedTextOutputCallback from './suspended-text-output-callback';
import TermsAndConditionsCallback from './terms-and-conditions-callback';
import TextInputCallback from './text-input-callback';
import TextOutputCallback from './text-output-callback';
import ValidatedCreatePasswordCallback from './validated-create-password-callback';
import ValidatedCreateUsernameCallback from './validated-create-username-callback';
type FRCallbackFactory = (callback: Callback) => FRCallback;
/**
* @hidden
*/
function createCallback(callback: Callback): FRCallback {
switch (callback.type) {
case CallbackType.BooleanAttributeInputCallback:
return new AttributeInputCallback<boolean>(callback);
case CallbackType.ChoiceCallback:
return new ChoiceCallback(callback);
case CallbackType.ConfirmationCallback:
return new ConfirmationCallback(callback);
case CallbackType.DeviceProfileCallback:
return new DeviceProfileCallback(callback);
case CallbackType.HiddenValueCallback:
return new HiddenValueCallback(callback);
case CallbackType.KbaCreateCallback:
return new KbaCreateCallback(callback);
case CallbackType.MetadataCallback:
return new MetadataCallback(callback);
case CallbackType.NameCallback:
return new NameCallback(callback);
case CallbackType.NumberAttributeInputCallback:
return new AttributeInputCallback<number>(callback);
case CallbackType.PasswordCallback:
return new PasswordCallback(callback);
case CallbackType.PingOneProtectEvaluationCallback:
return new PingOneProtectEvaluationCallback(callback);
case CallbackType.PingOneProtectInitializeCallback:
return new PingOneProtectInitializeCallback(callback);
case CallbackType.PollingWaitCallback:
return new PollingWaitCallback(callback);
case CallbackType.ReCaptchaCallback:
return new ReCaptchaCallback(callback);
case CallbackType.RedirectCallback:
return new RedirectCallback(callback);
case CallbackType.SelectIdPCallback:
return new SelectIdPCallback(callback);
case CallbackType.StringAttributeInputCallback:
return new AttributeInputCallback<string>(callback);
case CallbackType.SuspendedTextOutputCallback:
return new SuspendedTextOutputCallback(callback);
case CallbackType.TermsAndConditionsCallback:
return new TermsAndConditionsCallback(callback);
case CallbackType.TextInputCallback:
return new TextInputCallback(callback);
case CallbackType.TextOutputCallback:
return new TextOutputCallback(callback);
case CallbackType.ValidatedCreatePasswordCallback:
return new ValidatedCreatePasswordCallback(callback);
case CallbackType.ValidatedCreateUsernameCallback:
return new ValidatedCreateUsernameCallback(callback);
default:
return new FRCallback(callback);
}
}
export default createCallback;
export type { FRCallbackFactory };