UNPKG

artmapper

Version:

Spring Boot clone for Node.js with TypeScript/JavaScript - JPA-like ORM, Lombok decorators, dependency injection, and MySQL support

86 lines 3.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.QUALIFIER_METADATA_KEY = exports.VALUE_METADATA_KEY = exports.AUTOWIRED_METADATA_KEY = exports.REPOSITORY_METADATA_KEY = exports.CONTROLLER_METADATA_KEY = exports.SERVICE_METADATA_KEY = exports.COMPONENT_METADATA_KEY = void 0; exports.Component = Component; exports.Service = Service; exports.Controller = Controller; exports.Repository = Repository; exports.Autowired = Autowired; exports.Value = Value; exports.Qualifier = Qualifier; require("reflect-metadata"); exports.COMPONENT_METADATA_KEY = Symbol('component'); exports.SERVICE_METADATA_KEY = Symbol('service'); exports.CONTROLLER_METADATA_KEY = Symbol('controller'); exports.REPOSITORY_METADATA_KEY = Symbol('repository'); exports.AUTOWIRED_METADATA_KEY = Symbol('autowired'); exports.VALUE_METADATA_KEY = Symbol('value'); exports.QUALIFIER_METADATA_KEY = Symbol('qualifier'); /** * Marks a class as a Spring component */ function Component(name) { return function (target) { Reflect.defineMetadata(exports.COMPONENT_METADATA_KEY, { name: name || target.name }, target); }; } /** * Marks a class as a Spring service */ function Service(name) { return function (target) { Reflect.defineMetadata(exports.SERVICE_METADATA_KEY, { name: name || target.name }, target); Reflect.defineMetadata(exports.COMPONENT_METADATA_KEY, { name: name || target.name }, target); }; } /** * Marks a class as a Spring controller */ function Controller(path) { return function (target) { Reflect.defineMetadata(exports.CONTROLLER_METADATA_KEY, { path: path || '' }, target); Reflect.defineMetadata(exports.COMPONENT_METADATA_KEY, { name: target.name }, target); }; } /** * Marks a class as a Spring repository */ function Repository(name) { return function (target) { Reflect.defineMetadata(exports.REPOSITORY_METADATA_KEY, { name: name || target.name }, target); Reflect.defineMetadata(exports.COMPONENT_METADATA_KEY, { name: name || target.name }, target); }; } /** * Marks a property for dependency injection */ function Autowired(type) { return function (target, propertyKey) { const existingAutowired = Reflect.getMetadata(exports.AUTOWIRED_METADATA_KEY, target.constructor) || {}; existingAutowired[propertyKey] = { type: type || Reflect.getMetadata('design:type', target, propertyKey), }; Reflect.defineMetadata(exports.AUTOWIRED_METADATA_KEY, existingAutowired, target.constructor); }; } /** * Injects a configuration value */ function Value(key) { return function (target, propertyKey) { const existingValues = Reflect.getMetadata(exports.VALUE_METADATA_KEY, target.constructor) || {}; existingValues[propertyKey] = key; Reflect.defineMetadata(exports.VALUE_METADATA_KEY, existingValues, target.constructor); }; } /** * Qualifies which bean to inject */ function Qualifier(name) { return function (target, propertyKey) { const existingQualifiers = Reflect.getMetadata(exports.QUALIFIER_METADATA_KEY, target.constructor) || {}; existingQualifiers[propertyKey] = name; Reflect.defineMetadata(exports.QUALIFIER_METADATA_KEY, existingQualifiers, target.constructor); }; } //# sourceMappingURL=component.js.map