fragment-ts 1.0.21 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/init.command.d.ts +1 -0
- package/dist/cli/commands/init.command.d.ts.map +1 -1
- package/dist/cli/commands/init.command.js +56 -30
- package/dist/cli/commands/init.command.js.map +1 -1
- package/dist/core/decorators/application.decorator.d.ts +6 -1
- package/dist/core/decorators/application.decorator.d.ts.map +1 -1
- package/dist/core/decorators/application.decorator.js +7 -2
- package/dist/core/decorators/application.decorator.js.map +1 -1
- package/dist/core/decorators/auto-configuration.decorator.d.ts.map +1 -1
- package/dist/core/decorators/auto-configuration.decorator.js +4 -5
- package/dist/core/decorators/auto-configuration.decorator.js.map +1 -1
- package/dist/core/decorators/conditional.decorators.d.ts +4 -0
- package/dist/core/decorators/conditional.decorators.d.ts.map +1 -1
- package/dist/core/decorators/conditional.decorators.js +32 -0
- package/dist/core/decorators/conditional.decorators.js.map +1 -1
- package/dist/core/decorators/controller.decorator.d.ts.map +1 -1
- package/dist/core/decorators/controller.decorator.js +1 -2
- package/dist/core/decorators/controller.decorator.js.map +1 -1
- package/dist/core/decorators/http.decorators.d.ts +1 -0
- package/dist/core/decorators/http.decorators.d.ts.map +1 -1
- package/dist/core/decorators/http.decorators.js +10 -10
- package/dist/core/decorators/http.decorators.js.map +1 -1
- package/dist/core/decorators/injectable.decorator.d.ts +3 -0
- package/dist/core/decorators/injectable.decorator.d.ts.map +1 -1
- package/dist/core/decorators/injectable.decorator.js +12 -5
- package/dist/core/decorators/injectable.decorator.js.map +1 -1
- package/dist/core/decorators/injection.decorators.d.ts +2 -37
- package/dist/core/decorators/injection.decorators.d.ts.map +1 -1
- package/dist/core/decorators/injection.decorators.js +43 -75
- package/dist/core/decorators/injection.decorators.js.map +1 -1
- package/dist/core/decorators/repository.decorator.d.ts.map +1 -1
- package/dist/core/decorators/repository.decorator.js +4 -5
- package/dist/core/decorators/repository.decorator.js.map +1 -1
- package/dist/core/decorators/service.decorator.d.ts.map +1 -1
- package/dist/core/decorators/service.decorator.js +4 -5
- package/dist/core/decorators/service.decorator.js.map +1 -1
- package/dist/core/metadata/metadata-storage.d.ts +9 -20
- package/dist/core/metadata/metadata-storage.d.ts.map +1 -1
- package/dist/core/metadata/metadata-storage.js +58 -10
- package/dist/core/metadata/metadata-storage.js.map +1 -1
- package/dist/core/types/decoration.types.d.ts +21 -0
- package/dist/core/types/decoration.types.d.ts.map +1 -0
- package/dist/core/types/decoration.types.js +3 -0
- package/dist/core/types/decoration.types.js.map +1 -0
- package/examples/blog-api/package-lock.json +190 -6
- package/examples/blog-api/package.json +6 -3
- package/examples/blog-api/src/services/app.service.ts +2 -2
- package/examples/blog-api/src/test/app.spec.ts +23 -0
- package/package.json +1 -1
- package/src/cli/commands/init.command.ts +61 -31
- package/src/core/decorators/application.decorator.ts +13 -3
- package/src/core/decorators/auto-configuration.decorator.ts +8 -10
- package/src/core/decorators/conditional.decorators.ts +37 -1
- package/src/core/decorators/controller.decorator.ts +1 -3
- package/src/core/decorators/http.decorators.ts +11 -32
- package/src/core/decorators/injectable.decorator.ts +15 -8
- package/src/core/decorators/injection.decorators.ts +50 -103
- package/src/core/decorators/repository.decorator.ts +8 -10
- package/src/core/decorators/service.decorator.ts +8 -10
- package/src/core/metadata/metadata-storage.ts +75 -43
- package/src/core/types/decoration.types.ts +38 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;WAe1B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;mBAsF/C,wBAAwB;
|
|
1
|
+
{"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;WAe1B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;mBAsF/C,wBAAwB;mBA6CxB,iBAAiB;mBA8FjB,gBAAgB;mBA+BhB,yBAAyB;mBAoBzB,sBAAsB;mBAmBtB,qBAAqB;mBA2BrB,iBAAiB;mBA+CjB,mBAAmB;CA8BzC"}
|
|
@@ -81,7 +81,7 @@ class InitCommand {
|
|
|
81
81
|
name: "features",
|
|
82
82
|
message: "Select features:",
|
|
83
83
|
choices: [
|
|
84
|
-
{ name: "Authentication", value: "auth", checked:
|
|
84
|
+
{ name: "Authentication", value: "auth", checked: false },
|
|
85
85
|
{ name: "Database (TypeORM)", value: "database", checked: true },
|
|
86
86
|
{ name: "AI Integration", value: "ai", checked: false },
|
|
87
87
|
{ name: "Testing", value: "testing", checked: true },
|
|
@@ -146,7 +146,7 @@ class InitCommand {
|
|
|
146
146
|
dirs.push("src/seeds");
|
|
147
147
|
}
|
|
148
148
|
if (config.features.includes("testing")) {
|
|
149
|
-
dirs.push("test");
|
|
149
|
+
dirs.push("src/test"); // moved test inside src
|
|
150
150
|
}
|
|
151
151
|
for (const dir of dirs) {
|
|
152
152
|
await fs.ensureDir(path.join(projectPath, dir));
|
|
@@ -160,6 +160,9 @@ class InitCommand {
|
|
|
160
160
|
if (config.features.includes("auth")) {
|
|
161
161
|
await this.generateAuthFiles(projectPath);
|
|
162
162
|
}
|
|
163
|
+
if (config.features.includes("testing")) {
|
|
164
|
+
await this.generateDefaultTest(projectPath);
|
|
165
|
+
}
|
|
163
166
|
}
|
|
164
167
|
static async createConfigFiles(projectPath, projectName, features) {
|
|
165
168
|
const packageJson = {
|
|
@@ -177,7 +180,7 @@ class InitCommand {
|
|
|
177
180
|
"migrate:revert": "fragment migrate:revert",
|
|
178
181
|
},
|
|
179
182
|
dependencies: {
|
|
180
|
-
"fragment-ts": "^1.0.
|
|
183
|
+
"fragment-ts": "^1.0.23",
|
|
181
184
|
"reflect-metadata": "^0.1.13",
|
|
182
185
|
},
|
|
183
186
|
devDependencies: {
|
|
@@ -211,7 +214,6 @@ class InitCommand {
|
|
|
211
214
|
});
|
|
212
215
|
const fragmentConfig = {};
|
|
213
216
|
if (features.includes("database")) {
|
|
214
|
-
// Default SQLite config with env interpolation
|
|
215
217
|
const isProd = process.env.NODE_ENV === "production";
|
|
216
218
|
fragmentConfig.database = {
|
|
217
219
|
type: "sqlite",
|
|
@@ -225,43 +227,39 @@ class InitCommand {
|
|
|
225
227
|
subscribers: [],
|
|
226
228
|
};
|
|
227
229
|
}
|
|
228
|
-
// Write fragment.json
|
|
229
230
|
await fs.writeJSON(path.join(projectPath, "fragment.json"), fragmentConfig, { spaces: 2 });
|
|
230
|
-
// .env file with defaults
|
|
231
231
|
const envContent = `NODE_ENV=development
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
232
|
+
PORT=3000
|
|
233
|
+
JWT_SECRET=${process.env.JWT_SECRET ?? "your-secret-key-change-this"}
|
|
234
|
+
${features.includes("database") ? "DATABASE_FILE=database.sqlite" : ""}
|
|
235
|
+
`;
|
|
236
236
|
await fs.writeFile(path.join(projectPath, ".env"), envContent);
|
|
237
|
-
// .gitignore
|
|
238
237
|
await fs.writeFile(path.join(projectPath, ".gitignore"), "node_modules/\ndist/\n.env\n*.sqlite\n");
|
|
239
238
|
}
|
|
240
|
-
// In the generateMainFile method, update to:
|
|
241
239
|
static async generateMainFile(projectPath, config) {
|
|
242
240
|
const content = `import 'reflect-metadata';
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
241
|
+
import { FragmentApplication } from 'fragment-ts';
|
|
242
|
+
import { FragmentWebApplication } from 'fragment-ts';
|
|
243
|
+
import { AppController } from './controllers/app.controller';
|
|
246
244
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
}
|
|
245
|
+
@FragmentApplication({
|
|
246
|
+
port: 3000,
|
|
247
|
+
autoScan: true
|
|
248
|
+
})
|
|
249
|
+
class Application {
|
|
250
|
+
constructor() {
|
|
251
|
+
console.log('Fragment application initialized');
|
|
255
252
|
}
|
|
253
|
+
}
|
|
256
254
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
255
|
+
async function bootstrap() {
|
|
256
|
+
console.log('Starting Fragment application...');
|
|
257
|
+
const app = new FragmentWebApplication();
|
|
258
|
+
await app.bootstrap(Application);
|
|
259
|
+
}
|
|
262
260
|
|
|
263
|
-
|
|
264
|
-
|
|
261
|
+
bootstrap().catch(console.error);
|
|
262
|
+
`;
|
|
265
263
|
await fs.writeFile(path.join(projectPath, "src", "main.ts"), content);
|
|
266
264
|
}
|
|
267
265
|
static async generateExampleController(projectPath) {
|
|
@@ -347,6 +345,34 @@ export class AuthService {
|
|
|
347
345
|
await fs.writeFile(path.join(projectPath, "src", "controllers", "auth.controller.ts"), controllerContent);
|
|
348
346
|
await fs.writeFile(path.join(projectPath, "src", "services", "auth.service.ts"), serviceContent);
|
|
349
347
|
}
|
|
348
|
+
static async generateDefaultTest(projectPath) {
|
|
349
|
+
const testContent = `import { AppService } from '../services/app.service';
|
|
350
|
+
import { DIContainer } from 'fragment-ts';
|
|
351
|
+
|
|
352
|
+
describe('AppService', () => {
|
|
353
|
+
let service: AppService;
|
|
354
|
+
let container: DIContainer;
|
|
355
|
+
|
|
356
|
+
beforeEach(() => {
|
|
357
|
+
container = DIContainer.getInstance();
|
|
358
|
+
container.reset();
|
|
359
|
+
service = container.resolve(AppService);
|
|
360
|
+
});
|
|
361
|
+
|
|
362
|
+
it('should return welcome message', () => {
|
|
363
|
+
const message = service.getMessage();
|
|
364
|
+
|
|
365
|
+
expect(message).toBe('Welcome to Fragment Framework!');
|
|
366
|
+
expect(message).toBeTruthy();
|
|
367
|
+
expect(message).toContain('Fragment');
|
|
368
|
+
// expect(message).toHaveLength(28);
|
|
369
|
+
});
|
|
370
|
+
});
|
|
371
|
+
`;
|
|
372
|
+
const testDir = path.join(projectPath, "src", "test");
|
|
373
|
+
await fs.ensureDir(testDir);
|
|
374
|
+
await fs.writeFile(path.join(testDir, "app.spec.ts"), testContent);
|
|
375
|
+
}
|
|
350
376
|
}
|
|
351
377
|
exports.InitCommand = InitCommand;
|
|
352
378
|
//# sourceMappingURL=init.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA+B;AAC/B,2CAA6B;AAC7B,wDAAgC;AAChC,8CAAsB;AACtB,kDAA0B;AAC1B,iDAAyC;AAEzC,MAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAgB;QAC9B,OAAO;aACJ,OAAO,CAAC,kBAAkB,CAAC;aAC3B,WAAW,CAAC,mCAAmC,CAAC;aAChD,MAAM,CAAC,2BAA2B,EAAE,kBAAkB,EAAE,KAAK,CAAC;aAC9D,MAAM,CACL,2BAA2B,EAC3B,uCAAuC,CACxC;aACA,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;aAC5C,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;YACnC,MAAM,WAAW,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,OAAY;QAClD,MAAM,OAAO,GAAG,IAAA,aAAG,GAAE,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE/C,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,OAAO,EAAE,CAAC;YAElB,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACpC;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,eAAe;oBACxB,OAAO,EAAE,WAAW;iBACrB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,sBAAsB;oBAC/B,OAAO,EAAE,8BAA8B;iBACxC;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,kBAAkB;oBAC3B,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,10 @@ export interface ApplicationOptions {
|
|
|
4
4
|
configPath?: string;
|
|
5
5
|
autoScan?: boolean;
|
|
6
6
|
}
|
|
7
|
-
export declare function FragmentApplication(options?:
|
|
7
|
+
export declare function FragmentApplication(options?: {
|
|
8
|
+
port?: number;
|
|
9
|
+
host?: string;
|
|
10
|
+
configPath?: string;
|
|
11
|
+
autoScan?: boolean;
|
|
12
|
+
}): ClassDecorator;
|
|
8
13
|
//# sourceMappingURL=application.decorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/application.decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"application.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/application.decorator.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACf,GACL,cAAc,CAkBhB"}
|
|
@@ -2,15 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FragmentApplication = FragmentApplication;
|
|
4
4
|
const metadata_keys_1 = require("../metadata/metadata-keys");
|
|
5
|
+
const metadata_storage_1 = require("../metadata/metadata-storage");
|
|
5
6
|
function FragmentApplication(options = {}) {
|
|
6
7
|
return (target) => {
|
|
7
8
|
Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.APPLICATION, {
|
|
8
|
-
...options,
|
|
9
9
|
port: options.port || 3000,
|
|
10
10
|
host: options.host || "0.0.0.0",
|
|
11
11
|
configPath: options.configPath || "fragment.json",
|
|
12
|
-
autoScan: options.autoScan
|
|
12
|
+
autoScan: options.autoScan ?? true,
|
|
13
13
|
}, target);
|
|
14
|
+
metadata_storage_1.MetadataStorage.getInstance().addClass({
|
|
15
|
+
target,
|
|
16
|
+
type: "injectable",
|
|
17
|
+
scope: "singleton",
|
|
18
|
+
});
|
|
14
19
|
};
|
|
15
20
|
}
|
|
16
21
|
//# sourceMappingURL=application.decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/application.decorator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"application.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/application.decorator.ts"],"names":[],"mappings":";;AAUA,kDAyBC;AAnCD,6DAA0D;AAC1D,mEAA+D;AAS/D,SAAgB,mBAAmB,CACjC,UAKI,EAAE;IAEN,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CACpB,6BAAa,CAAC,WAAW,EACzB;YACE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;YAC/B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,eAAe;YACjD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;SACnC,EACD,MAAM,CACP,CAAC;QACF,kCAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YACrC,MAAM;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,WAAW;SACnB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-configuration.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/auto-configuration.decorator.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,IAAI,cAAc,
|
|
1
|
+
{"version":3,"file":"auto-configuration.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/auto-configuration.decorator.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,IAAI,cAAc,CAUlD"}
|
|
@@ -6,13 +6,12 @@ const metadata_keys_1 = require("../metadata/metadata-keys");
|
|
|
6
6
|
const metadata_storage_1 = require("../metadata/metadata-storage");
|
|
7
7
|
function AutoConfiguration() {
|
|
8
8
|
return (target) => {
|
|
9
|
-
(0, injectable_decorator_1.Injectable)(
|
|
9
|
+
(0, injectable_decorator_1.Injectable)("singleton")(target);
|
|
10
10
|
Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.AUTO_CONFIGURATION, true, target);
|
|
11
|
-
|
|
12
|
-
storage.addClass({
|
|
11
|
+
metadata_storage_1.MetadataStorage.getInstance().addClass({
|
|
13
12
|
target,
|
|
14
|
-
type:
|
|
15
|
-
scope:
|
|
13
|
+
type: "auto-configuration",
|
|
14
|
+
scope: "singleton",
|
|
16
15
|
});
|
|
17
16
|
};
|
|
18
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-configuration.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/auto-configuration.decorator.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"auto-configuration.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/auto-configuration.decorator.ts"],"names":[],"mappings":";;AAIA,8CAUC;AAdD,iEAAoD;AACpD,6DAA0D;AAC1D,mEAA+D;AAE/D,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,IAAA,iCAAU,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,kBAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACvE,kCAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YACrC,MAAM;YACN,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,WAAW;SACnB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conditional decorators
|
|
3
|
+
* Ensures the class is registered in MetadataStorage
|
|
4
|
+
*/
|
|
1
5
|
export declare function ConditionalOnClass(classRef: any): ClassDecorator;
|
|
2
6
|
export declare function ConditionalOnMissingBean(token: any): ClassDecorator;
|
|
3
7
|
export declare function ConditionalOnProperty(key: string, expectedValue?: any): ClassDecorator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional.decorators.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/conditional.decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conditional.decorators.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/conditional.decorators.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAEH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,GAAG,GAAG,cAAc,CAchE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,cAAc,CAcnE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,cAAc,CActF"}
|
|
@@ -4,19 +4,51 @@ exports.ConditionalOnClass = ConditionalOnClass;
|
|
|
4
4
|
exports.ConditionalOnMissingBean = ConditionalOnMissingBean;
|
|
5
5
|
exports.ConditionalOnProperty = ConditionalOnProperty;
|
|
6
6
|
const metadata_keys_1 = require("../metadata/metadata-keys");
|
|
7
|
+
const metadata_storage_1 = require("../metadata/metadata-storage");
|
|
8
|
+
/**
|
|
9
|
+
* Conditional decorators
|
|
10
|
+
* Ensures the class is registered in MetadataStorage
|
|
11
|
+
*/
|
|
7
12
|
function ConditionalOnClass(classRef) {
|
|
8
13
|
return (target) => {
|
|
9
14
|
Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.CONDITIONAL_ON_CLASS, classRef, target);
|
|
15
|
+
// Register in MetadataStorage if not already
|
|
16
|
+
const storage = metadata_storage_1.MetadataStorage.getInstance();
|
|
17
|
+
if (!storage.getClass(target)) {
|
|
18
|
+
storage.addClass({
|
|
19
|
+
target,
|
|
20
|
+
type: 'injectable', // default type
|
|
21
|
+
scope: 'singleton',
|
|
22
|
+
});
|
|
23
|
+
}
|
|
10
24
|
};
|
|
11
25
|
}
|
|
12
26
|
function ConditionalOnMissingBean(token) {
|
|
13
27
|
return (target) => {
|
|
14
28
|
Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.CONDITIONAL_ON_MISSING_BEAN, token, target);
|
|
29
|
+
// Register in MetadataStorage if not already
|
|
30
|
+
const storage = metadata_storage_1.MetadataStorage.getInstance();
|
|
31
|
+
if (!storage.getClass(target)) {
|
|
32
|
+
storage.addClass({
|
|
33
|
+
target,
|
|
34
|
+
type: 'injectable',
|
|
35
|
+
scope: 'singleton',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
15
38
|
};
|
|
16
39
|
}
|
|
17
40
|
function ConditionalOnProperty(key, expectedValue) {
|
|
18
41
|
return (target) => {
|
|
19
42
|
Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.CONDITIONAL_ON_PROPERTY, { key, expectedValue }, target);
|
|
43
|
+
// Register in MetadataStorage if not already
|
|
44
|
+
const storage = metadata_storage_1.MetadataStorage.getInstance();
|
|
45
|
+
if (!storage.getClass(target)) {
|
|
46
|
+
storage.addClass({
|
|
47
|
+
target,
|
|
48
|
+
type: 'injectable',
|
|
49
|
+
scope: 'singleton',
|
|
50
|
+
});
|
|
51
|
+
}
|
|
20
52
|
};
|
|
21
53
|
}
|
|
22
54
|
//# sourceMappingURL=conditional.decorators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional.decorators.js","sourceRoot":"","sources":["../../../src/core/decorators/conditional.decorators.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"conditional.decorators.js","sourceRoot":"","sources":["../../../src/core/decorators/conditional.decorators.ts"],"names":[],"mappings":";;AAQA,gDAcC;AAED,4DAcC;AAED,sDAcC;AAtDD,6DAA0D;AAC1D,mEAA+D;AAE/D;;;GAGG;AAEH,SAAgB,kBAAkB,CAAC,QAAa;IAC9C,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,oBAAoB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE7E,6CAA6C;QAC7C,MAAM,OAAO,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,QAAQ,CAAC;gBACf,MAAM;gBACN,IAAI,EAAE,YAAY,EAAE,eAAe;gBACnC,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,wBAAwB,CAAC,KAAU;IACjD,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,2BAA2B,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEjF,6CAA6C;QAC7C,MAAM,OAAO,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,QAAQ,CAAC;gBACf,MAAM;gBACN,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,qBAAqB,CAAC,GAAW,EAAE,aAAmB;IACpE,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC;QAE9F,6CAA6C;QAC7C,MAAM,OAAO,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,QAAQ,CAAC;gBACf,MAAM;gBACN,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"controller.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,GAAG,cAAc,CAW5D"}
|
|
@@ -8,8 +8,7 @@ function Controller(path = "") {
|
|
|
8
8
|
return (target) => {
|
|
9
9
|
(0, injectable_decorator_1.Injectable)("singleton")(target);
|
|
10
10
|
Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.CONTROLLER, path, target);
|
|
11
|
-
|
|
12
|
-
storage.addClass({
|
|
11
|
+
metadata_storage_1.MetadataStorage.getInstance().addClass({
|
|
13
12
|
target,
|
|
14
13
|
type: "controller",
|
|
15
14
|
scope: "singleton",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":";;AAIA,gCAWC;AAfD,iEAAoD;AACpD,6DAA0D;AAC1D,mEAA+D;AAE/D,SAAgB,UAAU,CAAC,OAAe,EAAE;IAC1C,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,IAAA,iCAAU,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/D,kCAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;YACrC,MAAM;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,WAAW;YAClB,IAAI;SACL,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.decorators.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/http.decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.decorators.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/http.decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAsB1B,eAAO,MAAM,GAAG,UAjBA,MAAM,KAAQ,eAiBqB,CAAC;AACpD,eAAO,MAAM,IAAI,UAlBD,MAAM,KAAQ,eAkBuB,CAAC;AACtD,eAAO,MAAM,GAAG,UAnBA,MAAM,KAAQ,eAmBqB,CAAC;AACpD,eAAO,MAAM,MAAM,UApBH,MAAM,KAAQ,eAoB2B,CAAC;AAC1D,eAAO,MAAM,KAAK,UArBF,MAAM,KAAQ,eAqByB,CAAC;AAkBxD,eAAO,MAAM,IAAI,eAdK,MAAM,KAAG,kBAciB,CAAC;AACjD,eAAO,MAAM,KAAK,eAfI,MAAM,KAAG,kBAemB,CAAC;AACnD,eAAO,MAAM,KAAK,eAhBI,MAAM,KAAG,kBAgBmB,CAAC;AACnD,eAAO,MAAM,MAAM,eAjBG,MAAM,KAAG,kBAiBqB,CAAC;AACrD,eAAO,MAAM,GAAG,QAAO,kBAAmD,CAAC;AAC3E,eAAO,MAAM,GAAG,QAAO,kBAAmD,CAAC"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Res = exports.Req = exports.Header = exports.Query = exports.Param = exports.Body = exports.Patch = exports.Delete = exports.Put = exports.Post = exports.Get = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
4
5
|
const metadata_keys_1 = require("../metadata/metadata-keys");
|
|
5
6
|
const metadata_storage_1 = require("../metadata/metadata-storage");
|
|
6
7
|
function createHttpMethodDecorator(method) {
|
|
7
8
|
return (path = "") => {
|
|
8
|
-
return (target, propertyKey
|
|
9
|
+
return (target, propertyKey) => {
|
|
9
10
|
Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.HTTP_METHOD, method, target, propertyKey);
|
|
10
11
|
Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.ROUTE_PATH, path, target, propertyKey);
|
|
11
12
|
const storage = metadata_storage_1.MetadataStorage.getInstance();
|
|
12
13
|
storage.addMethod({
|
|
13
14
|
target: target.constructor,
|
|
14
|
-
propertyKey: propertyKey,
|
|
15
|
+
propertyKey: propertyKey.toString(),
|
|
15
16
|
method,
|
|
16
17
|
path,
|
|
17
|
-
paramMetadata: storage.getParams(target, propertyKey),
|
|
18
|
+
paramMetadata: storage.getParams(target, propertyKey.toString()),
|
|
18
19
|
});
|
|
19
20
|
};
|
|
20
21
|
};
|
|
@@ -24,17 +25,16 @@ exports.Post = createHttpMethodDecorator("POST");
|
|
|
24
25
|
exports.Put = createHttpMethodDecorator("PUT");
|
|
25
26
|
exports.Delete = createHttpMethodDecorator("DELETE");
|
|
26
27
|
exports.Patch = createHttpMethodDecorator("PATCH");
|
|
28
|
+
// Parameter decorators
|
|
27
29
|
function createParamDecorator(type) {
|
|
28
30
|
return (paramName) => {
|
|
29
|
-
return (target, propertyKey,
|
|
30
|
-
if (!propertyKey)
|
|
31
|
-
throw new Error(`@${type}
|
|
32
|
-
|
|
33
|
-
const storage = metadata_storage_1.MetadataStorage.getInstance();
|
|
34
|
-
storage.addParam({
|
|
31
|
+
return (target, propertyKey, index) => {
|
|
32
|
+
if (!propertyKey)
|
|
33
|
+
throw new Error(`@${type} cannot be used on constructor params`);
|
|
34
|
+
metadata_storage_1.MetadataStorage.getInstance().addParam({
|
|
35
35
|
target,
|
|
36
36
|
propertyKey: propertyKey.toString(),
|
|
37
|
-
index
|
|
37
|
+
index,
|
|
38
38
|
type: type,
|
|
39
39
|
paramName,
|
|
40
40
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.decorators.js","sourceRoot":"","sources":["../../../src/core/decorators/http.decorators.ts"],"names":[],"mappings":";;;AAAA,6DAA0D;AAC1D,mEAA+D;AAE/D,SAAS,yBAAyB,CAAC,MAAc;IAC/C,OAAO,CAAC,OAAe,EAAE,EAAmB,EAAE;QAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"http.decorators.js","sourceRoot":"","sources":["../../../src/core/decorators/http.decorators.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,6DAA0D;AAC1D,mEAA+D;AAE/D,SAAS,yBAAyB,CAAC,MAAc;IAC/C,OAAO,CAAC,OAAe,EAAE,EAAmB,EAAE;QAC5C,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,EAAE;YACnD,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAC/E,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAE5E,MAAM,OAAO,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC;YAC9C,OAAO,CAAC,SAAS,CAAC;gBAChB,MAAM,EAAE,MAAM,CAAC,WAAW;gBAC1B,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gBACnC,MAAM;gBACN,IAAI;gBACJ,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC;aACjE,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAEY,QAAA,GAAG,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACvC,QAAA,IAAI,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACzC,QAAA,GAAG,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACvC,QAAA,MAAM,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAC7C,QAAA,KAAK,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAExD,uBAAuB;AACvB,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,CAAC,SAAkB,EAAsB,EAAE;QAChD,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,CAAC,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,uCAAuC,CAAC,CAAC;YACnF,kCAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;gBACrC,MAAM;gBACN,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gBACnC,KAAK;gBACL,IAAI,EAAE,IAAW;gBACjB,SAAS;aACV,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAEY,QAAA,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACpC,QAAA,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACtC,QAAA,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACtC,QAAA,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC9C,MAAM,GAAG,GAAG,GAAuB,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;AAA9D,QAAA,GAAG,OAA2D;AACpE,MAAM,GAAG,GAAG,GAAuB,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;AAA9D,QAAA,GAAG,OAA2D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/injectable.decorator.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,KAAK,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAE1D,wBAAgB,UAAU,CAAC,KAAK,GAAE,KAAmB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"injectable.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/injectable.decorator.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,KAAK,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAE1D;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAE,KAAmB,GAAG,cAAc,CAgBrE"}
|
|
@@ -3,16 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Injectable = Injectable;
|
|
4
4
|
const metadata_keys_1 = require("../metadata/metadata-keys");
|
|
5
5
|
const metadata_storage_1 = require("../metadata/metadata-storage");
|
|
6
|
+
/**
|
|
7
|
+
* @Injectable - Marks a class as injectable with a scope
|
|
8
|
+
*/
|
|
6
9
|
function Injectable(scope = 'singleton') {
|
|
7
10
|
return (target) => {
|
|
11
|
+
// Define Reflect metadata
|
|
8
12
|
Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.INJECTABLE, true, target);
|
|
9
13
|
Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.SCOPE, scope, target);
|
|
14
|
+
// Register in MetadataStorage if not already
|
|
10
15
|
const storage = metadata_storage_1.MetadataStorage.getInstance();
|
|
11
|
-
storage.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
if (!storage.getClass(target)) {
|
|
17
|
+
storage.addClass({
|
|
18
|
+
target,
|
|
19
|
+
type: 'injectable',
|
|
20
|
+
scope
|
|
21
|
+
});
|
|
22
|
+
}
|
|
16
23
|
};
|
|
17
24
|
}
|
|
18
25
|
//# sourceMappingURL=injectable.decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/injectable.decorator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"injectable.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/injectable.decorator.ts"],"names":[],"mappings":";;AAQA,gCAgBC;AAxBD,6DAA0D;AAC1D,mEAA+D;AAI/D;;GAEG;AACH,SAAgB,UAAU,CAAC,QAAe,WAAW;IACnD,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,0BAA0B;QAC1B,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAE3D,6CAA6C;QAC7C,MAAM,OAAO,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,QAAQ,CAAC;gBACf,MAAM;gBACN,IAAI,EAAE,YAAY;gBAClB,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,48 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
* @Autowired - Automatically inject dependencies by type
|
|
3
|
-
* Usage: @Autowired() private myService: MyService;
|
|
4
|
-
*/
|
|
1
|
+
import "reflect-metadata";
|
|
5
2
|
export declare function Autowired(): PropertyDecorator;
|
|
6
|
-
/**
|
|
7
|
-
* @Inject - Inject dependency by token (string or class)
|
|
8
|
-
* Usage: @Inject('MyService') private service: MyService;
|
|
9
|
-
* or: @Inject(MyService) private service: MyService;
|
|
10
|
-
*/
|
|
11
3
|
export declare function Inject(token: string | Function): PropertyDecorator;
|
|
12
|
-
/**
|
|
13
|
-
* @InjectRepository - Inject TypeORM repository for an entity
|
|
14
|
-
* Usage: @InjectRepository(User) private userRepo: Repository<User>;
|
|
15
|
-
*/
|
|
16
4
|
export declare function InjectRepository(entity: Function): PropertyDecorator;
|
|
5
|
+
export declare function Value(expression: string): PropertyDecorator;
|
|
17
6
|
/**
|
|
18
7
|
* @Qualifier - Specify which bean to inject when multiple exist
|
|
19
8
|
* Usage: @Qualifier('primary') @Autowired() private service: MyService;
|
|
20
9
|
*/
|
|
21
10
|
export declare function Qualifier(name: string): PropertyDecorator;
|
|
22
|
-
/**
|
|
23
|
-
* @Value - Inject configuration value from environment or config
|
|
24
|
-
* Usage: @Value('${PORT}') private port: number;
|
|
25
|
-
* or: @Value('${DB_HOST:localhost}') private host: string;
|
|
26
|
-
*/
|
|
27
|
-
export declare function Value(expression: string): PropertyDecorator;
|
|
28
|
-
/**
|
|
29
|
-
* @Optional - Mark dependency as optional (won't throw if not found)
|
|
30
|
-
* Usage: @Optional() @Autowired() private service?: MyService;
|
|
31
|
-
*/
|
|
32
11
|
export declare function Optional(): PropertyDecorator;
|
|
33
|
-
/**
|
|
34
|
-
* @Lazy - Lazy load dependency (create on first access)
|
|
35
|
-
* Usage: @Lazy() @Autowired() private service: MyService;
|
|
36
|
-
*/
|
|
37
12
|
export declare function Lazy(): PropertyDecorator;
|
|
38
|
-
/**
|
|
39
|
-
* @PostConstruct - Method called after dependency injection is complete
|
|
40
|
-
* Usage: @PostConstruct() init() { ... }
|
|
41
|
-
*/
|
|
42
|
-
export declare function PostConstruct(): MethodDecorator;
|
|
43
|
-
/**
|
|
44
|
-
* @PreDestroy - Method called before bean is destroyed
|
|
45
|
-
* Usage: @PreDestroy() cleanup() { ... }
|
|
46
|
-
*/
|
|
47
|
-
export declare function PreDestroy(): MethodDecorator;
|
|
48
13
|
//# sourceMappingURL=injection.decorators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection.decorators.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/injection.decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"injection.decorators.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/injection.decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B,wBAAgB,SAAS,IAAI,iBAAiB,CAc7C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,iBAAiB,CAWlE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,iBAAiB,CAepE;AAED,wBAAgB,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAe3D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAazD;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C;AAED,wBAAgB,IAAI,IAAI,iBAAiB,CAIxC"}
|