UNPKG

complimentr

Version:
64 lines (46 loc) 2.48 kB
# Complimentr Wouldn't the web be better with more compliments? Complimentr is a light, extensible package to add more compliments to your application. Compliments like this: > You wonderful champion! This: > I just had to let you know that you're dreamy ✨ And even this: > Oh my gosh, that was brilliant ❤️ Complimentr uses patented SLM (small language model) technology to keep robotic overlords out. All these compliments are 100% human curated nonsense 😊 ## How to use Basic usage is simple, just call `generateCompliment()` to receive a lovely compliment. As of writing, the default complimentr lists can generate `2,699,184` unique compliments (`45,886,128` if you think trailing emojis make compliments unique). Check out `extras/stats.ts` in the source to run your own stats if making custom complo lists. ### Advanced usage #### Adding tokens To add to the list of nouns, use `generateCompliment({additionalNouns: ['tiger', 'unicorn']})`. This will use the default list of nouns in addition to any additional nouns specified. Use the TS definition - but you can replace the - Templates - Nouns - Adjectives - Qualifiers - Emotions - Emoticons #### Replacing token lists To replace the default list of nouns, use `generateCompliment({nouns: ['tiger', 'unicorn', 'champion', 'winner']})` #### Replacing templates Default templates can be replaced or added to the same as individual tokens: `generateCompliment({templates: ['adj']})`. Templates contain `{noun}`, `{adjective}`, `{adverb}`, `{emotion}` which are replaced by the lists of tokens. Use the word `a` instead of `an` - these will be replaced appropriately when compliments are generated. #### Setting max length If you need to fit your compliment to a space budget, set the `maxLength` option. It's not too clever about it - if there's any possibility with your given words that a template could generate above maxLength, it will throw that template out. #### Setting emoji weight An emoji will be optionally appended to the end of the string, based on the weight provided (by default 0.5). A weight of 1 means that you will always get an emoji, a weight of 0 means you will never get an emoji. ## TODO - Use a proper type for string templates rather than just 'string' ## Publishing This one's just for me. 1. Remember to update the version in package.json 2. Build: `npm build` 3. Publish: `npm publish`. If you're not logged in to your npm account, you should get prompted.