@nevis-security/nevis-mobile-authentication-sdk-react
Version:
React Native plugin for Nevis Mobile Authentication SDK. Supports only mobile.
80 lines (75 loc) • 3.04 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.MobileAuthenticationClientInitializer = void 0;
var _reactNativeUuid = _interopRequireDefault(require("react-native-uuid"));
var _InitializationErrorConverter = require("./error/initialization/InitializationErrorConverter");
var _MobileAuthenticationClient = require("./MobileAuthenticationClient");
var _MobileAuthenticationSdk = _interopRequireDefault(require("./MobileAuthenticationSdk"));
var _InitClientMessage = require("./model/messages/out/InitClientMessage");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**
* Copyright © 2023 Nevis Security AG. All rights reserved.
*/
/**
* The class that creates and initializes asynchronously an instance of {@link MobileAuthenticationClient}.
*/
class MobileAuthenticationClientInitializer {
/**
* Sets the configuration of the {@link MobileAuthenticationClient}.
*
* **IMPORTANT** \
* Providing the configuration is required.
*
* @param configuration the {@link MobileAuthenticationClient} configuration.
* @returns an initializer
*/
configuration(configuration) {
this._configuration = configuration;
return this;
}
/**
* The method invoked when the {@link MobileAuthenticationClient} could be successfully built after
* invoking {@link execute}.
*
* **IMPORTANT** \
* Providing the callback handling the {@link MobileAuthenticationClient} is required.
*
* @param onSuccess the callback handling the {@link MobileAuthenticationClient}.
* @returns an initializer.
*/
onSuccess(onSuccess) {
this._onSuccess = onSuccess;
return this;
}
/**
* The method invoked when an error occurs after invoking {@link execute}.
*
* **IMPORTANT** \
* Providing the callback handling the error is required.
*
* @param onError the callback handling the error.
* @returns an initializer.
*/
onError(onError) {
this._onError = onError;
return this;
}
/**
* Starts the creation of an instance of the {@link MobileAuthenticationClient}. If an error
* occurs, it is provided through {@link onError}, if the {@link MobileAuthenticationClient}
* can be successfully built and initialized, it is provided through {@link onSuccess}.
*/
async execute() {
const message = new _InitClientMessage.InitClientMessage(_reactNativeUuid.default.v4(), this._onSuccess !== undefined, this._onError !== undefined, this._configuration);
return _MobileAuthenticationSdk.default.initClient(message).then(() => {
this._onSuccess?.(new _MobileAuthenticationClient.MobileAuthenticationClientImpl());
}).catch(error => {
const initializationError = new _InitializationErrorConverter.InitializationErrorConverter(error).convert();
this._onError?.(initializationError);
});
}
}
exports.MobileAuthenticationClientInitializer = MobileAuthenticationClientInitializer;
//# sourceMappingURL=MobileAuthenticationClientInitializer.js.map
;