Comments (1)
Been thinking about this. My original thought was that dogwater would be able to be registered multiple times. Each time would simply aggregate options (models, connections, adapters, defaults, etc.) until the server was initialized, at which point it would also initialize waterline with all the aggregated options.
This sounds great, and allows plugins to independently register dogwater as needed, without having to think about what other plugins are doing. The downside, however, is that dogwater would never get access to its parent plugin's realm. And that means dogwater has no way to track which collections belong to which plugin! Until hapijs/hapi#3066 is considered, the only way for a plugin to utilize another plugin's realm is with server decorations (like loveboat's server.routeTransforms()
).
So my thought is to,
- Make dogwater a connectionless plugin that gets registered once– this registration could provide some global connections and collections. Think of this as a top-level plugin on your server– all other plugins that want to use it must declare dogwater as a dependency.
- Provide a server decoration that can be used to register collections that are sandboxed to the current realm/plugin. E.g.
server.dogwater({ connections, models, adapters })
.
What confuses me is that I could also allow dogwater to be registered multiple times and keep the server decoration. But then I could only sandbox models registered using the decoration, and folks would surely use dogwater all sorts of different bizarro ways.
CC @mattboutet
from dogwater.
Related Issues (20)
- Drop support for waterline-fixtures
- Reconsider how to expose collections/connections HOT 2
- Add possibility to pass extended waterline models HOT 2
- Drop ability to register function-wrapped model definition
- Favor use of server.waterline over server.plugins.dogwater HOT 1
- Tear-down Waterline connections when server stops HOT 1
- 2.0.0 Release Notes HOT 1
- Associations Setup HOT 1
- Support hapi v14
- Upgrade lab to v11
- Dogwater hides configuration errors returned by Waterline.init HOT 4
- problem with Dogwater using Nes with JWT-authentication HOT 2
- How to return multiple collections on reply HOT 1
- Referencing models from other plugins HOT 3
- Accessing postgresql view? HOT 1
- Is there a functionality and/or cli for database migrations? HOT 1
- Hapi v17 Support HOT 1
- Waterline reports that 'connections' is no longer supported HOT 2
- Waterline reports that 'loadCollection' has been renamed to 'registerModel'. HOT 1
- Support waterline v0.13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dogwater.