https://github.com/reactive-stack-js/reactive-stack-js-backend
reactive-stack-js rest backend
https://github.com/reactive-stack-js/reactive-stack-js-backend
Last synced: 8 months ago
JSON representation
reactive-stack-js rest backend
- Host: GitHub
- URL: https://github.com/reactive-stack-js/reactive-stack-js-backend
- Owner: reactive-stack-js
- License: unlicense
- Created: 2021-06-06T13:21:57.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2022-05-30T16:26:47.000Z (about 4 years ago)
- Last Synced: 2025-05-19T12:18:48.137Z (about 1 year ago)
- Language: JavaScript
- Homepage: https://reactive-stack-js.github.io/reactive-stack-js-backend/
- Size: 369 KB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

## ReactiveStack backend
See reactive-stack-js for more info.
## TypeDoc Documentation
See the TypeDoc documentation.
# Documentation
### ReactiveStackClient
This is the main class.
It processes client subscription requests, creates appropriate stores and subscribes to them to observe changes.
It extends RxJS:Subject, so that any websocket instance can subscribe to it, in order to forward updates back to the client.
### IConnectionManager
Defines a Connection Manager interface to be implemented by the application using this library.
This implementation is required for the above ```ReactiveStackClient```. An instance of ```ReactiveStackClient``` is calling ```IConnectionManager``` methods accordingly.
### DataMiddlewareMap
This is a map of all defined Data Middleware methods.
A Data Middleware is tied to a store scope ```'count' | 'one' | 'many'``` and collection name and is used to modify an observed payload if necessary.
For example, if based on users access permissions a portion of the payload needs to be removed or replaced, etc.
### initiateWorkers
Method that initiates all workers. Takes folder path as attribute.
### initiateCronjobs
Method that initiates all cronjobs. Takes folder path as attribute.
## MongoDB
### MongoDBConnector
A MongoDB database connector class, used to initialize the database collection which Mongoose will then use.
### processModels
This method parses all models and adds them to the ```CollectionsModelsMap``` if they pass validation. The method takes the folder path for the models and an optional folder name(s) to exclude, for example ```mixins``` and similar.
### CollectionsModelsMap
This is a map of all Mongoose models and related MongoDB collections. It is populated automatically during the execution of ```processModels```.
### observableModel
Requires MongoDB 3.6+: This method returns an RxJS Subject that can be subscribed to and thus observe a particular MongoDB collection. This method takes a Mongoose model instance.
### observableDatabase
Requires MongoDB 4.0+: This method returns an RxJS Subject that can be subscribed to and thus observe the entire MongoDB database.
## Routes
### processFastifyBlipp
This method stores all fastify routes into the ```RoutesMap``` in order to display them on request as a form of quick routes documentation.
This method is set as ```blippLog``` options attribute during fastify registration of the ```fastify-blipp``` plugin. Eg. ```server.register(fastifyBlipp, {blippLog: processFastifyBlipp});```.
### RoutesMap
This is a map of all available routes. It is populated automatically during the execution of ```processFastifyBlipp```.
### addFastifyRoutes
This method adds all routes to fastify automatically. It requires as parameters a fastify instance and routes folder path.
### cleanRelativePath
Helper metohd used in ```addFastifyRoutes``` to generate the route path from filename and file location relative to routes root folder.
## Store
### AStore
Abstract class for ```CountStore```, ```DocumentStore``` and ```CollectionStore``` implementations.
### EStoreType
Enum for existing store types: ```COUNT | DOCUMENT | COLLECTION```.
### CountStore
Count store, observes a particular query and returns only an integer representing the count of response rows.
### DocumentStore
Document store, observes a particular query and returns all response rows.
### CollectionStore
Collection store, observes a particular query and returns all response rows.
### storeFactory
Store factory method, creates an appropriate AStore instance based on passed subscription parameters.
## Types
These types are self explanatory.
- CronJobType
- WorkerType
- StoreScopeType
- StoreSubscriptionConfigType
- StoreSubscriptionUpdateType
- ConnectionManagerRefreshType