UNPKG

buzzphrase

Version:

Get a Buzzword Phrase. Because sometimes you need enhanced didactic mobility, liberating syndicated transitional projections

39 lines (37 loc) 1.55 kB
const unique = require("./unique"); // words const adjectives = require("../data/adjectives"); const adverbs = require("../data/adverbs"); const continuation = require("../data/continuation"); const final = require("../data/final"); const jargon = require("../data/jargon"); const nounsPlural = require("../data/nouns.plural"); const nounsSingular = require("../data/nouns.singular"); const verbsImperative = require("../data/verbs.imperative"); const verbsPast = require("../data/verbs.past"); const verbsPresent = require("../data/verbs.present"); /** * format a string * @param format {string} The string format * @example: format('{a} {v} {n}') * @return {string} 'adjective verb singularNoun' phrase */ module.exports = function format(format) { // until each item is replaced // we don't want to do a /g global in one swoop because we need to run // unique test on the string as it builds while (/\{[a-zA-Z]\}/.test(format)) { format = format .replace(/{a}/, () => unique(format, adjectives)) .replace(/{c}/, () => unique(format, continuation)) .replace(/{d}/, () => unique(format, adverbs)) .replace(/{f}/, () => unique(format, final)) .replace(/{i}/, () => unique(format, verbsImperative)) .replace(/{j}/, () => unique(format, jargon)) .replace(/{N}/, () => unique(format, nounsPlural)) .replace(/{n}/, () => unique(format, nounsSingular)) .replace(/{v}/, () => unique(format, verbsPast)) .replace(/{V}/, () => unique(format, verbsPresent)); } return format; };