feat: handle prefix 0x, &H, \x and custom output prefix

This commit is contained in:
ShareVB 2024-09-22 13:18:15 +02:00
parent 73e97f97bb
commit 0c63eb7ca4

View file

@ -8,7 +8,7 @@ const fileName = ref('');
const fileExtension = ref('');
const hexInput = ref('');
const base64Input = computed(() => {
const hexString = hexInput.value?.replace(/[^\da-f]/gi, '');
const hexString = hexInput.value?.replace(/^(?:0x|&H|\\x)/gi, '').replace(/[^\da-f]/gi, '');
try {
return `data:application/octet-stream;base64,${Buffer.from(hexString, 'hex').toString('base64')}`;
}
@ -51,11 +51,13 @@ async function ReadFileAsHex(file: File, separator: string = ' '): Promise<strin
const separator = useStorage('hex-converter:sep', ' ');
const fileInput = ref() as Ref<File>;
const prefix = useStorage('hex-converter:prefix', '');
const fileHex = computedAsync(async () => {
const file = fileInput.value;
const sep = separator.value;
const pref = prefix.value;
return await ReadFileAsHex(file, sep);
return pref + await ReadFileAsHex(file, sep);
});
const { copy: copyFileHex } = useCopy({ source: fileHex, text: 'Hex string copied to the clipboard' });
@ -119,6 +121,14 @@ function onUpload(file: File) {
mb-2
/>
<c-input-text
v-model:value="prefix"
label="Prefix"
label-position="left"
placeholder="Enter a prefix (ie, 0x, &H or empty)"
mb-2
/>
<n-divider />
<n-form-item label="File in Hex">