@thisisagile/easy 8.5.6 → 8.5.10
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/resources/Requires.d.ts +7 -6
- package/dist/resources/Requires.js +21 -17
- package/dist/resources/Requires.js.map +1 -1
- package/dist/types/Context.d.ts +19 -8
- package/dist/types/Context.js +14 -1
- package/dist/types/Context.js.map +1 -1
- package/package.json +2 -2
- package/src/resources/Requires.ts +12 -10
- package/src/types/Context.ts +34 -9
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Scope, UseCase } from '../process';
|
|
2
|
-
export declare
|
|
3
|
-
labCoat: () => PropertyDecorator;
|
|
4
|
-
token: () => PropertyDecorator;
|
|
5
|
-
scope: (scope: Scope) => PropertyDecorator;
|
|
6
|
-
useCase: (uc: UseCase) => PropertyDecorator;
|
|
7
|
-
}
|
|
2
|
+
export declare class Requires {
|
|
3
|
+
readonly labCoat: () => PropertyDecorator;
|
|
4
|
+
readonly token: () => PropertyDecorator;
|
|
5
|
+
readonly scope: (scope: Scope) => PropertyDecorator;
|
|
6
|
+
readonly useCase: (uc: UseCase) => PropertyDecorator;
|
|
7
|
+
}
|
|
8
|
+
export declare const requires: Requires;
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.requires = void 0;
|
|
3
|
+
exports.requires = exports.Requires = void 0;
|
|
4
4
|
const types_1 = require("../types");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
5
|
+
class Requires {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.labCoat = () => (subject, property) => {
|
|
8
|
+
(0, types_1.meta)(subject).property(property).set('labCoat', true);
|
|
9
|
+
};
|
|
10
|
+
this.token = () => (subject, property) => {
|
|
11
|
+
(0, types_1.meta)(subject).property(property).set('token', true);
|
|
12
|
+
};
|
|
13
|
+
this.scope = (scope) => (subject, property) => {
|
|
14
|
+
(0, types_1.meta)(subject).property(property).set('token', true);
|
|
15
|
+
(0, types_1.meta)(subject).property(property).set('scope', scope);
|
|
16
|
+
};
|
|
17
|
+
this.useCase = (uc) => (subject, property) => {
|
|
18
|
+
(0, types_1.meta)(subject).property(property).set('token', true);
|
|
19
|
+
(0, types_1.meta)(subject).property(property).set('uc', uc);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.Requires = Requires;
|
|
24
|
+
exports.requires = new Requires();
|
|
21
25
|
//# sourceMappingURL=Requires.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Requires.js","sourceRoot":"","sources":["../../src/resources/Requires.ts"],"names":[],"mappings":";;;AAAA,oCAAgC;
|
|
1
|
+
{"version":3,"file":"Requires.js","sourceRoot":"","sources":["../../src/resources/Requires.ts"],"names":[],"mappings":";;;AAAA,oCAAgC;AAGhC,MAAa,QAAQ;IAArB;QACW,YAAO,GACd,GAAsB,EAAE,CACxB,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC;QAEK,UAAK,GACZ,GAAsB,EAAE,CACxB,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC;QAEK,UAAK,GACZ,CAAC,KAAY,EAAqB,EAAE,CACpC,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC;QAEK,YAAO,GACd,CAAC,EAAW,EAAqB,EAAE,CACnC,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC;IACN,CAAC;CAAA;AA1BD,4BA0BC;AAEY,QAAA,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC"}
|
package/dist/types/Context.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Uuid } from './Uuid';
|
|
2
2
|
import { Identity } from './Identity';
|
|
3
|
+
import { Construct } from './Constructor';
|
|
3
4
|
export declare type EnvContext = {
|
|
4
5
|
readonly domain: string;
|
|
5
6
|
readonly name: string;
|
|
@@ -39,13 +40,23 @@ export declare class BaseContext implements RequestContext {
|
|
|
39
40
|
set<T>(key: string, value: T): T;
|
|
40
41
|
readonly create: (f: () => void) => void;
|
|
41
42
|
}
|
|
42
|
-
export declare
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
export declare type Contexts<E extends EnvContext, R extends RequestContext> = {
|
|
44
|
+
env?: E;
|
|
45
|
+
request?: R;
|
|
46
|
+
other?: any;
|
|
47
|
+
};
|
|
48
|
+
export declare class Context<E extends EnvContext, R extends RequestContext> {
|
|
49
|
+
protected state: Contexts<E, R>;
|
|
50
|
+
constructor(state?: Contexts<E, R>);
|
|
51
|
+
get env(): E;
|
|
52
|
+
set env(env: E);
|
|
53
|
+
get request(): R;
|
|
54
|
+
set request(request: R);
|
|
49
55
|
get other(): any;
|
|
56
|
+
static use: <E_1 extends EnvContext, R_1 extends RequestContext>({ env, request, other, }: {
|
|
57
|
+
env?: Construct<E_1> | undefined;
|
|
58
|
+
request?: Construct<R_1> | undefined;
|
|
59
|
+
other?: any;
|
|
60
|
+
}) => Context<E_1, R_1>;
|
|
50
61
|
}
|
|
51
|
-
export declare const ctx: Context
|
|
62
|
+
export declare const ctx: Context<EnvContext, RequestContext>;
|
package/dist/types/Context.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ctx = exports.Context = exports.BaseContext = exports.DotEnvContext = void 0;
|
|
4
4
|
const Text_1 = require("./Text");
|
|
5
5
|
const Try_1 = require("./Try");
|
|
6
|
+
const Constructor_1 = require("./Constructor");
|
|
6
7
|
class DotEnvContext {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.domain = process.env.DOMAIN ?? 'easy';
|
|
@@ -56,8 +57,15 @@ class BaseContext {
|
|
|
56
57
|
}
|
|
57
58
|
exports.BaseContext = BaseContext;
|
|
58
59
|
class Context {
|
|
59
|
-
constructor(state = {
|
|
60
|
+
constructor(state = {}) {
|
|
60
61
|
this.state = state;
|
|
62
|
+
this.state = {
|
|
63
|
+
...({
|
|
64
|
+
env: new DotEnvContext(),
|
|
65
|
+
request: new BaseContext(),
|
|
66
|
+
other: {},
|
|
67
|
+
}), ...this.state,
|
|
68
|
+
};
|
|
61
69
|
}
|
|
62
70
|
get env() {
|
|
63
71
|
return this.state.env;
|
|
@@ -76,5 +84,10 @@ class Context {
|
|
|
76
84
|
}
|
|
77
85
|
}
|
|
78
86
|
exports.Context = Context;
|
|
87
|
+
Context.use = ({ env, request, other, }) => new Context({
|
|
88
|
+
env: env && (0, Constructor_1.ofConstruct)(env),
|
|
89
|
+
request: request && (0, Constructor_1.ofConstruct)(request),
|
|
90
|
+
other,
|
|
91
|
+
});
|
|
79
92
|
exports.ctx = new Context();
|
|
80
93
|
//# sourceMappingURL=Context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../src/types/Context.ts"],"names":[],"mappings":";;;AACA,iCAA8B;AAE9B,+BAA8B;
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../src/types/Context.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thisisagile/easy",
|
|
3
|
-
"version": "8.5.
|
|
3
|
+
"version": "8.5.10",
|
|
4
4
|
"description": "Straightforward library for building domain-driven microservice architectures",
|
|
5
5
|
"author": "Sander Hoogendoorn",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@thisisagile/easy-test": "8.5.
|
|
34
|
+
"@thisisagile/easy-test": "8.5.10",
|
|
35
35
|
"@types/form-urlencoded": "^4.4.0",
|
|
36
36
|
"@types/jsonwebtoken": "^8.5.6",
|
|
37
37
|
"@types/validator": "^13.7.0"
|
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
import { meta } from '../types';
|
|
2
2
|
import { Scope, UseCase } from '../process';
|
|
3
3
|
|
|
4
|
-
export
|
|
5
|
-
labCoat
|
|
4
|
+
export class Requires {
|
|
5
|
+
readonly labCoat =
|
|
6
6
|
(): PropertyDecorator =>
|
|
7
7
|
(subject: unknown, property: string | symbol): void => {
|
|
8
8
|
meta(subject).property(property).set('labCoat', true);
|
|
9
|
-
}
|
|
9
|
+
};
|
|
10
10
|
|
|
11
|
-
token
|
|
11
|
+
readonly token =
|
|
12
12
|
(): PropertyDecorator =>
|
|
13
13
|
(subject: unknown, property: string | symbol): void => {
|
|
14
14
|
meta(subject).property(property).set('token', true);
|
|
15
|
-
}
|
|
15
|
+
};
|
|
16
16
|
|
|
17
|
-
scope
|
|
17
|
+
readonly scope =
|
|
18
18
|
(scope: Scope): PropertyDecorator =>
|
|
19
19
|
(subject: unknown, property: string | symbol): void => {
|
|
20
20
|
meta(subject).property(property).set('token', true);
|
|
21
21
|
meta(subject).property(property).set('scope', scope);
|
|
22
|
-
}
|
|
22
|
+
};
|
|
23
23
|
|
|
24
|
-
useCase
|
|
24
|
+
readonly useCase =
|
|
25
25
|
(uc: UseCase): PropertyDecorator =>
|
|
26
26
|
(subject: unknown, property: string | symbol): void => {
|
|
27
27
|
meta(subject).property(property).set('token', true);
|
|
28
28
|
meta(subject).property(property).set('uc', uc);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const requires = new Requires();
|
package/src/types/Context.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Uuid } from './Uuid';
|
|
|
2
2
|
import { text } from './Text';
|
|
3
3
|
import { Identity } from './Identity';
|
|
4
4
|
import { tryTo } from './Try';
|
|
5
|
+
import { Construct, ofConstruct } from './Constructor';
|
|
5
6
|
|
|
6
7
|
export type EnvContext = {
|
|
7
8
|
readonly domain: string;
|
|
@@ -22,7 +23,7 @@ export class DotEnvContext implements EnvContext {
|
|
|
22
23
|
tryTo(() =>
|
|
23
24
|
text(key)
|
|
24
25
|
.map(k => k.replace(/([a-z])([A-Z])/g, '$1 $2'))
|
|
25
|
-
.snake.toString()
|
|
26
|
+
.snake.toString(),
|
|
26
27
|
).map(k => process.env[k] ?? alt).value;
|
|
27
28
|
}
|
|
28
29
|
|
|
@@ -87,28 +88,52 @@ export class BaseContext implements RequestContext {
|
|
|
87
88
|
public readonly create = (f: () => void): void => f();
|
|
88
89
|
}
|
|
89
90
|
|
|
90
|
-
export
|
|
91
|
-
|
|
91
|
+
export type Contexts<E extends EnvContext, R extends RequestContext> = {
|
|
92
|
+
env?: E;
|
|
93
|
+
request?: R;
|
|
94
|
+
other?: any;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export class Context<E extends EnvContext, R extends RequestContext> {
|
|
98
|
+
constructor(protected state: Contexts<E, R> = {}) {
|
|
99
|
+
this.state = {
|
|
100
|
+
...({
|
|
101
|
+
env: new DotEnvContext() as E,
|
|
102
|
+
request: new BaseContext() as RequestContext as R,
|
|
103
|
+
other: {},
|
|
104
|
+
}), ...this.state,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
92
107
|
|
|
93
|
-
get env():
|
|
94
|
-
return this.state.env;
|
|
108
|
+
get env(): E {
|
|
109
|
+
return this.state.env as E;
|
|
95
110
|
}
|
|
96
111
|
|
|
97
|
-
set env(env:
|
|
112
|
+
set env(env: E) {
|
|
98
113
|
this.state.env = env;
|
|
99
114
|
}
|
|
100
115
|
|
|
101
|
-
get request():
|
|
102
|
-
return this.state.request;
|
|
116
|
+
get request(): R {
|
|
117
|
+
return this.state.request as R;
|
|
103
118
|
}
|
|
104
119
|
|
|
105
|
-
set request(request:
|
|
120
|
+
set request(request: R) {
|
|
106
121
|
this.state.request = request;
|
|
107
122
|
}
|
|
108
123
|
|
|
109
124
|
get other(): any {
|
|
110
125
|
return this.state.other;
|
|
111
126
|
}
|
|
127
|
+
|
|
128
|
+
static use = <E extends EnvContext, R extends RequestContext>({
|
|
129
|
+
env,
|
|
130
|
+
request,
|
|
131
|
+
other,
|
|
132
|
+
}: { env?: Construct<E>, request?: Construct<R>, other?: any }): Context<E, R> => new Context<E, R>({
|
|
133
|
+
env: env && ofConstruct(env),
|
|
134
|
+
request: request && ofConstruct(request),
|
|
135
|
+
other,
|
|
136
|
+
});
|
|
112
137
|
}
|
|
113
138
|
|
|
114
139
|
export const ctx = new Context();
|