Documentation

Named exports

Named exports

Use named exports and multiple classes per file without default exports.

In order to avoid export default class {className} every single time you create a class is possible to create a named export. Is also possible to use multiple classes in you single JS file.

Named service

Imagine your NamedService.js class file like this

export class NamedService { }

Then your configuration YAML file will look like this in order to use namedService class as service.

services:
  named:
    class: ./../NamedService
JSON
{
  "services": {
    "named": {
      "class": "./../NamedService"
    }
  }
}
JS
import {ContainerBuilder} from 'node-dependency-injection'
import {NamedService} from './../NamedService'

let container = new ContainerBuilder()
container.register('named', NamedService)

Multiple class export

Imagine your MultipleExports.js class file like this

export class ClassOne { }

export class ClassTwo { }

Then your configuration YAML file will look like this in order to use ClassOne and ClassTwo as services.

services:
  one:
    class: ./../MultipleExports
    main: ClassOne
  two:
    class: ./../MultipleExports
    main: ClassTwo
JSON
{
  "services": {
    "one": {
      "class": "./../MultipleExports",
      "main": "ClassOne"
    },
    "two": {
      "class": "./../MultipleExports",
      "main": "ClassTwo"
    }
  }
}
JS
import {ContainerBuilder} from 'node-dependency-injection'
import {ClassOne, ClassTwo} from './../MultipleExports'

let container = new ContainerBuilder()
container.register('one', ClassOne)
container.register('two', ClassTwo)