28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import { PasswordGenerationServiceAbstraction } from "@bitwarden/common/tools/generator/password";
|
|
|
|
import { setAlarmTime } from "../../platform/alarms/alarm-state";
|
|
import { BrowserStateService } from "../../platform/services/abstractions/browser-state.service";
|
|
|
|
import { clearClipboardAlarmName } from "./clear-clipboard";
|
|
import { copyToClipboard } from "./copy-to-clipboard-command";
|
|
|
|
export class GeneratePasswordToClipboardCommand {
|
|
constructor(
|
|
private passwordGenerationService: PasswordGenerationServiceAbstraction,
|
|
private stateService: BrowserStateService
|
|
) {}
|
|
|
|
async generatePasswordToClipboard(tab: chrome.tabs.Tab) {
|
|
const [options] = await this.passwordGenerationService.getOptions();
|
|
const password = await this.passwordGenerationService.generatePassword(options);
|
|
|
|
copyToClipboard(tab, password);
|
|
|
|
const clearClipboard = await this.stateService.getClearClipboard();
|
|
|
|
if (clearClipboard != null) {
|
|
await setAlarmTime(clearClipboardAlarmName, clearClipboard * 1000);
|
|
}
|
|
}
|
|
}
|