Skip to content

Commit 20d8903

Browse files
authored
refactor: simplify auto-registration (#11)
1 parent 9450419 commit 20d8903

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed

src/container.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -238,11 +238,6 @@ export function createContainer({
238238
}
239239
if (isConstructor(token)) {
240240
const Class = token;
241-
const metadata = getMetadata(Class);
242-
if (metadata.autoRegister ?? autoRegister) {
243-
container.register(Class);
244-
return container.resolve(Class);
245-
}
246241
return instantiateClass(Class);
247242
}
248243
}
@@ -259,11 +254,6 @@ export function createContainer({
259254
}
260255
if (isConstructor(token)) {
261256
const Class = token;
262-
const metadata = getMetadata(Class);
263-
if (metadata.autoRegister ?? autoRegister) {
264-
container.register(Class);
265-
return [container.resolve(Class)];
266-
}
267257
return [instantiateClass(Class)];
268258
}
269259
}
@@ -275,6 +265,10 @@ export function createContainer({
275265

276266
function instantiateClass<T extends object>(Class: Constructor<T>): T {
277267
const metadata = getMetadata(Class);
268+
if (metadata.autoRegister ?? autoRegister) {
269+
container.register(Class);
270+
return container.resolve(Class);
271+
}
278272
const provider = metadata.provider;
279273
const options = {scope: resolveScope(metadata.scope)};
280274
assert(options.scope != Scope.Container, `unregistered class ${Class.name} cannot be resolved in container scope`);

0 commit comments

Comments
 (0)