Socket
Socket
Sign inDemoInstall

@clawject/di

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@clawject/di - npm Package Compare versions

Comparing version 1.1.1 to 1.1.2

2

index.d.ts

@@ -145,5 +145,5 @@ /**

private scopes;
private readonly scopeRegister;
private constructor();
static readonly instance: ClawjectFactoryStatic;
private readonly scopeRegister;
/**

@@ -150,0 +150,0 @@ * Creates a {@link ClawjectApplicationContext} instance.

{
"name": "@clawject/di",
"version": "1.1.1",
"version": "1.1.2",
"keywords": [

@@ -31,3 +31,3 @@ "dependency-injection",

"dependencies": {
"@clawject/core": "1.1.1"
"@clawject/core": "1.1.2"
},

@@ -34,0 +34,0 @@ "devDependencies": {

@@ -19,3 +19,3 @@ "use strict";

this.scopes = scopes;
this.scopeRegister = new InternalScopeRegister_1.InternalScopeRegister(this.scopes);
this.scopeRegister = new InternalScopeRegister_1.InternalScopeRegister(scopes);
}

@@ -22,0 +22,0 @@ async createApplicationContext(clawjectApplication, constructorParameters) {

@@ -26,3 +26,3 @@ "use strict";

};
this.name = `${parentConfiguration.index}_${id}_${beanMetadata.qualifiedName}`;
this.name = `${parentConfiguration.id}_${id}_${beanMetadata.qualifiedName}`;
}

@@ -29,0 +29,0 @@ init(objectFactory) {

@@ -19,5 +19,5 @@ "use strict";

this.applicationBeans = [];
this.configurationIndexToBeanClassPropertyToApplicationBean = new Map();
this.applicationBeanFinder = new ApplicationBeanFinder_1.ApplicationBeanFinder(this.configurationIndexToBeanClassPropertyToApplicationBean);
this.configurationIdToBeanClassPropertyToApplicationBean = new Map();
this.scopeToScopedApplicationBeans = new Map();
this.applicationBeanFinder = new ApplicationBeanFinder_1.ApplicationBeanFinder(this.configurationIdToBeanClassPropertyToApplicationBean, applicationConfigurationFactory);
}

@@ -81,4 +81,4 @@ async init(applicationMetadata) {

}
const configurationIndexToBeanClassPropertyToApplicationBean = new Map();
this.configurationIndexToBeanClassPropertyToApplicationBean.set(applicationConfiguration.index, configurationIndexToBeanClassPropertyToApplicationBean);
const beanClassPropertyToApplicationBean = new Map();
this.configurationIdToBeanClassPropertyToApplicationBean.set(applicationConfiguration.id, beanClassPropertyToApplicationBean);
const beanNameToDependenciesMetadata = new Map(Object.values(beanDependenciesMetadataByConfiguration.map(it => {

@@ -103,3 +103,3 @@ const applicationBeanDependencies = it.dependencies

const applicationBean = new ApplicationBean_1.ApplicationBean(BeanIdProvider_1.BeanIdProvider.getAndInc(), applicationConfiguration, beanClassProperty, beanMetadata, beanDependenciesMetadata, beanClassConstructor, this.scopeRegister);
configurationIndexToBeanClassPropertyToApplicationBean.set(beanClassProperty, applicationBean);
beanClassPropertyToApplicationBean.set(beanClassProperty, applicationBean);
this.applicationBeans.push(applicationBean);

@@ -106,0 +106,0 @@ if (!applicationBean.isLifecycleFunction) {

@@ -6,16 +6,18 @@ "use strict";

class ApplicationBeanFinder {
constructor(configurationIndexToBeanClassPropertyToApplicationBean) {
this.configurationIndexToBeanClassPropertyToApplicationBean = configurationIndexToBeanClassPropertyToApplicationBean;
constructor(configurationIdToBeanClassPropertyToApplicationBean, applicationConfigurationFactory) {
this.configurationIdToBeanClassPropertyToApplicationBean = configurationIdToBeanClassPropertyToApplicationBean;
this.applicationConfigurationFactory = applicationConfigurationFactory;
}
find(configurationIndex, beanClassProperty) {
const configurationIndexToBeanClassPropertyToApplicationBean = this.configurationIndexToBeanClassPropertyToApplicationBean.get(configurationIndex);
if (!configurationIndexToBeanClassPropertyToApplicationBean) {
const configuration = this.applicationConfigurationFactory.getConfigurationByIndex(configurationIndex);
const beanClassPropertyToApplicationBean = this.configurationIdToBeanClassPropertyToApplicationBean.get(configuration.id);
if (!beanClassPropertyToApplicationBean) {
throw new RuntimeErrors_1.RuntimeErrors.IllegalStateError('No instantiated configuration found by index');
}
if (!configurationIndexToBeanClassPropertyToApplicationBean.has(beanClassProperty)) {
if (!beanClassPropertyToApplicationBean.has(beanClassProperty)) {
throw new RuntimeErrors_1.RuntimeErrors.IllegalStateError('No application bean found by class property');
}
return configurationIndexToBeanClassPropertyToApplicationBean.get(beanClassProperty);
return beanClassPropertyToApplicationBean.get(beanClassProperty);
}
}
exports.ApplicationBeanFinder = ApplicationBeanFinder;

@@ -13,2 +13,8 @@ "use strict";

}
get id() {
if (this._id === null) {
throw new RuntimeErrors_1.RuntimeErrors.IllegalStateError('Id not initialized in application configuration');
}
return this._id;
}
constructor(classConstructor, applicationClassConstructorParameters) {

@@ -19,5 +25,7 @@ this.classConstructor = classConstructor;

this._index = null;
this._id = null;
}
init(index) {
init(index, id) {
this._index = index;
this._id = id;
}

@@ -24,0 +32,0 @@ get metadata() {

@@ -9,6 +9,10 @@ "use strict";

this.applicationConfigurations = [];
this.indexToConfigurationClass = new Map();
this.configurationClassToApplicationConfiguration = new Map();
this.lastConfigurationId = 0;
this.configurationClassToId = new Map();
}
async init(applicationClass, applicationClassConstructorParameters) {
const visited = new Set();
const firstApplicationConfiguration = new ApplicationConfiguration_1.ApplicationConfiguration(applicationClass, applicationClassConstructorParameters);
const firstApplicationConfiguration = this.buildApplicationConfiguration(applicationClass, applicationClassConstructorParameters);
const stack = [firstApplicationConfiguration];

@@ -55,3 +59,3 @@ while (stack.length > 0) {

if (!visited.has(it.constructor)) {
stack.push(new ApplicationConfiguration_1.ApplicationConfiguration(it.constructor, it.args));
stack.push(this.buildApplicationConfiguration(it.constructor, it.args));
}

@@ -61,11 +65,30 @@ });

this.applicationConfigurations.forEach((applicationConfiguration, index) => {
applicationConfiguration.init(index);
const configurationClass = applicationConfiguration.classConstructor;
const configurationId = this.configurationClassToId.get(configurationClass) ?? this.lastConfigurationId++;
if (!this.configurationClassToId.has(configurationClass)) {
this.configurationClassToId.set(configurationClass, configurationId);
}
applicationConfiguration.init(index, configurationId);
this.indexToConfigurationClass.set(index, configurationClass);
});
}
mapConfigurations(callback) {
return this.applicationConfigurations.map((applicationConfiguration) => {
return Array.from(this.configurationClassToApplicationConfiguration.values()).map((applicationConfiguration) => {
return callback(applicationConfiguration);
});
}
getConfigurationByIndex(index) {
if (!this.applicationConfigurations[index]) {
throw new Error(`No configuration found for index ${index}`);
}
return this.applicationConfigurations[index];
}
buildApplicationConfiguration(...args) {
const applicationConfiguration = this.configurationClassToApplicationConfiguration.get(args[0]) ?? new ApplicationConfiguration_1.ApplicationConfiguration(...args);
if (!this.configurationClassToApplicationConfiguration.has(args[0])) {
this.configurationClassToApplicationConfiguration.set(args[0], applicationConfiguration);
}
return applicationConfiguration;
}
}
exports.ApplicationConfigurationFactory = ApplicationConfigurationFactory;
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc