{"_id":"0db-repl","_rev":"2-0865df8dcb8e876c0b494a29ebc128c5","name":"0db-repl","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"0db-repl","version":"0.0.1","description":"0db REPL playground for testing 0db database.","main":"bin/index.js","bin":{"0db":"bin/index.js"},"scripts":{"start":"node ./bin/index.js","dev":"npm link 0db && nodemon ./bin/index.js --ignore db.json","readme":"markdown-toc -i README.md"},"author":{"name":"Ambratolm","email":"ambratolm@gmail.com"},"license":"MIT","dependencies":{"0db":"^0.0.1","colors":"^1.4.0","faker":"^5.5.3","local-repl":"^4.0.0"},"gitHead":"16253bc46c5abf5d3396d00d30a49953b7d644fb","_id":"0db-repl@0.0.1","_nodeVersion":"13.14.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-Abxwu6eawT09qzJC+tkzE8YUwb0NgRNvAwvJYJ2ayxUu9uFEhqmy8DqMoRksga/G+bKRprBIbFqgvb4zEpArTA==","shasum":"97ae2820ef75dc165c15b62c1c51bf494ee85bc5","tarball":"https://registry.npmjs.org/0db-repl/-/0db-repl-0.0.1.tgz","fileCount":6,"unpackedSize":573881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhudzyCRA9TVsSAnZWagAAFGsP/iwQ9eChaFVvDpAmKZlL\nyRpwpAD7UmWsyfRLtoYUzKKGPUkpGj7HGYslIOhMz+k/28hOFKLqxcSZFzwj\n3qmsWwG2q53T8UQ4YIdsikU6hwnKbbHFWcAyIEh4ux7gP5arqONuOdc47WS5\nSpYrrgWwGQ+62Bho0wwIcHGbBb10DqgF1SHWMzz9t7yof4fY9ZZBD9Wue0my\nlay8b3I5aFMFQ/iIKtlyCbz0zekpD6LOKR3mGT2O+1volHA1ogDDpbBCR9DB\niveWOA4Ou7K8cGnelwR73VNxwzVsh8wXlUWKqUjvC97fHxvDszvqscRjsipR\n794nf4KxDhaPbGNsx0nvvnwwY/wk0gO6P3LmrIM0z/bC4g8QPMZCBrUiwezd\nRhVjTs8D70wzzysdp+RsRjBBJOkBxkfvL2/7mNbN0LqeFOzHMcsuEn+pANOr\nFONpkjt9iqaQMTnH5pZ5W2KEY5bqEcI8qmYXTnZiVmeg56e3V1H1pcSh7kPL\nety3FKach+yeYpRwF89ukY8dufz0kibziWFkCwBWoFsFsur9iuQq2SSZiUUs\nkQnqfz9E1kN6HerjfXylr6DM9kb2SPjbKuZWLAMxS7XTIoS7gg6Du96Lwdts\njyiCXWomzbK0FwMDQFx+zvoCtGKFN2jSzPpmtZQs/hy6yNnLVcDM5idOQQG8\nHlte\r\n=9G12\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF2bWC2bBbRKXAwup8du3/ZZNXOnT03l0jMDE0UUlPS/AiEAnTS93fCXDlqGuLyOkgDZKRd9Ai9MjyjFK65OnRmNdsA="}]},"_npmUser":{"name":"ambratolm","email":"ambratolm@gmail.com"},"directories":{},"maintainers":[{"name":"ambratolm","email":"ambratolm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/0db-repl_0.0.1_1633397324845_0.7405883060876284"},"_hasShrinkwrap":false}},"time":{"created":"2021-10-05T01:28:44.845Z","0.0.1":"2021-10-05T01:28:45.070Z","modified":"2022-04-04T10:08:39.873Z"},"maintainers":[{"name":"ambratolm","email":"ambratolm@gmail.com"}],"description":"0db REPL playground for testing 0db database.","author":{"name":"Ambratolm","email":"ambratolm@gmail.com"},"license":"MIT","readme":"# 🅾️ 0db REPL\n\n[![NPM version](https://badge.fury.io/js/0db.svg)](https://npmjs.org/package/0db-repl)\n[![NodeJS](https://img.shields.io/badge/node-blue?logo=node.js)](https://github.com/topics/node)\n[![JavaScript](https://img.shields.io/badge/javascript-blue?logo=javascript)](https://github.com/topics/javascript)\n[![Web](https://img.shields.io/badge/web-blue?logo=w3c)](https://github.com/topics/web)\n\nREPL playground for testing [**0db**](https://github.com/Ambratolm/0db).\n\n> This is a nodeJS REPL that comes with some handy context variables to easily play around with 0db on the command line.\n\n![Screenshot](./screenshot.gif?raw=true)\n\n<!-- toc -->\n\n- [📥 Installation](#%F0%9F%93%A5-installation)\n- [ℹ️ Usage](#%E2%84%B9%EF%B8%8F-usage)\n  - [Context Variables:](#context-variables)\n    - [`$0db`](#0db)\n    - [`db`](#db)\n    - [`faker`](#faker)\n    - [`gen`](#gen)\n    - [`cls`](#cls)\n    - [`help`](#help)\n- [🚀 Development](#%F0%9F%9A%80-development)\n  - [🏭 Environment](#%F0%9F%8F%AD-environment)\n  - [🌑 Application](#%F0%9F%8C%91-application)\n- [📃 License](#%F0%9F%93%83-license)\n\n<!-- tocstop -->\n\n## 📥 Installation\n\n```bash\nnpm i 0db-repl -g\n```\n\n## ℹ️ Usage\n\nLaunch using:\n\n```bash\n0db\n```\n\nType `help()` to see a description of all available context variables.\n\n### Context Variables:\n\nContext variables are objects and functions that are already defined and available for usage during the REPL session.\n\n#### `$0db`\n\n[0db](https://github.com/Ambratolm/0db) object.\n\n🎯 Example:\n\n```js\n► const myDb = await $0db(\"my-db.json\")\n```\n\n#### `db`\n\nA default instance using the default file `./db.json` ready for use.\n\n🎯 Example:\n\n```js\n► await db(\"users\").create({ name: \"ambratolm\" })\n```\n\n#### `faker`\n\nFake data generator to generate some realistic mock data. (See: [Faker.JS](https://npmjs.com/package/faker))\n\n🎯 Example:\n\n```js\n► faker.name.firstName()\n► faker.name.lastName()\n► faker.name.gender()\n► faker.internet.userName()\n► faker.internet.email()\n► faker.internet.password()\n```\n\n```js\n► await db(\"users\").create({\n    name: faker.internet.userName(),\n    email: faker.internet.email(),\n    password: faker.internet.password()\n  })\n```\n\n#### `gen`\n\nBuilt-in example data objects generator (using faker) that has some functions to generate example objects that can be added to database.\n\n- `gen.user(count?)` : Generates `user` objects.\n\n  - Parameters:\n    - `count` : Number, _Optional_. Number of objects to generate. **Default: 1**.\n  - Returns an **object** if `count <= 1`, else an **array** of objects.\n\n  `user` object is based on this schema:\n\n  ```js\n  {\n    name: String,\n    firstName: String,\n    lastName: String,\n    gender: String,\n    email: String,\n    password: String,\n    points: Number\n  }\n  ```\n\n  🎯 Example:\n\n  ```js\n  ► gen.user() // Returns 1 user object\n  ► gen.user(100) // Returns an array of 100 user objects\n  ```\n\n  ```js\n  ► await db(\"users\").create(gen.user())\n  ```\n\n- `gen.note(author?, count?)` : Generates `note` objects.\n\n  - Parameters:\n    - `author` : String, _Optional_. Identifier for the author of the note (Expected to be the `$id` field of a created `user` object that exists in database).\n    - `count` : Number, _Optional_. Number of objects to generate. **Default: 1**.\n  - Returns an **object** if `count <= 1`, else an **array** of objects.\n\n  `note` object is based on this schema:\n\n  ```js\n  {\n    author: String,\n    title: String,\n    content: String\n  }\n  ```\n\n  🎯 Example:\n\n  ```js\n  ► const user = await db(\"users\").create(gen.user()) // Create a user item\n  ► gen.note(user.$id) // Returns 1 note object\n  ► gen.note(user.$id, 100) // Returns an array of 100 note objects\n  ```\n\n  ```js\n  ► const user = await db(\"users\").create(gen.user())\n  ► await db(\"notes\").create(gen.note(user.$id))\n  ```\n\n#### `cls`\n\nClears screen.\n\n🎯 Example:\n\n```js\n► cls()\n```\n\n#### `help`\n\nShows a description of all context variables.\n\n- Parameters:\n  - `name` : String, _Optional_. Name of a specific context object or function to show description for.\n\n🎯 Example:\n\n```js\n► help() // Shows all descriptions\n► help(\"db\") // Shows description only for \"db\" function\n► help(\"gen\") // Shows description only for \"gen\" object\n```\n\n## 🚀 Development\n\n1. Clone the repository.\n\n   ```bash\n   cd somewhere\n   git clone https://github.com/practical-works/0db-repl.git\n   cd 0db-repl\n   ```\n\n2. Install dependencies: `npm i`\n\n3. Run:\n   - `npm run dev` for development.\n   - `npm start` for production.\n\n💡 In development, you can type `rs` to manually restart. (See: [Nodemon](https://www.npmjs.com/package/nodemon))\n\n### 🏭 Environment\n\n- Runtime: [**NodeJS**](https://github.com/nodejs)\n- Package Manager: [**NPM**](https://github.com/npm)\n- Editor: [**Sublime Text**](https://www.sublimetext.com)\n\n### 🌑 Application\n\n- ⚛️ Core:\n  - Main: [**NodeJS**](https://github.com/nodejs/node) / [**0db**](https://github.com/Ambratolm/0db)\n  - REPL: [**Local-REPL**](https://github.com/sloria/local-repl)\n- 🔧 Utils:\n  - Mock Data Generation: [**Faker.JS**](https://github.com/Marak/Faker.js)\n  - Console Colors: [**Colors**](https://github.com/Marak/colors.js)\n\n## 📃 License\n\nLicensed under [MIT](./LICENSE).\n","readmeFilename":"README.md"}