npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

scrabble-solver

v2.15.6

Published

Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Super Scrabble, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.

Downloads

491

Readme

scrabble-solver

Table of contents

  1. Dictionaries
  2. Run
  3. Uninstall
  4. Develop
    1. Setup
    2. Run app dev server
    3. Rebuild the entire project
    4. Rebuild a single package
    5. Add a new language
  5. Tech stack
  6. Related projects
  7. Media

Dictionaries

| Language | Word list | Word definitions | Highest-scoring word | |-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|--------------------------------------------------------------------------------------------------------------| | 🇬🇧 English | 💾 SOWPODS | Merriam-Webster | oxyphenbutazone (1458) | | 🇺🇸 English | 💾 TWL06 | Merriam-Webster | oxyphenbutazone (1458) | | 🇫🇷 French | 💾 ODS8 | CNRTL | schizothymiques (1566) | | 🇩🇪 German | 💾 hippler/german-wordlist | DWDS | polytoxikomanem (1512) | | 🇮🇷 Persian | 💾 MansourM/persian-to-persian-dictionary | واژه یاب | ‏(756) اگزیستانسیالیست | | 🇵🇱 Polish | 💾 SJP.PL | SJP.PL | współposiądźmyż (1512) | | 🇷🇴 Romanian | 💾 LOC 5 | dexonline | luxemburghezele (1944) | | 🇪🇸 Spanish | 💾 FILE 2017 | Diccionarios.com | flexibilizabais (1323) | | 🇹🇷 Turkish | 💾 Turkish | Türk Dil Kurumu Sözlükleri | dövüşmeyeceğime (1593) |

Run

You can run Scrabble Solver on your machine - all you need is Node.js 20 or later.

npx scrabble-solver@latest

Give it a while to install and download dictionaries. When it's done it will automatically open http://localhost:3333/ in your browser.

Hit Ctrl + C in your terminal to exit the app and shut down the server.

Uninstall

Dictionaries and logs are stored in $HOME/.scrabble-solver. $HOME location is acquired using os.homedir().

rm -rf $HOME/.scrabble-solver

Develop

These steps are required only if you want to make changes to the source code.

Setup

One-time project setup.

git clone https://github.com/kamilmielnik/scrabble-solver.git
cd scrabble-solver
npm install
npm run build

Run app dev server

The following command will serve the app at http://localhost:3000/.

npm run dev

Note: hot code reload works only for the scrabble-solver package. If you make changes to any other package, you will need to rebuild it (see below).

Rebuild the entire project

npm run build

Rebuild a single package

For convenience, here's a list of commands to rebuild every package individually.

npm run build -w @scrabble-solver/configs
npm run build -w @scrabble-solver/constants
npm run build -w @scrabble-solver/dictionaries
npm run build -w @scrabble-solver/logger
npm run build -w @scrabble-solver/scrabble-solver
npm run build -w @scrabble-solver/solver
npm run build -w @scrabble-solver/types
npm run build -w @scrabble-solver/word-definitions
npm run build -w @scrabble-solver/word-lists

Add a new language

  1. Find and download a flag representing the locale in an SVG format
    • I usually find them at https://commons.wikimedia.org/
  2. Rename the file to FlagXX.svg and put it in packages/scrabble-solver/src/icons
  3. Export the SVG file in packages/scrabble-solver/src/icons/index.ts
  4. Add IETF language tag for the new locale in packages/types/src/Locale.ts
  5. Rebuild the types package
    npm run build -w @scrabble-solver/types
  6. Add locale configuration in packages/scrabble-solver/src/i18n/constants.ts
  7. Update locale-detecting code in packages/scrabble-solver/src/lib/detectLocale.ts
  8. Add game configs for the new locale in packages/configs/src/languages
  9. Add an export for these locale configs in packages/configs/src/languages/index.ts
  10. Add a translation file in packages/scrabble-solver/src/i18n/languages and fill it with translations
    • Copy any existing file, e.g. english.json and modify it
  11. Add an entry for the translations in packages/scrabble-solver/src/i18n/i18n.ts
  12. Add a function to fetch the list of words in the new locale in packages/word-lists/src/getWordList.ts
  13. Add a function to fetch the word definition in the new locale in packages/word-definitions/src/crawl.ts
  14. Add a function to parse the word definition crawled in the previous step in packages/word-definitions/src/parse.ts

Tech stack

Related projects

Lexatious

The user interface and source code for the web front end of Lexatious is based on Scrabble Solver.

  • Web: https://lexatious.com
  • GitHub: https://github.com/ericgjackson/lexatious_web

Media