mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-28 10:36:14 -04:00
feat(new tool): string obfuscator (#575)
This commit is contained in:
parent
f235dcd6c1
commit
c58d6e3423
6 changed files with 119 additions and 1 deletions
35
src/tools/string-obfuscator/string-obfuscator.model.ts
Normal file
35
src/tools/string-obfuscator/string-obfuscator.model.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
import { get } from '@vueuse/core';
|
||||
import { type MaybeRef, computed } from 'vue';
|
||||
|
||||
export { obfuscateString, useObfuscateString };
|
||||
|
||||
function obfuscateString(
|
||||
str: string,
|
||||
{ replacementChar = '*', keepFirst = 4, keepLast = 0, keepSpace = true }: { replacementChar?: string; keepFirst?: number; keepLast?: number; keepSpace?: boolean } = {}): string {
|
||||
return str
|
||||
.split('')
|
||||
.map((char, index, array) => {
|
||||
if (keepSpace && char === ' ') {
|
||||
return char;
|
||||
}
|
||||
|
||||
return (index < keepFirst || index >= array.length - keepLast) ? char : replacementChar;
|
||||
})
|
||||
.join('');
|
||||
}
|
||||
|
||||
function useObfuscateString(
|
||||
str: MaybeRef<string>,
|
||||
config: { replacementChar?: MaybeRef<string>; keepFirst?: MaybeRef<number>; keepLast?: MaybeRef<number>; keepSpace?: MaybeRef<boolean> } = {},
|
||||
|
||||
) {
|
||||
return computed(() => obfuscateString(
|
||||
get(str),
|
||||
{
|
||||
replacementChar: get(config.replacementChar),
|
||||
keepFirst: get(config.keepFirst),
|
||||
keepLast: get(config.keepLast),
|
||||
keepSpace: get(config.keepSpace),
|
||||
},
|
||||
));
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue