UNPKG

asksuite-core

Version:
43 lines (36 loc) 1.2 kB
/* eslint-disable prefer-regex-literals */ const StringUtils = require('./StringUtils'); const IntEncoder = require('./IntEncoder')(); const emojiRegex = new RegExp( '(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])', ); class RequestPreprocessor { constructor() {} static process(request) { return new Promise((resolve) => { try { const processed = Object.assign({}, request); processed.text = RequestPreprocessor.processText(processed.text); resolve(processed); } catch (e) { resolve(request); } }); } static processText(text) { text = this.removeUtilityTexts(text); return StringUtils.unaccent(text.toLowerCase()); } static removeUtilityTexts(text) { const groupId = IntEncoder.extract(text); if (groupId) { text = text.replace('#' + groupId, ''); // remove groupId if present } text = text.replace(/\s+/g, ' '); // remove multiple spaces return text.replace(/(Link:\s+?)?fb:\/\/.+?(\s|$)/g, ''); // remove facebook links } static removeEmoji(text) { return text.replace(emojiRegex, ''); } } module.exports = RequestPreprocessor;