Sha256: f870b31bc0d951315581acb3472e3099781855503e54f844d9a69ffbd5086c46

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

import { Registry } from 'container';
import { Router } from 'ember-routing';
import ApplicationInstance from '@ember/application/instance';
import Application from '@ember/application';
import { RegistryProxyMixin, ContainerProxyMixin, Object as EmberObject } from 'ember-runtime';

class ResolverWrapper {
  constructor(resolver) {
    this.resolver = resolver;
  }

  create() {
    return this.resolver;
  }
}

export default function buildOwner(options = {}) {
  let ownerOptions = options.ownerOptions || {};
  let resolver = options.resolver;
  let bootOptions = options.bootOptions || {};

  let Owner = EmberObject.extend(RegistryProxyMixin, ContainerProxyMixin);

  let namespace = new EmberObject({
    Resolver: new ResolverWrapper(resolver),
  });

  let fallbackRegistry = Application.buildRegistry(namespace);
  fallbackRegistry.register('router:main', Router);

  let registry = new Registry({
    fallback: fallbackRegistry,
  });

  ApplicationInstance.setupRegistry(registry, bootOptions);

  let owner = Owner.create(
    {
      __registry__: registry,
      __container__: null,
    },
    ownerOptions
  );

  let container = registry.container({ owner });
  owner.__container__ = container;

  return owner;
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
discourse-ember-source-3.5.1.1 dist/es/internal-test-helpers/lib/build-owner.js
discourse-ember-source-3.5.1.0 dist/dist/es/internal-test-helpers/lib/build-owner.js