summaryrefslogtreecommitdiff
path: root/src/node_modules/inversify/lib/annotation
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_modules/inversify/lib/annotation')
-rw-r--r--src/node_modules/inversify/lib/annotation/decorator_utils.js58
-rw-r--r--src/node_modules/inversify/lib/annotation/inject.js31
-rw-r--r--src/node_modules/inversify/lib/annotation/injectable.js15
-rw-r--r--src/node_modules/inversify/lib/annotation/multi_inject.js17
-rw-r--r--src/node_modules/inversify/lib/annotation/named.js17
-rw-r--r--src/node_modules/inversify/lib/annotation/optional.js17
-rw-r--r--src/node_modules/inversify/lib/annotation/post_construct.js15
-rw-r--r--src/node_modules/inversify/lib/annotation/tagged.js16
-rw-r--r--src/node_modules/inversify/lib/annotation/target_name.js12
-rw-r--r--src/node_modules/inversify/lib/annotation/unmanaged.js12
10 files changed, 210 insertions, 0 deletions
diff --git a/src/node_modules/inversify/lib/annotation/decorator_utils.js b/src/node_modules/inversify/lib/annotation/decorator_utils.js
new file mode 100644
index 0000000..629d08a
--- /dev/null
+++ b/src/node_modules/inversify/lib/annotation/decorator_utils.js
@@ -0,0 +1,58 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var ERROR_MSGS = require("../constants/error_msgs");
+var METADATA_KEY = require("../constants/metadata_keys");
+function tagParameter(annotationTarget, propertyName, parameterIndex, metadata) {
+ var metadataKey = METADATA_KEY.TAGGED;
+ _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex);
+}
+exports.tagParameter = tagParameter;
+function tagProperty(annotationTarget, propertyName, metadata) {
+ var metadataKey = METADATA_KEY.TAGGED_PROP;
+ _tagParameterOrProperty(metadataKey, annotationTarget.constructor, propertyName, metadata);
+}
+exports.tagProperty = tagProperty;
+function _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex) {
+ var paramsOrPropertiesMetadata = {};
+ var isParameterDecorator = (typeof parameterIndex === "number");
+ var key = (parameterIndex !== undefined && isParameterDecorator) ? parameterIndex.toString() : propertyName;
+ if (isParameterDecorator && propertyName !== undefined) {
+ throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);
+ }
+ if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) {
+ paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget);
+ }
+ var paramOrPropertyMetadata = paramsOrPropertiesMetadata[key];
+ if (!Array.isArray(paramOrPropertyMetadata)) {
+ paramOrPropertyMetadata = [];
+ }
+ else {
+ for (var _i = 0, paramOrPropertyMetadata_1 = paramOrPropertyMetadata; _i < paramOrPropertyMetadata_1.length; _i++) {
+ var m = paramOrPropertyMetadata_1[_i];
+ if (m.key === metadata.key) {
+ throw new Error(ERROR_MSGS.DUPLICATED_METADATA + " " + m.key.toString());
+ }
+ }
+ }
+ paramOrPropertyMetadata.push(metadata);
+ paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata;
+ Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget);
+}
+function _decorate(decorators, target) {
+ Reflect.decorate(decorators, target);
+}
+function _param(paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); };
+}
+function decorate(decorator, target, parameterIndex) {
+ if (typeof parameterIndex === "number") {
+ _decorate([_param(parameterIndex, decorator)], target);
+ }
+ else if (typeof parameterIndex === "string") {
+ Reflect.decorate([decorator], target, parameterIndex);
+ }
+ else {
+ _decorate([decorator], target);
+ }
+}
+exports.decorate = decorate;
diff --git a/src/node_modules/inversify/lib/annotation/inject.js b/src/node_modules/inversify/lib/annotation/inject.js
new file mode 100644
index 0000000..d3c6502
--- /dev/null
+++ b/src/node_modules/inversify/lib/annotation/inject.js
@@ -0,0 +1,31 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var error_msgs_1 = require("../constants/error_msgs");
+var METADATA_KEY = require("../constants/metadata_keys");
+var metadata_1 = require("../planning/metadata");
+var decorator_utils_1 = require("./decorator_utils");
+var LazyServiceIdentifer = (function () {
+ function LazyServiceIdentifer(cb) {
+ this._cb = cb;
+ }
+ LazyServiceIdentifer.prototype.unwrap = function () {
+ return this._cb();
+ };
+ return LazyServiceIdentifer;
+}());
+exports.LazyServiceIdentifer = LazyServiceIdentifer;
+function inject(serviceIdentifier) {
+ return function (target, targetKey, index) {
+ if (serviceIdentifier === undefined) {
+ throw new Error(error_msgs_1.UNDEFINED_INJECT_ANNOTATION(target.name));
+ }
+ var metadata = new metadata_1.Metadata(METADATA_KEY.INJECT_TAG, serviceIdentifier);
+ if (typeof index === "number") {
+ decorator_utils_1.tagParameter(target, targetKey, index, metadata);
+ }
+ else {
+ decorator_utils_1.tagProperty(target, targetKey, metadata);
+ }
+ };
+}
+exports.inject = inject;
diff --git a/src/node_modules/inversify/lib/annotation/injectable.js b/src/node_modules/inversify/lib/annotation/injectable.js
new file mode 100644
index 0000000..f1e4f73
--- /dev/null
+++ b/src/node_modules/inversify/lib/annotation/injectable.js
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var ERRORS_MSGS = require("../constants/error_msgs");
+var METADATA_KEY = require("../constants/metadata_keys");
+function injectable() {
+ return function (target) {
+ if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) {
+ throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR);
+ }
+ var types = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];
+ Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types, target);
+ return target;
+ };
+}
+exports.injectable = injectable;
diff --git a/src/node_modules/inversify/lib/annotation/multi_inject.js b/src/node_modules/inversify/lib/annotation/multi_inject.js
new file mode 100644
index 0000000..f7e7fd8
--- /dev/null
+++ b/src/node_modules/inversify/lib/annotation/multi_inject.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var METADATA_KEY = require("../constants/metadata_keys");
+var metadata_1 = require("../planning/metadata");
+var decorator_utils_1 = require("./decorator_utils");
+function multiInject(serviceIdentifier) {
+ return function (target, targetKey, index) {
+ var metadata = new metadata_1.Metadata(METADATA_KEY.MULTI_INJECT_TAG, serviceIdentifier);
+ if (typeof index === "number") {
+ decorator_utils_1.tagParameter(target, targetKey, index, metadata);
+ }
+ else {
+ decorator_utils_1.tagProperty(target, targetKey, metadata);
+ }
+ };
+}
+exports.multiInject = multiInject;
diff --git a/src/node_modules/inversify/lib/annotation/named.js b/src/node_modules/inversify/lib/annotation/named.js
new file mode 100644
index 0000000..0c14304
--- /dev/null
+++ b/src/node_modules/inversify/lib/annotation/named.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var METADATA_KEY = require("../constants/metadata_keys");
+var metadata_1 = require("../planning/metadata");
+var decorator_utils_1 = require("./decorator_utils");
+function named(name) {
+ return function (target, targetKey, index) {
+ var metadata = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, name);
+ if (typeof index === "number") {
+ decorator_utils_1.tagParameter(target, targetKey, index, metadata);
+ }
+ else {
+ decorator_utils_1.tagProperty(target, targetKey, metadata);
+ }
+ };
+}
+exports.named = named;
diff --git a/src/node_modules/inversify/lib/annotation/optional.js b/src/node_modules/inversify/lib/annotation/optional.js
new file mode 100644
index 0000000..afe0df8
--- /dev/null
+++ b/src/node_modules/inversify/lib/annotation/optional.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var METADATA_KEY = require("../constants/metadata_keys");
+var metadata_1 = require("../planning/metadata");
+var decorator_utils_1 = require("./decorator_utils");
+function optional() {
+ return function (target, targetKey, index) {
+ var metadata = new metadata_1.Metadata(METADATA_KEY.OPTIONAL_TAG, true);
+ if (typeof index === "number") {
+ decorator_utils_1.tagParameter(target, targetKey, index, metadata);
+ }
+ else {
+ decorator_utils_1.tagProperty(target, targetKey, metadata);
+ }
+ };
+}
+exports.optional = optional;
diff --git a/src/node_modules/inversify/lib/annotation/post_construct.js b/src/node_modules/inversify/lib/annotation/post_construct.js
new file mode 100644
index 0000000..007c011
--- /dev/null
+++ b/src/node_modules/inversify/lib/annotation/post_construct.js
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var ERRORS_MSGS = require("../constants/error_msgs");
+var METADATA_KEY = require("../constants/metadata_keys");
+var metadata_1 = require("../planning/metadata");
+function postConstruct() {
+ return function (target, propertyKey, descriptor) {
+ var metadata = new metadata_1.Metadata(METADATA_KEY.POST_CONSTRUCT, propertyKey);
+ if (Reflect.hasOwnMetadata(METADATA_KEY.POST_CONSTRUCT, target.constructor)) {
+ throw new Error(ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS);
+ }
+ Reflect.defineMetadata(METADATA_KEY.POST_CONSTRUCT, metadata, target.constructor);
+ };
+}
+exports.postConstruct = postConstruct;
diff --git a/src/node_modules/inversify/lib/annotation/tagged.js b/src/node_modules/inversify/lib/annotation/tagged.js
new file mode 100644
index 0000000..be07ff5
--- /dev/null
+++ b/src/node_modules/inversify/lib/annotation/tagged.js
@@ -0,0 +1,16 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var metadata_1 = require("../planning/metadata");
+var decorator_utils_1 = require("./decorator_utils");
+function tagged(metadataKey, metadataValue) {
+ return function (target, targetKey, index) {
+ var metadata = new metadata_1.Metadata(metadataKey, metadataValue);
+ if (typeof index === "number") {
+ decorator_utils_1.tagParameter(target, targetKey, index, metadata);
+ }
+ else {
+ decorator_utils_1.tagProperty(target, targetKey, metadata);
+ }
+ };
+}
+exports.tagged = tagged;
diff --git a/src/node_modules/inversify/lib/annotation/target_name.js b/src/node_modules/inversify/lib/annotation/target_name.js
new file mode 100644
index 0000000..9111c05
--- /dev/null
+++ b/src/node_modules/inversify/lib/annotation/target_name.js
@@ -0,0 +1,12 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var METADATA_KEY = require("../constants/metadata_keys");
+var metadata_1 = require("../planning/metadata");
+var decorator_utils_1 = require("./decorator_utils");
+function targetName(name) {
+ return function (target, targetKey, index) {
+ var metadata = new metadata_1.Metadata(METADATA_KEY.NAME_TAG, name);
+ decorator_utils_1.tagParameter(target, targetKey, index, metadata);
+ };
+}
+exports.targetName = targetName;
diff --git a/src/node_modules/inversify/lib/annotation/unmanaged.js b/src/node_modules/inversify/lib/annotation/unmanaged.js
new file mode 100644
index 0000000..31b2a40
--- /dev/null
+++ b/src/node_modules/inversify/lib/annotation/unmanaged.js
@@ -0,0 +1,12 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var METADATA_KEY = require("../constants/metadata_keys");
+var metadata_1 = require("../planning/metadata");
+var decorator_utils_1 = require("./decorator_utils");
+function unmanaged() {
+ return function (target, targetKey, index) {
+ var metadata = new metadata_1.Metadata(METADATA_KEY.UNMANAGED_TAG, true);
+ decorator_utils_1.tagParameter(target, targetKey, index, metadata);
+ };
+}
+exports.unmanaged = unmanaged;