UNPKG

text2smiles

Version:
66 lines (49 loc) 1.96 kB
'use strict'; 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); }