CryptoAssist/src/blocks/substitution.js

37 lines
740 B
JavaScript

module.exports = {
name: "Substitution",
inputs: {
text: "Text",
mapping: "Mapping"
},
output: true,
execute: function({text, mapping}, elem){
mapping = mapping.toLowerCase();
var letterMapping = {};
for(var i = 0; i < (mapping.length - 1); i++){
letterMapping[mapping[i]] = mapping[i+1];
}
return text
.split("")
.map((char)=>{
if(char.toLowerCase() in letterMapping){
if(char.toLowerCase() == char){
return letterMapping[char];
}
else{
return letterMapping[char.toLowerCase()].toUpperCase();
}
}
else{
return char;
}
})
.join("");
},
pageBlock: {
html: "",
js: function(){}
}
}