Examples
Custom Provider Example
Providers are the right place to register infrastructure or shared services.
This example registers a payment client lazily.
Provider
// app/Providers/PaymentServiceProvider.js
import { ServiceProvider } from '@admicaa/netpress';
import Stripe from 'stripe';
export default class PaymentServiceProvider extends ServiceProvider {
static deferred = true;
static provides = ['payments.stripe'];
async register() {
this.app.container.bind('payments.stripe', () => {
return new Stripe(process.env.STRIPE_SECRET_KEY);
});
}
}
Register It
Add it to bootstrap/providers.js:
import PaymentServiceProvider from '../app/Providers/PaymentServiceProvider.js';
export default [
// ...
PaymentServiceProvider,
];
Use It
const stripe = await app.make('payments.stripe');
Why This Pattern Works
- infrastructure setup stays out of controllers
- boot order stays explicit
- expensive services can stay deferred until first use