Netpress Laravel-inspired backend framework for Node.js
Frameworkv0.1.14 Starterv0.1.12 Docsv1.0.3
Overview Installation Architecture CLI
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