@rudderjs/core 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -8
- package/boost/guidelines.md +11 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -200,9 +200,7 @@ Providers can register other providers at runtime — useful for modules, condit
|
|
|
200
200
|
|
|
201
201
|
```ts
|
|
202
202
|
import { ServiceProvider } from '@rudderjs/core'
|
|
203
|
-
import {
|
|
204
|
-
import { panels } from '@rudderjs/panels'
|
|
205
|
-
import { adminPanel } from '../Panels/Admin/AdminPanel.js'
|
|
203
|
+
import { CacheProvider } from '@rudderjs/cache'
|
|
206
204
|
|
|
207
205
|
export class AppServiceProvider extends ServiceProvider {
|
|
208
206
|
register() {
|
|
@@ -210,13 +208,10 @@ export class AppServiceProvider extends ServiceProvider {
|
|
|
210
208
|
}
|
|
211
209
|
|
|
212
210
|
async boot() {
|
|
213
|
-
//
|
|
214
|
-
await this.app.register(panels([adminPanel]))
|
|
215
|
-
|
|
216
|
-
// Conditional features
|
|
211
|
+
// Conditional features — register a sub-provider only when configured
|
|
217
212
|
const config = this.app.make<{ get(k: string): unknown }>('config')
|
|
218
213
|
if (config.get('cache.enabled')) {
|
|
219
|
-
await this.app.register(
|
|
214
|
+
await this.app.register(CacheProvider)
|
|
220
215
|
}
|
|
221
216
|
}
|
|
222
217
|
}
|
package/boost/guidelines.md
CHANGED
|
@@ -51,14 +51,21 @@ export class AppServiceProvider extends ServiceProvider {
|
|
|
51
51
|
}
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
Most packages export a `*Provider` class directly. List them by reference in `bootstrap/providers.ts` — `defaultProviders()` from `@rudderjs/core` auto-discovers all installed framework providers via the manifest at `bootstrap/cache/providers.json` (run `pnpm rudder providers:discover` after install):
|
|
55
55
|
|
|
56
56
|
```ts
|
|
57
|
-
import {
|
|
58
|
-
|
|
57
|
+
import { defaultProviders } from '@rudderjs/core'
|
|
58
|
+
import { AppServiceProvider } from '../app/Providers/AppServiceProvider.js'
|
|
59
|
+
|
|
60
|
+
export default [
|
|
61
|
+
...(await defaultProviders()),
|
|
62
|
+
AppServiceProvider,
|
|
63
|
+
]
|
|
59
64
|
```
|
|
60
65
|
|
|
61
|
-
|
|
66
|
+
To register manually, list each `*Provider` class explicitly (`CacheProvider`, `QueueProvider`, etc.) and read config from a `config: configs` object passed to `Application.configure()` — the providers resolve their config keys via the DI container.
|
|
67
|
+
|
|
68
|
+
Providers can also be registered dynamically at runtime via `app().register(ProviderClass)`. Duplicates are silently skipped (guarded by class reference and class name).
|
|
62
69
|
|
|
63
70
|
Deferred providers define `provides()` returning token strings -- they are lazily booted on first container resolve of those tokens.
|
|
64
71
|
|