typescript-nedb-orm
v1.7.0
Published
ORM for @seald-io/nedb written in TypeScript
Downloads
46
Readme
typescript-nedb-orm
ORM for @seald-io/nedb written in TypeScript
How to install
npm install typescript-nedb-orm
or
yarn add typescript-nedb-orm
or
pnpm add typescript-nedb-orm
How to use
Create an objet extending ORM, parametrised with your class fields interface
Example:
import { IID, ORM } from 'typescript-nedb-orm'
interface IPerson extends IID {
name: string
email: string
}
class Person extends ORM<IPerson> implements IPerson {
name: string
email: string
constructor(person: IPerson) {
super(person)
this.name = person.name
this.email = person.email
}
}
Then, you can use it.
Create your object as you would normaly:
const person = new Person({
name: 'Luc',
email: '[email protected]'
})
Save your object:
const savedPerson: IPerson = await person.save()
Fetch your objects in db:
const retrievedPersons: IPerson[] = await Person.find<IPerson>({
email: '[email protected]'
})
Delete your object:
await person.delete()
Update your objects in db:
const updated: number = await Person.update<IPerson>(
{
name: 'Luc'
},
{
email: '[email protected]'
}
)
Remove your objects in db:
const removed: number = await Person.remove<IPerson>({
email: '[email protected]'
})
Find one object in db:
const found: IPerson | null = await Person.findOne<IPerson>({
name: 'Luc'
})
Find an object by id in db:
const foundById: IPerson | null = await Person.findById<IPerson>('kpOBxczJlr2R5S68')
Count the number of objects in db:
const count: number = await Person.count<IPerson>()
Have fun! :)
Contributing
Thank you for your interest in contributing to the TypeScript-NEDB-ORM! Contributions are valued and help enhance this project.
How to Contribute
- Fork the repository and create your branch from
main
. - Clone the forked repository to your local machine.
- Install the required dependencies using
npm install
. - Make your changes, following these coding style guidelines:
- No semicolon at the end of lines.
- Use single quotes instead of double quotes.
- Indent with 4 spaces for TS and JS files, and 2 spaces for JSON or HTML.
- You can run
npm run format
to format your code before pushing.
- Ensure that the code passes the coverage requirements:
- Add tests for the changes made.
- Run
npx jest -- --coverage
to check if the code passes the coverage requirements.
- Ensure that the code passes the linting requirements:
- Run
npm run lint
- Run
- Update the documentation (
README.md
) to reflect your changes. - Commit your changes and push them to your forked repository.
- Create a pull request to the
main
branch of the original repository.
Reporting Issues
If you encounter any issues or have suggestions, please open an issue on GitHub.
Thank you for your contributions! This project is maintained by one person, and your efforts are greatly appreciated.
License
This project is licensed under the GNU General Public License v3.0 (GPLv3) - see the LICENSE file for details.