{"dist":{"shasum":"670704e554e700327b8c368a5b4c9d60dc294fa5","tarball":"https://registry.npmjs.org/@startupjs/server-aggregate/-/server-aggregate-0.56.0-alpha.53.tgz","fileCount":6,"integrity":"sha512-pB6+WG8NsfLUR5FIXcDHVnv6Lx05gLWHllq4bkd85pWTlyHY6UOwxGwd0Bx3WsPoKoBP7tOsbQn+qRGcjVpLyw==","signatures":[{"sig":"MEUCIQDwdiIpdt3CuItHDPLzQx0AJQLab0nX6/OXfkCd8rdKnwIgZp8qxdgkP8mS0qh3nWYEjS2TVBYd4nu5UgydN6VY+FY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5013},"main":"server.js","name":"@startupjs/server-aggregate","type":"module","readme":"# @startupjs/server-aggregate\n\nRacer server aggregate plugin. It allows only server-defined aggregate queries.\n\n## Install\n\n```\nyarn add @startupjs/server-aggregate\n```\n\n## Setup\n\nIn the client code:\n\n```js\nrequire('@startupjs/server-aggregate/client')\n```\n\nOn the server:\n\n```js\nconst serverAggregate = require('@startupjs/server-aggregate')\nserverAggregate(backend, customCheck)\n```\n\nwhere:\n* `backend`: your ShareDB backend instance\n* `customCheck (optional)`: your personal check function. It should return an error message if there is an error. **IMPORTANT** The message must be of type `string`.\n\n## How to add aggregation\n\nOn the server side to add aggregation use `backend.addAggregate(collection, queryName, cb)`, where:\n\n* `collection`: collection name\n* `queryName`: query name (alias)\n* `cb(params, shareRequest)`: async function that returns a query object or throw an error\n\n```js\nbackend.addAggregate('items', 'main', async (params, shareRequest) => {\n  // ...\n  // access control or whatever\n  // ...\n\n  return [\n    {$match: {type: 'wooden'}}\n  ]\n})\n```\n\n## Usage\n\n```js\nmodel.query('items', {\n  $aggregationName: 'main',\n  $params: {\n    type: 'global'\n  }\n})\n```\n\nWhen you setup the client side as described in the `Setup` section you can use the `aggregateQuery(collection, queryName, params)` function which is syntactic sugar over the `model.query`, where:\n\n```js\nmodel.aggregateQuery('items', 'main', { type: 'global' })\n```\n\n## MIT License\n\nCopyright (c) 2018 by Artur Zayats\n","gitHead":"b262ddbd0ca367a0bd1669d3d39c2adae3739aba","scripts":{"start":"node server.js"},"_npmUser":{"name":"cray0000","email":"cray0000@gmail.com"},"_npmVersion":"lerna/3.22.1/node@v21.1.0+arm64 (darwin)","description":"Module for describing aggregations on the server","directories":{},"maintainers":[{"name":"cray0000","email":"cray0000@gmail.com"},{"name":"yska","email":"pturchik@yandex.ru"},{"name":"zag2art","email":"zag2art@gmail.com"},{"name":"fctsvirus","email":"fctsvirus0k@gmail.com"},{"name":"maestro.sc","email":"maestro.simf@gmail.com"},{"name":"byshock","email":"ivan.lepkin@yandex.ru"}],"_nodeVersion":"21.1.0","dependencies":{"racer":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/server-aggregate_0.56.0-alpha.53_1710540603419_0.03782392144202906","host":"s3://npm-registry-packages"},"_id":"@startupjs/server-aggregate@0.56.0-alpha.53","version":"0.56.0-alpha.53"}