{"_id":"@blendedbot/nest-couchdb-entity","_rev":"2-d630c5303f89d7716535156e562ad7f3","name":"@blendedbot/nest-couchdb-entity","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@blendedbot/nest-couchdb-entity","description":"BlendedBot CouchDB module for Nest framework","version":"1.0.0","license":"MIT","private":false,"scripts":{"prebuild":"yarn build:clean","build:clean":"cd dist && rm -rf `ls | grep -v \"LICENSE\\|package.json\\|README.md\"`","build":"npx tsc -b tsconfig.build.json","commit":"npx git-cz","lint":"npx tslint 'src/*.ts'","format":"npx pretty-quick --pattern 'src/**/*.ts'","test":"npx jest -c=jest.config.js test/ --verbose --runInBand"},"husky":{"hooks":{"pre-commit":"yarn format --staged && yarn lint","commit-msg":"npx validate-commit-msg"}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"},"validate-commit-msg":{"types":"conventional-commit-types","helpMessage":"Use \"yarn commit\" instead"}},"dependencies":{"@nestjs/common":"^7.5.1","@nestjs/core":"^7.5.1","@nestjs/platform-express":"^7.5.1","@nestjs/testing":"^7.5.1","@types/jest":"^26.0.15","@types/node":"^14.14.6","@zmotivat0r/o0":"^1.0.2","class-transformer":"^0.2.3","commitizen":"^3.1.1","coveralls":"^3.0.5","cz-conventional-changelog":"^2.1.0","husky":"^2.7.0","jest":"^26.6.3","nano":"^9.0.3","prettier":"^2.1.2","pretty-quick":"^1.11.1","reflect-metadata":"^0.1.13","rxjs":"^6.6.3","ts-jest":"^26.4.3","ts-node":"^9.0.0","tslint":"^5.18.0","tslint-config-prettier":"^1.18.0","typescript":"^4.0.5","validate-commit-msg":"^2.14.0"},"_id":"@blendedbot/nest-couchdb-entity@1.0.0","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"integrity":"sha512-CvKJSRdCBRpjWluwbRB48Ac+ICbtE2sU7HVhtOSflHKTcpfxfQbmyJxTKHFwyTDi7YxBkDGTYz1RzfdOMcpLTw==","shasum":"f52d90fc6d74d066618d02c964298e4ca88efc86","tarball":"https://registry.npmjs.org/@blendedbot/nest-couchdb-entity/-/nest-couchdb-entity-1.0.0.tgz","fileCount":43,"unpackedSize":25849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPImSCRA9TVsSAnZWagAAzZgP/2hJ42RCukNndlxOQYxM\nEDUgpTCmrGXVp3Kzz4qcktPYptBG4Fkflni4j07T9HoTdCRVISEYgQi9O6u/\nNWs7QK8JZmLp/g0gz70ApAm6wkd181AYz7sg62bED2aeb2rvgJ5ggMJRRcYN\nv2HYR5Hj7pMY9Z1fUjliNMwv8AoTFk7QopKoXIJu7yVQZVkC8i5yWpqEtEXX\nWfGE4OB8p2CeGZY0ip7jdANWA9lYz1Q4K+3iazidh7OEi5d9XAKGxlhGg/Nx\nGTvKwcIiXUiqbntZHI4/Z99CXN06HbyghDdcD5lL343iSOAJKVz5f0katDuo\nVLTCS1hvbnK49xKD0llCMbHBonmxbNpfOS3EQZvRiOycv4om0Z7oWD6H944F\nAISePML/q8IMWvWKRHfKtfG/fndXWdIHxLzsFwsFYa5bSfHGbsPDL/xNeKhg\nrL4CjZ7lRV9jJJ3mKuRlHATj8WmSLw9FS6BhF/NPCnI8ll/4UbgGeOie9tUb\nyOrGRkLZg4FkwfsGhPHbRL94IVRLxIYAI5mw2Jg6p3x6lUquxbWupQbaXK5N\n29XKskdkTaH/6/bBCwyIoS/dtrGDf/ZQUf+zOpak7EjmqqmW0YcaVMY9wcrL\nfA/azf1EJq1/whtC4NOTWEGU0r3vysMNP0xex6kv9L4bRmRNDptF5XcP1sWO\nVt20\r\n=6zTp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF8VL7/FlXLA4ZaBUxNRzGHoq5gsYVnlwVH/IE2Ewr2tAiBdPbp4R5cTscgdqcBGv1jASNYybxmjcxGWRkVKcjp8mg=="}]},"_npmUser":{"name":"dilipsamcom","email":"dilip@samcomtechnobrains.com"},"directories":{},"maintainers":[{"name":"dilipsamcom","email":"dilip@samcomtechnobrains.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nest-couchdb-entity_1.0.0_1614580113830_0.18403343355191049"},"_hasShrinkwrap":false},"1.0.1":{"name":"@blendedbot/nest-couchdb-entity","description":"BlendedBot CouchDB module for Nest framework","version":"1.0.1","license":"MIT","main":"src/index.ts","private":false,"scripts":{"prebuild":"yarn build:clean","build:clean":"cd dist && rm -rf `ls | grep -v \"LICENSE\\|package.json\\|README.md\"`","build":"npx tsc -b tsconfig.build.json","commit":"npx git-cz","lint":"npx tslint 'src/*.ts'","format":"npx pretty-quick --pattern 'src/**/*.ts'","test":"npx jest -c=jest.config.js test/ --verbose --runInBand"},"husky":{"hooks":{"pre-commit":"yarn format --staged && yarn lint","commit-msg":"npx validate-commit-msg"}},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"},"validate-commit-msg":{"types":"conventional-commit-types","helpMessage":"Use \"yarn commit\" instead"}},"dependencies":{"@nestjs/common":"^7.5.1","@nestjs/core":"^7.5.1","@nestjs/platform-express":"^7.5.1","@nestjs/testing":"^7.5.1","@types/jest":"^26.0.15","@types/node":"^14.14.6","@zmotivat0r/o0":"^1.0.2","class-transformer":"^0.2.3","commitizen":"^3.1.1","coveralls":"^3.0.5","cz-conventional-changelog":"^2.1.0","husky":"^2.7.0","jest":"^26.6.3","nano":"^9.0.3","prettier":"^2.1.2","pretty-quick":"^1.11.1","reflect-metadata":"^0.1.13","rxjs":"^6.6.3","ts-jest":"^26.4.3","ts-node":"^9.0.0","tslint":"^5.18.0","tslint-config-prettier":"^1.18.0","typescript":"^4.0.5","validate-commit-msg":"^2.14.0"},"_id":"@blendedbot/nest-couchdb-entity@1.0.1","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"integrity":"sha512-zualG1z4vYmhlVP6IzSustC7aPB5CKOxT0T9tN5OGHZEXMTjppEiwqCItTjUbuSUFIpHz0fBW0VJY1MPQ/rqPw==","shasum":"72572abb50c87000d0b81d6dfd812bdd1c7454ac","tarball":"https://registry.npmjs.org/@blendedbot/nest-couchdb-entity/-/nest-couchdb-entity-1.0.1.tgz","fileCount":43,"unpackedSize":25875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPPUUCRA9TVsSAnZWagAAyb8P/iRfPHPn+3T581L1ilGK\n6CrRxVTorwgXdr/jO28YGtgJoDD4PgI00KleLbS6IVyGyaqItXTBW7TM6Imj\nMXzAv8RG0WdrqbvPbZIZXPFEQ4OHL3NcThj95Wpn3MVShVaiwG/Gq90s0AMp\n08Jm+rbum+vEGbqpxbe1AHoXpYs4OYo+Dbo0I37sSiepbSX5bwy6/Ec5g/ph\noAS+yh2UAUn6Pa+uC4r/gBYX6B2Ds6MSikb/hTf+Pwn1u0ydcGkM9SvbeLH7\nklYmrQuzsNG/RZH68+AizuExREW+9zBCQ3L9fiJFueXSJyufPraC8XttACHh\nL91Tn3ZzazcAJeMvitkHObIlWNUDt7wcP5/Zz/9pQzAbU5WtYMG856R9mjLk\n8PDOCT4A2FyJfpLi2USsLBV2ADp0Dh2P453ksFGa/GEOAMsTDkdZFv7Ydc5J\nTBTgypVpCAewS3z2o19BQ/30gxzIFDmzybQl3lK2azCReL1L7QbRIwCylPJL\nlyNwkGjz+S+azzgoUeaXCdVwv7W0SIDXvkEiNw/LygGZdz9HclOAT3vhVEuX\nmgRwpLdhJo0o/D38kJQ7bwcxadhC/8ccLn65NqooDv73aXaSwkwRZD2M3Dc0\nZwrbOwaWP8OGt5ZB1nLldWQI78G9KHfNvsI9US85+I/F/8sLSU4udRpS7fMP\nuz4W\r\n=WmIC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzJ5/0sdiuGmhxw9sxVAsMdWNLbrW3vgN1svfv3vcvbgIgFPjmIdeNqZ3omLjP3V1Td52PVi0A8xdmH2iuItLSnII="}]},"_npmUser":{"name":"dilipsamcom","email":"dilip@samcomtechnobrains.com"},"directories":{},"maintainers":[{"name":"dilipsamcom","email":"dilip@samcomtechnobrains.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nest-couchdb-entity_1.0.1_1614607636278_0.2636031692978831"},"_hasShrinkwrap":false}},"time":{"created":"2021-03-01T06:28:33.597Z","1.0.0":"2021-03-01T06:28:34.086Z","modified":"2022-04-04T19:31:49.564Z","1.0.1":"2021-03-01T14:07:16.450Z"},"maintainers":[{"name":"dilipsamcom","email":"dilip@samcomtechnobrains.com"}],"description":"BlendedBot CouchDB module for Nest framework","license":"MIT","readme":"## Description\n\nThe [CouchDB](http://couchdb.apache.org/) module for Nest framework\n\n## Installation\n\n```bash\n$ npm i @blendedbot/nest-couchdb-entity\n```\n\n## Usage\n\n`@blendedbot/nest-couchdb-entity` uses [nano](https://www.npmjs.com/package/nano) as a data provider for CouchDB and the `Repository` pattern to handle all documents related operations.\n\nFirst, let's create an `Entity`:\n\n```typescript\nimport { Entity, CouchDbEntity } from '@blendedbot/nest-couchdb-entity';\n\n@Entity('cats')\nexport class Cat extends CouchDbEntity {\n  name: string;\n}\n```\n\nWhere `cats` is the CouchDB database name.\n\nThe `CouchDbEntity` is a base class which has some common properties:\n\n```typescript\nclass CouchDbEntity {\n  _id: string;\n  _rev: string;\n}\n```\n\nThen, we need to import `CouchDbModule` in our `ApplicationModule`:\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { CouchDbModule } from '@blendedbot/nest-couchdb-entity';\n\n@Module({\n  imports: [\n    CouchDbModule.forRoot({\n      url: 'http://localhost:5984',\n      username: 'couchdb',\n      userpass: 'password',\n      requestDefaults: { jar: true },\n    }),\n  ],\n})\nexport class ApplicationModule {}\n```\n\nIn our `CatsModule` we need to initiate repository for our `Cat` entity:\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { CouchDbModule } from '@blendedbot/nest-couchdb-entity';\nimport { CatsService } from './cats.service';\nimport { CatsController } from './cats.controller';\nimport { Cat } from './cat.entity';\n\n@Module({\n  imports: [CouchDbModule.forFeature([Cat])],\n  providers: [CatsService],\n  controllers: [CatsController],\n})\nexport class CatsModule {}\n```\n\nAnd here is the usage of the repository in the service:\n\n```typescript\nimport { DocumentListResponse } from 'nano';\nimport { Injectable } from '@nestjs/common';\nimport { InjectRepository, Repository } from '@blendedbot/nest-couchdb-entity';\nimport { Cat } from './cat.entity';\n\n@Injectable()\nexport class CatsService {\n  constructor(\n    @InjectRepository(Cat)\n    private readonly catsRepository: Repository<Cat>,\n  ) {}\n\n  findAll(): Promise<DocumentListResponse<Cat> {\n    return this.catsRepository.list();\n  }\n}\n```\n\n## Test\n\n```bash\n$ docker-compose up -d\n$ npm test\n```\n\n## License\n\n[MIT](LICENSE)\n\n## Credits\n\nCreated by [@nicodejong](https://github.com/nicodejong) @ [blendedbot](https://www.npmjs.com/package/@blendedbot/nest-couchdb-entity)\n\n","readmeFilename":"README.md"}