text2smiles
Version:
Converting text to smiles
66 lines (49 loc) • 1.96 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = convertText2Smiles;
var _serift = require('./serift');
var STRING_LENGTH = 8;
function convertText2Smiles() {
var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var bgSymbol = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '🤘';
var textSymbol = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '💀';
var strLength = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : STRING_LENGTH;
if (!text.length) return text;
function getLetter(symb, lineIndex) {
var letter = void 0;
var POSITION = lineIndex * _serift.LETTER_WIDTH;
switch (symb) {
case "'":
case '"':
letter = _serift.ABC.quote;
break;
default:
letter = _serift.ABC[symb];
}
if (!letter) {
letter = _serift.ABC[' '];
}
return letter.slice(POSITION, POSITION + (_serift.LETTER_WIDTH - 1));
}
function generateLine(str) {
var result = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
var secondLine = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var currentResult = result;
var currentString = str.slice(0, strLength);
var surplusString = str.slice(strLength);
for (var lineIndex = secondLine ? 1 : 0; lineIndex < _serift.LETTER_HEIGHT; lineIndex += 1) {
for (var letterIndex = 0; letterIndex < currentString.length; letterIndex += 1) {
var letter = currentString[letterIndex];
currentResult += getLetter(letter, lineIndex);
}
currentResult += bgSymbol + '\n';
}
if (surplusString.length > 0) {
return generateLine(surplusString, currentResult, true);
}
return currentResult;
}
return generateLine(text.toLowerCase()).replace(/\./g, bgSymbol).replace(/\*/g, textSymbol);
}
;