Added base64 and URL encoders/decoders

Reviewed-on: #250
Reviewed-by: Adam Bem <bema@noreply.example.com>
Co-authored-by: widlam <mikolaj.widla@gmail.com>
Co-committed-by: widlam <mikolaj.widla@gmail.com>
This commit is contained in:
2023-10-27 14:32:10 +02:00
committed by Adam Bem
parent 6adc1af638
commit 430b6de5f0
6 changed files with 190 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
<script setup lang="ts">
const props = defineProps(
{
operation: {type:String,required:true},
code: {type: String, required: true}
}
)
const emit = defineEmits([
'update:result'
])
function encode(){
switch(props.operation.toLowerCase()){
case "encode":{
emit('update:result', encodeURI(props.code) )
break;
}
case "decode":{
emit('update:result', decodeURI(props.code) )
break;
}
}
}
</script>
<template>
<button @click="encode()" class="tool-button">{{ props.operation }}</button>
</template>

View File

@@ -0,0 +1,39 @@
<script setup lang="ts">
const props = defineProps(
{
encodeType: {type:String,required:true},
code: {type: String, required: true}
}
)
const emit = defineEmits([
'update:result',
'image:show'
])
function convert(){
console.log("works")
switch(props.encodeType.toLowerCase()){
case "base64":{
emit('update:result', btoa(props.code) )
break;
}
case "text":{
emit('update:result', atob(props.code) )
break;
}
case "image":{
emit('image:show', props.code )
break;
}
}
}
</script>
<template>
<button @click="convert()" class="tool-button">{{ props.encodeType }}</button>
</template>

View File

@@ -48,6 +48,12 @@ onMounted( () => {
<SidebarToolLinkComponent path-to="/rest/mock" element-content="Mock" />
</sidebar-menu-element-component>
<sidebar-menu-element-component category-name="Encoder">
<SidebarToolLinkComponent path-to="/encoder/base64" element-content="Base64" />
<SidebarToolLinkComponent path-to="/encoder/url" element-content="URL" />
</sidebar-menu-element-component>
</div>
<FooterComponent></FooterComponent>
</div>