@juit/lib-aws-mock 1.0.4 → 1.0.6
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/index.cjs +22 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +22 -12
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +34 -17
package/dist/index.cjs
CHANGED
|
@@ -38,19 +38,29 @@ var AWSMock = class {
|
|
|
38
38
|
"[Unknown Command]";
|
|
39
39
|
const lastArgument = _args.pop();
|
|
40
40
|
const cb = typeof lastArgument === "function" ? lastArgument : void 0;
|
|
41
|
-
const promise = Promise
|
|
41
|
+
const promise = new Promise((resolve, reject) => setImmediate(async () => {
|
|
42
42
|
const handler = this._handlers.get(commandConstuctor);
|
|
43
|
-
if (!handler)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
if (!handler) {
|
|
44
|
+
const error = new Error(`No mock for "${clientName}.${commandName}"`);
|
|
45
|
+
return reject(error);
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const input = JSON.parse(JSON.stringify(_command.input));
|
|
49
|
+
const output = await handler(input, this._state);
|
|
50
|
+
if (!output) {
|
|
51
|
+
const error = new Error(`Mock for "${clientName}.${commandName}" returned no result`);
|
|
52
|
+
return reject(error);
|
|
53
|
+
}
|
|
54
|
+
const result = JSON.parse(JSON.stringify(output));
|
|
55
|
+
if (!result.$metadata)
|
|
56
|
+
result.$metadata = { httpStatusCode: 200 };
|
|
57
|
+
if (!result.$metadata.requestId)
|
|
58
|
+
result.$metadata.requestId = (0, import_node_crypto.randomUUID)();
|
|
59
|
+
resolve(result);
|
|
60
|
+
} catch (error) {
|
|
61
|
+
reject(error);
|
|
62
|
+
}
|
|
63
|
+
})).then((result) => {
|
|
54
64
|
this._calls.push({ command: commandName, input: _command.input, success: true });
|
|
55
65
|
return result;
|
|
56
66
|
}, (error) => {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA2B;AAmCpB,IAAM,UAAN,MAA2B;AAAA;AAAA,EAahC,YAAoB,SAAiC;AAAjC;AAElB,SAAK,QAAQ,QAAQ,UAAU;AAG/B,UAAM,aAAa,QAAQ;AAAA,IAAmC;AAG9D,YAAQ,UAAU,OAAO,CAAC,aAAyB,UAA+B;AAChF,YAAM,eAAe,OAAO,eAAe,QAAQ;AACnD,YAAM,oBAAoB,aAAa;AACvC,YAAM,cAAc,mBAAmB;AAAA,MAAmC;AAG1E,YAAM,eAAe,MAAM,IAAI;AAC/B,YAAM,KACJ,OAAO,iBAAiB,aAAa,eAAe;AAGtD,YAAM,UAAU,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA2B;AAmCpB,IAAM,UAAN,MAA2B;AAAA;AAAA,EAahC,YAAoB,SAAiC;AAAjC;AAElB,SAAK,QAAQ,QAAQ,UAAU;AAG/B,UAAM,aAAa,QAAQ;AAAA,IAAmC;AAG9D,YAAQ,UAAU,OAAO,CAAC,aAAyB,UAA+B;AAChF,YAAM,eAAe,OAAO,eAAe,QAAQ;AACnD,YAAM,oBAAoB,aAAa;AACvC,YAAM,cAAc,mBAAmB;AAAA,MAAmC;AAG1E,YAAM,eAAe,MAAM,IAAI;AAC/B,YAAM,KACJ,OAAO,iBAAiB,aAAa,eAAe;AAGtD,YAAM,UAAU,IAAI,QAAQ,CAAC,SAAS,WAAW,aAAa,YAAY;AAExE,cAAM,UAAU,KAAK,UAAU,IAAI,iBAAiB;AACpD,YAAI,CAAE,SAAS;AACb,gBAAM,QAAQ,IAAI,MAAM,gBAAgB,cAAc,cAAc;AACpE,iBAAO,OAAO,KAAK;AAAA,QACrB;AAGA,YAAI;AAEF,gBAAM,QAAQ,KAAK,MAAM,KAAK,UAAU,SAAS,KAAK,CAAC;AAGvD,gBAAM,SAAyB,MAAM,QAAQ,OAAO,KAAK,MAAM;AAG/D,cAAI,CAAE,QAAQ;AACZ,kBAAM,QAAQ,IAAI,MAAM,aAAa,cAAc,iCAAiC;AACpF,mBAAO,OAAO,KAAK;AAAA,UACrB;AAGA,gBAAM,SAAS,KAAK,MAAM,KAAK,UAAU,MAAM,CAAC;AAGhD,cAAI,CAAE,OAAO;AAAW,mBAAO,YAAY,EAAE,gBAAgB,IAAI;AACjE,cAAI,CAAE,OAAO,UAAU;AAAW,mBAAO,UAAU,gBAAY,+BAAW;AAG1E,kBAAQ,MAAM;AAAA,QAChB,SAAS,OAAP;AACA,iBAAO,KAAK;AAAA,QACd;AAAA,MACF,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW;AAEnB,aAAK,OAAO,KAAK,EAAE,SAAS,aAAa,OAAO,SAAS,OAAO,SAAS,KAAK,CAAC;AAC/E,eAAO;AAAA,MACT,GAAG,CAAC,UAAU;AAEZ,aAAK,OAAO,KAAK,EAAE,SAAS,aAAa,OAAO,SAAS,OAAO,SAAS,MAAM,CAAC;AAChF,cAAM;AAAA,MACR,CAAC;AAGD,UAAI;AAAI,gBAAQ,KAAK,CAAC,WAAW,GAAG,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;AACvE,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EA9EQ,YAAY,oBAAI,IAAuD;AAAA;AAAA,EAEvE;AAAA;AAAA,EAEA,SAAwB,CAAC;AAAA;AAAA,EAEzB,SAA4B;AAAA;AAAA,EA2EpC,SAAS,OAAgC;AACvC,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA,EAGA,WAAmC;AACjC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAuB;AACrB,UAAM,QAAQ,KAAK;AACnB,WAAO,KAAK;AACZ,SAAK,SAAS,CAAC;AACf,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,UAAgB;AACd,SAAK,QAAQ,UAAU,OAAO,KAAK;AAAA,EACrC;AAAA;AAAA,EAGA,GACI,SACA,SACI;AACN,SAAK,UAAU,IAAI,SAAS,OAAO;AACnC,WAAO;AAAA,EACT;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -14,19 +14,29 @@ var AWSMock = class {
|
|
|
14
14
|
"[Unknown Command]";
|
|
15
15
|
const lastArgument = _args.pop();
|
|
16
16
|
const cb = typeof lastArgument === "function" ? lastArgument : void 0;
|
|
17
|
-
const promise = Promise
|
|
17
|
+
const promise = new Promise((resolve, reject) => setImmediate(async () => {
|
|
18
18
|
const handler = this._handlers.get(commandConstuctor);
|
|
19
|
-
if (!handler)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
if (!handler) {
|
|
20
|
+
const error = new Error(`No mock for "${clientName}.${commandName}"`);
|
|
21
|
+
return reject(error);
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const input = JSON.parse(JSON.stringify(_command.input));
|
|
25
|
+
const output = await handler(input, this._state);
|
|
26
|
+
if (!output) {
|
|
27
|
+
const error = new Error(`Mock for "${clientName}.${commandName}" returned no result`);
|
|
28
|
+
return reject(error);
|
|
29
|
+
}
|
|
30
|
+
const result = JSON.parse(JSON.stringify(output));
|
|
31
|
+
if (!result.$metadata)
|
|
32
|
+
result.$metadata = { httpStatusCode: 200 };
|
|
33
|
+
if (!result.$metadata.requestId)
|
|
34
|
+
result.$metadata.requestId = randomUUID();
|
|
35
|
+
resolve(result);
|
|
36
|
+
} catch (error) {
|
|
37
|
+
reject(error);
|
|
38
|
+
}
|
|
39
|
+
})).then((result) => {
|
|
30
40
|
this._calls.push({ command: commandName, input: _command.input, success: true });
|
|
31
41
|
return result;
|
|
32
42
|
}, (error) => {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,kBAAkB;AAmCpB,IAAM,UAAN,MAA2B;AAAA;AAAA,EAahC,YAAoB,SAAiC;AAAjC;AAElB,SAAK,QAAQ,QAAQ,UAAU;AAG/B,UAAM,aAAa,QAAQ;AAAA,IAAmC;AAG9D,YAAQ,UAAU,OAAO,CAAC,aAAyB,UAA+B;AAChF,YAAM,eAAe,OAAO,eAAe,QAAQ;AACnD,YAAM,oBAAoB,aAAa;AACvC,YAAM,cAAc,mBAAmB;AAAA,MAAmC;AAG1E,YAAM,eAAe,MAAM,IAAI;AAC/B,YAAM,KACJ,OAAO,iBAAiB,aAAa,eAAe;AAGtD,YAAM,UAAU,
|
|
4
|
+
"mappings": ";AAAA,SAAS,kBAAkB;AAmCpB,IAAM,UAAN,MAA2B;AAAA;AAAA,EAahC,YAAoB,SAAiC;AAAjC;AAElB,SAAK,QAAQ,QAAQ,UAAU;AAG/B,UAAM,aAAa,QAAQ;AAAA,IAAmC;AAG9D,YAAQ,UAAU,OAAO,CAAC,aAAyB,UAA+B;AAChF,YAAM,eAAe,OAAO,eAAe,QAAQ;AACnD,YAAM,oBAAoB,aAAa;AACvC,YAAM,cAAc,mBAAmB;AAAA,MAAmC;AAG1E,YAAM,eAAe,MAAM,IAAI;AAC/B,YAAM,KACJ,OAAO,iBAAiB,aAAa,eAAe;AAGtD,YAAM,UAAU,IAAI,QAAQ,CAAC,SAAS,WAAW,aAAa,YAAY;AAExE,cAAM,UAAU,KAAK,UAAU,IAAI,iBAAiB;AACpD,YAAI,CAAE,SAAS;AACb,gBAAM,QAAQ,IAAI,MAAM,gBAAgB,cAAc,cAAc;AACpE,iBAAO,OAAO,KAAK;AAAA,QACrB;AAGA,YAAI;AAEF,gBAAM,QAAQ,KAAK,MAAM,KAAK,UAAU,SAAS,KAAK,CAAC;AAGvD,gBAAM,SAAyB,MAAM,QAAQ,OAAO,KAAK,MAAM;AAG/D,cAAI,CAAE,QAAQ;AACZ,kBAAM,QAAQ,IAAI,MAAM,aAAa,cAAc,iCAAiC;AACpF,mBAAO,OAAO,KAAK;AAAA,UACrB;AAGA,gBAAM,SAAS,KAAK,MAAM,KAAK,UAAU,MAAM,CAAC;AAGhD,cAAI,CAAE,OAAO;AAAW,mBAAO,YAAY,EAAE,gBAAgB,IAAI;AACjE,cAAI,CAAE,OAAO,UAAU;AAAW,mBAAO,UAAU,YAAY,WAAW;AAG1E,kBAAQ,MAAM;AAAA,QAChB,SAAS,OAAP;AACA,iBAAO,KAAK;AAAA,QACd;AAAA,MACF,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW;AAEnB,aAAK,OAAO,KAAK,EAAE,SAAS,aAAa,OAAO,SAAS,OAAO,SAAS,KAAK,CAAC;AAC/E,eAAO;AAAA,MACT,GAAG,CAAC,UAAU;AAEZ,aAAK,OAAO,KAAK,EAAE,SAAS,aAAa,OAAO,SAAS,OAAO,SAAS,MAAM,CAAC;AAChF,cAAM;AAAA,MACR,CAAC;AAGD,UAAI;AAAI,gBAAQ,KAAK,CAAC,WAAW,GAAG,MAAM,MAAM,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;AACvE,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EA9EQ,YAAY,oBAAI,IAAuD;AAAA;AAAA,EAEvE;AAAA;AAAA,EAEA,SAAwB,CAAC;AAAA;AAAA,EAEzB,SAA4B;AAAA;AAAA,EA2EpC,SAAS,OAAgC;AACvC,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA,EAGA,WAAmC;AACjC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAuB;AACrB,UAAM,QAAQ,KAAK;AACnB,WAAO,KAAK;AACZ,SAAK,SAAS,CAAC;AACf,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,UAAgB;AACd,SAAK,QAAQ,UAAU,OAAO,KAAK;AAAA,EACrC;AAAA;AAAA,EAGA,GACI,SACA,SACI;AACN,SAAK,UAAU,IAAI,SAAS,OAAO;AACnC,WAAO;AAAA,EACT;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juit/lib-aws-mock",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Easy Mocking for AWS SDK v3",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"@aws-sdk/types": "^3.310.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@aws-sdk/client-sts": "^3.
|
|
34
|
-
"@plugjs/build": "^0.
|
|
33
|
+
"@aws-sdk/client-sts": "^3.316.0",
|
|
34
|
+
"@plugjs/build": "^0.4.0"
|
|
35
35
|
},
|
|
36
36
|
"author": "Juit Developers <developers@juit.com>",
|
|
37
37
|
"license": "Apache-2.0",
|
package/src/index.ts
CHANGED
|
@@ -64,25 +64,42 @@ export class AWSMock<State = any> {
|
|
|
64
64
|
const cb: ((err: any, data?: any) => void) | undefined =
|
|
65
65
|
typeof lastArgument === 'function' ? lastArgument : undefined
|
|
66
66
|
|
|
67
|
-
// Always work with promises
|
|
68
|
-
const promise = Promise
|
|
67
|
+
// Always work with promises, decoupling from event loop
|
|
68
|
+
const promise = new Promise((resolve, reject) => setImmediate(async () => {
|
|
69
69
|
// Get the handler for the method and verify it
|
|
70
70
|
const handler = this._handlers.get(commandConstuctor)
|
|
71
|
-
if (! handler)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
//
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
71
|
+
if (! handler) {
|
|
72
|
+
const error = new Error(`No mock for "${clientName}.${commandName}"`)
|
|
73
|
+
return reject(error)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Call the mocked handler
|
|
77
|
+
try {
|
|
78
|
+
// Clone input for every call
|
|
79
|
+
const input = JSON.parse(JSON.stringify(_command.input))
|
|
80
|
+
|
|
81
|
+
// Call the handler and get the result
|
|
82
|
+
const output: MetadataBearer = await handler(input, this._state)
|
|
83
|
+
|
|
84
|
+
// If no result (null loose check) then simply return a 404
|
|
85
|
+
if (! output) {
|
|
86
|
+
const error = new Error(`Mock for "${clientName}.${commandName}" returned no result`)
|
|
87
|
+
return reject(error)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Clone the output as we did for the input
|
|
91
|
+
const result = JSON.parse(JSON.stringify(output))
|
|
92
|
+
|
|
93
|
+
// If we don't have some metadata, inject some fake stuff
|
|
94
|
+
if (! result.$metadata) result.$metadata = { httpStatusCode: 200 }
|
|
95
|
+
if (! result.$metadata.requestId) result.$metadata.requestId = randomUUID()
|
|
96
|
+
|
|
97
|
+
// All done!
|
|
98
|
+
resolve(result)
|
|
99
|
+
} catch (error) {
|
|
100
|
+
reject(error)
|
|
101
|
+
}
|
|
102
|
+
})).then((result) => {
|
|
86
103
|
// On success, record the call and return the result
|
|
87
104
|
this._calls.push({ command: commandName, input: _command.input, success: true })
|
|
88
105
|
return result
|