unsearch is a simple library designed to add flexible search functionality to your own APIs and databases.
- Pluggable architecture
- Plugins
- andScope / AND
- orScope / OR
- orderByScope / asc:xx, desc:xx asc:[xx, xx], desc:[xx, xx]
- textScope / hello world
- twoPointScope / xx:xx yy:yy xx:>yy xx:>=yy xx:<yy xx:<=yy xx:yy xx:yy and more
- limitScope
- offsetScope
- Plugins
- key:value scope search
- asc:key or desc:key sort search
- limit:count limit search (soon)
- offset:count offset search (soon)
- key:value OR key:value orScope search
- key:value AND key:value andScope search
pnpm add unsearch
Here is an example of a search text.
const example1 = 'name:john'
const example2 = 'test name:john'
const example3 = 'name:>john' // 'name:>=john' 'name:<john' 'name:<=john' 'name:<like>john' 'name:<ilike>john'
const example2 = 'name:john age:20'
const example3 = 'name:john age:20 OR name:doe age:30'
const example4 = 'name:john age:20 AND name:doe age:30'
const example5 = 'name:john asc:age'
const example6 = 'name:john desc:age'
const example8 = 'name:john AND email:test@gmail.com asc:age name:doe OR age:30'
const example7 = 'name:john asc:age limit:10' // soon
- Add limitScope
- Add offsetScope
- Usege examples
- Prisma
- TypeORM
- Sequelize
- Knex
- Postgres
- MySQL
- MongoDB
- SQLite
- MariaDB
- Add more tests
- Add more docs
- To use this template, click the "Use this template" button above.
- Clone the repository to your local machine.
- Run
pnpm install
to install the dependencies. - Run
pnpm build
to build the bundle. - Run
pnpm start
to start the bundle. - Run
pnpm lint
to lint the code. (You can also runpnpm lint:fix
to fix the linting errors.) - Run
pnpm test
to run the tests. (You can also runpnpm test:watch
to run the tests in watch mode.) - Run
pnpm release
to bump the version. Terminal will ask you to select the version type. And then it will automatically commit and push the changes. GitHub Actions will automatically publish git tags. NPM local registry will automatically publish the package.
MIT License © 2024-PRESENT productdevbook