bitwarden_wasm_internal/generators.rs
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
use bitwarden_core::Client;
use bitwarden_generators::{
GeneratorClientsExt, PassphraseGeneratorRequest, PasswordGeneratorRequest,
};
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub struct GeneratorClient(Client);
impl GeneratorClient {
/// Constructs a new SDK client for generating random passwords and passphrases
///
/// # Arguments
/// - `client` - The client used to access the SDK
///
/// # Returns
/// - `Self` - Returns newly constructed client
pub fn new(client: Client) -> Self {
Self(client)
}
}
#[wasm_bindgen]
impl GeneratorClient {
/// Generates a password from a provided request
///
/// # Arguments
/// - `request` - Settings for the character sets and password length
///
/// # Returns
/// - `Ok(String)` containing the generated password
/// - `Err(PasswordError)` if password generation fails
pub fn password(
&self,
request: PasswordGeneratorRequest,
) -> Result<String, bitwarden_generators::PasswordError> {
self.0.generator().password(request)
}
/// Generates a passphrase from a provided request
///
/// # Arguments
/// - `request` - Settings for the word count, word separators character sets
///
/// # Returns
/// - `Ok(String)` containing the generated passphrase
/// - `Err(PassphraseError)` if passphrase generation fails
pub fn passphrase(
&self,
request: PassphraseGeneratorRequest,
) -> Result<String, bitwarden_generators::PassphraseError> {
self.0.generator().passphrase(request)
}
}