react-native-runescape-text
Version:
Convert text to a text GIF image with RuneScape chat effects for React Native.
41 lines (29 loc) • 1.32 kB
JavaScript
const Color = require("./classes/Color");
const Encoder = require("./classes/Encoder");
const Logger = require("./classes/Logger");
const Motion = require("./classes/Motion");
const Parser = require("./classes/Parser");
const { getConfig, getWordWrapConfig } = require("./utils/configUtil");
const { validateInputs } = require("./utils/validateInputs");
const getRuneScapeText = (string, options = {}, wordWrapOptions = {}) => {
validateInputs(string, options, wordWrapOptions);
const config = getConfig(options);
const wordWrapConfig = getWordWrapConfig(wordWrapOptions);
const logger = new Logger(config.showLogs);
const { parser, color, motion, encoder } = logger.time("Initializing", () => {
const parser = new Parser(config, wordWrapConfig);
const color = new Color(config);
const motion = new Motion(config);
const encoder = new Encoder(config);
return { parser, color, motion, encoder };
});
const parsed = logger.time("Parsing", () => parser.parse(string));
const contexts = logger.time("Rendering", () => {
color.setColor(parsed.color);
motion.setMotion(parsed.motion);
return motion.render(parsed.message, color);
});
const encoded = logger.time("Encoding", () => encoder.encode(contexts));
return encoded;
};
module.exports = getRuneScapeText;