mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-05-16 10:27:34 +08:00
64 lines
1.3 KiB
TypeScript
64 lines
1.3 KiB
TypeScript
export interface ConnectionSecretDraftInput {
|
|
valueInput?: string;
|
|
hasSecret?: boolean;
|
|
clearSecret?: boolean;
|
|
forceClear?: boolean;
|
|
trimInput?: boolean;
|
|
}
|
|
|
|
export interface ConnectionSecretDraftResult {
|
|
value: string;
|
|
clearStoredSecret: boolean;
|
|
keepsStoredSecret: boolean;
|
|
hasSecretAfterSave: boolean;
|
|
}
|
|
|
|
export function resolveConnectionSecretDraft(input: ConnectionSecretDraftInput): ConnectionSecretDraftResult {
|
|
const rawValue = input.valueInput ?? '';
|
|
const value = input.trimInput ? String(rawValue).trim() : String(rawValue);
|
|
|
|
if (input.forceClear) {
|
|
return {
|
|
value: '',
|
|
clearStoredSecret: true,
|
|
keepsStoredSecret: false,
|
|
hasSecretAfterSave: false,
|
|
};
|
|
}
|
|
|
|
if (value !== '') {
|
|
return {
|
|
value,
|
|
clearStoredSecret: false,
|
|
keepsStoredSecret: false,
|
|
hasSecretAfterSave: true,
|
|
};
|
|
}
|
|
|
|
if (input.clearSecret) {
|
|
return {
|
|
value: '',
|
|
clearStoredSecret: true,
|
|
keepsStoredSecret: false,
|
|
hasSecretAfterSave: false,
|
|
};
|
|
}
|
|
|
|
if (input.hasSecret) {
|
|
return {
|
|
value: '',
|
|
clearStoredSecret: false,
|
|
keepsStoredSecret: true,
|
|
hasSecretAfterSave: true,
|
|
};
|
|
}
|
|
|
|
return {
|
|
value: '',
|
|
clearStoredSecret: false,
|
|
keepsStoredSecret: false,
|
|
hasSecretAfterSave: false,
|
|
};
|
|
}
|
|
|