@scloud/lambda-api 0.2.2 → 0.2.4
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/README.md +1 -0
- package/dist/handler.js +18 -7
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/package.json +3 -7
package/README.md
CHANGED
|
@@ -6,6 +6,7 @@ This is a piece of useful boilerplate to handle the mechanics of routing, header
|
|
|
6
6
|
|
|
7
7
|
## Releae notes
|
|
8
8
|
|
|
9
|
+
* `0.2.4`: Allow Request.body to be `any`. Return simple text responses for handled errors (404, 500, 405)
|
|
9
10
|
* `0.2.1`: Request headers are now made available in lowecase as well as their original case. The response body can now be `string` as well as `object`.
|
|
10
11
|
* `0.2.2`: Add `Content-Type: text/plain` for string responses if not already set.
|
|
11
12
|
|
package/dist/handler.js
CHANGED
|
@@ -2,12 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.apiHandler = void 0;
|
|
4
4
|
const helpers_1 = require("./helpers");
|
|
5
|
+
function textResponse(statusCode, body) {
|
|
6
|
+
return {
|
|
7
|
+
statusCode,
|
|
8
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
9
|
+
body
|
|
10
|
+
};
|
|
11
|
+
}
|
|
5
12
|
/**
|
|
6
13
|
* API route handler
|
|
7
14
|
*/
|
|
8
15
|
async function apiHandler(event, context, routes = {
|
|
9
16
|
'/api/ping': { GET: async (request) => ({ statusCode: 200, body: request }) },
|
|
10
|
-
}, errorHandler = async (request) => ({ statusCode: 500, body: { error: `Internal server error: ${request.path}` } }), catchAll = async (request) => (
|
|
17
|
+
}, errorHandler = async (request) => ({ statusCode: 500, body: { error: `Internal server error: ${request.path}` } }), catchAll = async (request) => textResponse(404, `Not found: ${request.path}`)) {
|
|
11
18
|
console.log(`Executing ${context.functionName} version: ${process.env.COMMIT_HASH}`);
|
|
12
19
|
const request = (0, helpers_1.parseRequest)(event);
|
|
13
20
|
let response;
|
|
@@ -19,20 +26,24 @@ async function apiHandler(event, context, routes = {
|
|
|
19
26
|
}
|
|
20
27
|
else {
|
|
21
28
|
const handlerFunction = route[request.method];
|
|
22
|
-
if (!handlerFunction)
|
|
23
|
-
return { statusCode: 405, body: JSON.stringify('Method not allowed') };
|
|
24
29
|
// Handle the request:
|
|
25
|
-
|
|
30
|
+
if (handlerFunction)
|
|
31
|
+
response = await handlerFunction(request);
|
|
32
|
+
else
|
|
33
|
+
response = textResponse(405, 'Method not allowed');
|
|
26
34
|
}
|
|
27
35
|
}
|
|
28
36
|
catch (e) {
|
|
37
|
+
// Fallback error handling
|
|
29
38
|
console.error(`${e.message}\n${e.stack}`);
|
|
39
|
+
response = textResponse(500, `Internal server error: ${request.path}`);
|
|
30
40
|
try {
|
|
31
41
|
// Error handling
|
|
32
|
-
|
|
42
|
+
if (errorHandler)
|
|
43
|
+
response = await errorHandler(request, e);
|
|
33
44
|
}
|
|
34
45
|
catch (ee) {
|
|
35
|
-
|
|
46
|
+
console.error(`Error in error handler: ${e.message}\n${e.stack}`);
|
|
36
47
|
}
|
|
37
48
|
}
|
|
38
49
|
// API Gateway Proxy result
|
|
@@ -63,4 +74,4 @@ async function apiHandler(event, context, routes = {
|
|
|
63
74
|
return result;
|
|
64
75
|
}
|
|
65
76
|
exports.apiHandler = apiHandler;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLHVDQUFrRTtBQUVsRSxTQUFTLFlBQVksQ0FBQyxVQUFrQixFQUFFLElBQVk7SUFDcEQsT0FBTztRQUNMLFVBQVU7UUFDVixPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFO1FBQ3pDLElBQUk7S0FDTCxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLFVBQVUsQ0FDOUIsS0FBMkIsRUFDM0IsT0FBZ0IsRUFDaEIsU0FBaUI7SUFDZixXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO0NBQ3ZGLEVBRUQsZUFBa0UsS0FBSyxFQUFFLE9BQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSwwQkFBMEIsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUM5SyxXQUFvQixLQUFLLEVBQUUsT0FBZ0IsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxjQUFjLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUUvRixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsT0FBTyxDQUFDLFlBQVksYUFBYSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDckYsTUFBTSxPQUFPLEdBQUcsSUFBQSxzQkFBWSxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBDLElBQUksUUFBa0IsQ0FBQztJQUN2QixJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFVLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxrQkFBa0I7WUFDbEIsUUFBUSxHQUFHLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFxQixDQUFDLENBQUM7WUFFN0Qsc0JBQXNCO1lBQ3RCLElBQUksZUFBZTtnQkFBRSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7O2dCQUMxRCxRQUFRLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLDBCQUEwQjtRQUMxQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUksQ0FBVyxDQUFDLE9BQU8sS0FBTSxDQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoRSxRQUFRLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDO1lBQ0gsaUJBQWlCO1lBQ2pCLElBQUksWUFBWTtnQkFBRSxRQUFRLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQVUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBNEIsQ0FBVyxDQUFDLE9BQU8sS0FBTSxDQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMxRixDQUFDO0lBQ0gsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixJQUFJLElBQUksR0FBVyxFQUFFLENBQUM7SUFDdEIsSUFBSSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdEMscUJBQXFCO1FBQ3JCLG9EQUFvRDtRQUNwRCxRQUFRLENBQUMsT0FBTyxHQUFHLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6RSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztJQUN2QixDQUFDO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsZ0NBQWdDO1FBQ2hDLG1EQUFtRDtRQUNuRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUEwQjtRQUNwQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7UUFDL0IsSUFBSTtRQUNKLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztLQUMxQixDQUFDO0lBRUYsbUJBQW1CO0lBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUEscUJBQVcsRUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQixNQUFNLENBQUMsaUJBQWlCLEdBQUc7WUFDekIsTUFBTSxFQUFFLGFBQWE7U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBakVELGdDQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFQSUdhdGV3YXlQcm94eUV2ZW50LFxuICBBUElHYXRld2F5UHJveHlSZXN1bHQsXG4gIENvbnRleHQsXG59IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHtcbiAgSGFuZGxlciwgUmVxdWVzdCwgUmVzcG9uc2UsIFJvdXRlLCBSb3V0ZXMsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRDb29raWUsIG1hdGNoUm91dGUsIHBhcnNlUmVxdWVzdCB9IGZyb20gJy4vaGVscGVycyc7XG5cbmZ1bmN0aW9uIHRleHRSZXNwb25zZShzdGF0dXNDb2RlOiBudW1iZXIsIGJvZHk6IHN0cmluZyk6IFJlc3BvbnNlIHtcbiAgcmV0dXJuIHtcbiAgICBzdGF0dXNDb2RlLFxuICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluJyB9LFxuICAgIGJvZHlcbiAgfTtcbn1cblxuLyoqXG4gKiBBUEkgcm91dGUgaGFuZGxlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpSGFuZGxlcihcbiAgZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50LFxuICBjb250ZXh0OiBDb250ZXh0LFxuICByb3V0ZXM6IFJvdXRlcyA9IHtcbiAgICAnL2FwaS9waW5nJzogeyBHRVQ6IGFzeW5jIChyZXF1ZXN0OiBSZXF1ZXN0KSA9PiAoeyBzdGF0dXNDb2RlOiAyMDAsIGJvZHk6IHJlcXVlc3QgfSkgfSxcbiAgfSxcblxuICBlcnJvckhhbmRsZXI6IChyZXF1ZXN0OiBSZXF1ZXN0LCBlOiBFcnJvcikgPT4gUHJvbWlzZTxSZXNwb25zZT4gPSBhc3luYyAocmVxdWVzdDogUmVxdWVzdCkgPT4gKHsgc3RhdHVzQ29kZTogNTAwLCBib2R5OiB7IGVycm9yOiBgSW50ZXJuYWwgc2VydmVyIGVycm9yOiAke3JlcXVlc3QucGF0aH1gIH0gfSksXG4gIGNhdGNoQWxsOiBIYW5kbGVyID0gYXN5bmMgKHJlcXVlc3Q6IFJlcXVlc3QpID0+IHRleHRSZXNwb25zZSg0MDQsIGBOb3QgZm91bmQ6ICR7cmVxdWVzdC5wYXRofWApLFxuKTogUHJvbWlzZTxBUElHYXRld2F5UHJveHlSZXN1bHQ+IHtcbiAgY29uc29sZS5sb2coYEV4ZWN1dGluZyAke2NvbnRleHQuZnVuY3Rpb25OYW1lfSB2ZXJzaW9uOiAke3Byb2Nlc3MuZW52LkNPTU1JVF9IQVNIfWApO1xuICBjb25zdCByZXF1ZXN0ID0gcGFyc2VSZXF1ZXN0KGV2ZW50KTtcblxuICBsZXQgcmVzcG9uc2U6IFJlc3BvbnNlO1xuICB0cnkge1xuICAgIGNvbnN0IHJvdXRlID0gbWF0Y2hSb3V0ZShyb3V0ZXMsIHJlcXVlc3QucGF0aCk7XG4gICAgaWYgKCFyb3V0ZSkge1xuICAgICAgLy8gQ2F0Y2gtYWxsIC8gNDA0XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGNhdGNoQWxsKHJlcXVlc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBoYW5kbGVyRnVuY3Rpb24gPSByb3V0ZVtyZXF1ZXN0Lm1ldGhvZCBhcyBrZXlvZiBSb3V0ZV07XG5cbiAgICAgIC8vIEhhbmRsZSB0aGUgcmVxdWVzdDpcbiAgICAgIGlmIChoYW5kbGVyRnVuY3Rpb24pIHJlc3BvbnNlID0gYXdhaXQgaGFuZGxlckZ1bmN0aW9uKHJlcXVlc3QpO1xuICAgICAgZWxzZSByZXNwb25zZSA9IHRleHRSZXNwb25zZSg0MDUsICdNZXRob2Qgbm90IGFsbG93ZWQnKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBGYWxsYmFjayBlcnJvciBoYW5kbGluZ1xuICAgIGNvbnNvbGUuZXJyb3IoYCR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9XFxuJHsoZSBhcyBFcnJvcikuc3RhY2t9YCk7XG4gICAgcmVzcG9uc2UgPSB0ZXh0UmVzcG9uc2UoNTAwLCBgSW50ZXJuYWwgc2VydmVyIGVycm9yOiAke3JlcXVlc3QucGF0aH1gKTtcbiAgICB0cnkge1xuICAgICAgLy8gRXJyb3IgaGFuZGxpbmdcbiAgICAgIGlmIChlcnJvckhhbmRsZXIpIHJlc3BvbnNlID0gYXdhaXQgZXJyb3JIYW5kbGVyKHJlcXVlc3QsIGUgYXMgRXJyb3IpO1xuICAgIH0gY2F0Y2ggKGVlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBpbiBlcnJvciBoYW5kbGVyOiAkeyhlIGFzIEVycm9yKS5tZXNzYWdlfVxcbiR7KGUgYXMgRXJyb3IpLnN0YWNrfWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFQSSBHYXRld2F5IFByb3h5IHJlc3VsdFxuICBsZXQgYm9keTogc3RyaW5nID0gJyc7XG4gIGlmICh0eXBlb2YgcmVzcG9uc2UuYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyBVc2UgdGhlIGJvZHkgYXMtaXNcbiAgICAvLyBQb3RlbnRpYWxseSBhZGQgYSB0ZXh0L3BsYWluIGNvbnRlbnQgdHlwZSBoZWFkZXI6XG4gICAgcmVzcG9uc2UuaGVhZGVycyA9IHsgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluJywgLi4ucmVzcG9uc2UuaGVhZGVycyB9O1xuICAgIGJvZHkgPSByZXNwb25zZS5ib2R5O1xuICB9IGVsc2UgaWYgKHJlc3BvbnNlLmJvZHkpIHtcbiAgICAvLyBTdHJpbmdpZnkgdGhlIHJlc3BvbnNlIG9iamVjdFxuICAgIC8vIEFQSSBHYXRld2F5IHJldHVybnMgYXBwbGljYXRpcG5vL2pzb24gYnkgZGVmYXVsdFxuICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShyZXNwb25zZS5ib2R5KTtcbiAgfVxuICBjb25zdCByZXN1bHQ6IEFQSUdhdGV3YXlQcm94eVJlc3VsdCA9IHtcbiAgICBzdGF0dXNDb2RlOiByZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgIGJvZHksXG4gICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVycyxcbiAgfTtcblxuICAvLyBDb29raWVzIChpZiBzZXQpXG4gIGNvbnN0IGNvb2tpZUhlYWRlcnMgPSBidWlsZENvb2tpZShyZXNwb25zZS5jb29raWVzKTtcbiAgaWYgKGNvb2tpZUhlYWRlcnMpIHtcbiAgICByZXN1bHQubXVsdGlWYWx1ZUhlYWRlcnMgPSB7XG4gICAgICBDb29raWU6IGNvb2tpZUhlYWRlcnMsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
package/dist/types.d.ts
CHANGED
package/dist/types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2ltcGxpZmllZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSFRUUCBSZXF1ZXN0LlxuICogVGhlIGltcGxlbWVudGF0aW9uIGd1YXJhbnRlZXMgdGhhdCB5b3UnbGwgYWx3YXlzIGhhdmUgbm9uLW51bGwgb2JqZWN0cyBmb3IgcXVlcnksIGhlYWRlcnMsIGNvb2tpZXMsIGFuZCBib2R5LlxuICogVGhlIG1ldGhvZCB3aWxsIGJlIHRoZSBIVFRQIG1ldGhvZCBmcm9tIHRoZSBBUEkgR2F0ZXdheSBwcm94dCBldmVudC5cbiAqIFRoZSBwYXRoIHdpbGwgYmUgdGhlIHBhdGggZnJvbSB0aGUgQVBJIEdhdGV3YXkgcHJveHkgZXZlbnQsIHdoaWNoIHN0YXJ0cyB3aXRoICcvJy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0IHtcbiAgbWV0aG9kOiBzdHJpbmcsXG4gIHBhdGg6IHN0cmluZyxcbiAgcXVlcnk6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZzsgfSxcbiAgaGVhZGVyczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nOyB9LFxuICBjb29raWVzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmc7IH0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGJvZHk6IGFueSxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZSB7XG4gIHN0YXR1c0NvZGU6IG51bWJlcixcbiAgaGVhZGVycz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZzsgfSxcbiAgY29va2llcz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZzsgfSxcbiAgYm9keT86IG9iamVjdCB8IHN0cmluZyxcbn1cblxuZXhwb3J0IHR5cGUgSGFuZGxlciA9IChyZXF1ZXN0OiBSZXF1ZXN0KSA9PiBQcm9taXNlPFJlc3BvbnNlPjtcbmV4cG9ydCBpbnRlcmZhY2UgUm91dGUge1xuICBHRVQ/OiBIYW5kbGVyLFxuICBQT1NUPzogSGFuZGxlcixcbiAgUFVUPzogSGFuZGxlcixcbiAgREVMRVRFPzogSGFuZGxlcixcbiAgT1BUSU9OUz86IEhhbmRsZXIsXG59XG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlcyB7IFtwYXRoOiBzdHJpbmddOiBSb3V0ZTsgfVxuIl19
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scloud/lambda-api",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Lambda handler for API Gateway proxy requests",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist/*"
|
|
8
8
|
],
|
|
9
9
|
"scripts": {
|
|
10
|
-
"lint": "eslint --fix src
|
|
10
|
+
"lint": "eslint --fix src/**/*",
|
|
11
11
|
"test": "mocha --import=tsx -r tsconfig-paths/register 'test/**/*.spec.ts' # tsconfig-paths/register helps resolve imports in tests",
|
|
12
12
|
"compile": "tsc",
|
|
13
13
|
"package": "mkdir -p dist && cp -r js/src/* dist/"
|
|
@@ -39,16 +39,12 @@
|
|
|
39
39
|
"@types/mocha": "*",
|
|
40
40
|
"@types/node": "*",
|
|
41
41
|
"@types/nunjucks": "*",
|
|
42
|
-
"@typescript-eslint/eslint-plugin": "*",
|
|
43
|
-
"@typescript-eslint/parser": "*",
|
|
44
42
|
"axios": "*",
|
|
45
43
|
"chai": "*",
|
|
46
44
|
"eslint": "*",
|
|
47
|
-
"eslint-config-airbnb-base": "*",
|
|
48
|
-
"eslint-import-resolver-typescript": "*",
|
|
49
|
-
"eslint-plugin-import": "*",
|
|
50
45
|
"mocha": "*",
|
|
51
46
|
"ts-node": "*",
|
|
47
|
+
"tsconfig-paths": "*",
|
|
52
48
|
"tsx": "*",
|
|
53
49
|
"typescript": "*",
|
|
54
50
|
"typescript-eslint": "*"
|