@webiny/handler 0.0.0-unstable.5e7233243f → 0.0.0-unstable.fcdad0bc61
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/Context.js +1 -1
- package/fastify.d.ts +1 -1
- package/fastify.js +19 -15
- package/fastify.js.map +1 -1
- package/package.json +16 -16
- package/plugins/BeforeHandlerPlugin.js +1 -1
- package/plugins/EventPlugin.js +1 -1
- package/plugins/HandlerErrorPlugin.js +1 -1
- package/plugins/HandlerResultPlugin.js +1 -1
- package/plugins/RoutePlugin.js +1 -1
- package/types.d.ts +1 -2
- package/types.js.map +1 -1
package/Context.js
CHANGED
package/fastify.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ export interface CreateHandlerParams {
|
|
|
5
5
|
plugins: PluginCollection;
|
|
6
6
|
options?: ServerOptions;
|
|
7
7
|
}
|
|
8
|
-
export declare const createHandler: (params: CreateHandlerParams) => import("fastify").FastifyInstance<import("
|
|
8
|
+
export declare const createHandler: (params: CreateHandlerParams) => import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault> & PromiseLike<import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>>;
|
package/fastify.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.createHandler = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
11
|
|
|
12
12
|
var _fastify = _interopRequireDefault(require("fastify"));
|
|
13
13
|
|
|
@@ -33,11 +33,7 @@ var _HandlerResultPlugin = require("./plugins/HandlerResultPlugin");
|
|
|
33
33
|
|
|
34
34
|
var _HandlerErrorPlugin = require("./plugins/HandlerErrorPlugin");
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
|
-
|
|
40
|
-
const DEFAULT_HEADERS = _objectSpread({
|
|
36
|
+
const DEFAULT_HEADERS = (0, _objectSpread2.default)({
|
|
41
37
|
"Cache-Control": "no-store",
|
|
42
38
|
"Content-Type": "application/json; charset=utf-8",
|
|
43
39
|
"Access-Control-Allow-Origin": "*",
|
|
@@ -53,12 +49,12 @@ const getDefaultHeaders = routes => {
|
|
|
53
49
|
const all = keys.every(key => routes[key].length > 0);
|
|
54
50
|
|
|
55
51
|
if (all) {
|
|
56
|
-
return
|
|
52
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, DEFAULT_HEADERS), {}, {
|
|
57
53
|
"Access-Control-Allow-Methods": "*"
|
|
58
54
|
});
|
|
59
55
|
}
|
|
60
56
|
|
|
61
|
-
return
|
|
57
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, DEFAULT_HEADERS), {}, {
|
|
62
58
|
"Access-Control-Allow-Methods": keys.filter(key => {
|
|
63
59
|
const type = key;
|
|
64
60
|
|
|
@@ -84,7 +80,16 @@ const createHandler = params => {
|
|
|
84
80
|
DELETE: [],
|
|
85
81
|
PATCH: [],
|
|
86
82
|
PUT: [],
|
|
87
|
-
HEAD: []
|
|
83
|
+
HEAD: [],
|
|
84
|
+
COPY: [],
|
|
85
|
+
LOCK: [],
|
|
86
|
+
MKCOL: [],
|
|
87
|
+
MOVE: [],
|
|
88
|
+
PROPFIND: [],
|
|
89
|
+
PROPPATCH: [],
|
|
90
|
+
SEARCH: [],
|
|
91
|
+
TRACE: [],
|
|
92
|
+
UNLOCK: []
|
|
88
93
|
};
|
|
89
94
|
|
|
90
95
|
const throwOnDefinedRoute = (type, path, options) => {
|
|
@@ -130,7 +135,7 @@ const createHandler = params => {
|
|
|
130
135
|
*/
|
|
131
136
|
|
|
132
137
|
|
|
133
|
-
const app = (0, _fastify.default)(
|
|
138
|
+
const app = (0, _fastify.default)((0, _objectSpread2.default)({}, params.options || {}));
|
|
134
139
|
/**
|
|
135
140
|
* We need to register routes in our system so we can output headers later on and dissallow overriding routes.
|
|
136
141
|
*/
|
|
@@ -229,7 +234,7 @@ const createHandler = params => {
|
|
|
229
234
|
*/
|
|
230
235
|
|
|
231
236
|
for (const plugin of routePlugins) {
|
|
232
|
-
plugin.cb(
|
|
237
|
+
plugin.cb((0, _objectSpread2.default)((0, _objectSpread2.default)({}, app.webiny.routes), {}, {
|
|
233
238
|
context: app.webiny
|
|
234
239
|
}));
|
|
235
240
|
}
|
|
@@ -248,8 +253,7 @@ const createHandler = params => {
|
|
|
248
253
|
}
|
|
249
254
|
|
|
250
255
|
const raw = reply.code(204).hijack().raw;
|
|
251
|
-
|
|
252
|
-
const headers = _objectSpread(_objectSpread({}, defaultHeaders), OPTIONS_HEADERS);
|
|
256
|
+
const headers = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultHeaders), OPTIONS_HEADERS);
|
|
253
257
|
|
|
254
258
|
for (const key in headers) {
|
|
255
259
|
raw.setHeader(key, headers[key]);
|
|
@@ -295,7 +299,7 @@ const createHandler = params => {
|
|
|
295
299
|
const plugins = app.webiny.plugins.byType(_HandlerErrorPlugin.HandlerErrorPlugin.type); // Log error to cloud, as these can be extremely annoying to debug!
|
|
296
300
|
|
|
297
301
|
console.log("@webiny/handler");
|
|
298
|
-
console.log(JSON.stringify(
|
|
302
|
+
console.log(JSON.stringify((0, _objectSpread2.default)((0, _objectSpread2.default)({}, error || {}), {}, {
|
|
299
303
|
message: error === null || error === void 0 ? void 0 : error.message,
|
|
300
304
|
code: error === null || error === void 0 ? void 0 : error.code
|
|
301
305
|
})));
|
package/fastify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_HEADERS","getWebinyVersionHeaders","getDefaultHeaders","routes","keys","Object","all","every","key","length","filter","type","Array","isArray","sort","join","OPTIONS_HEADERS","createHandler","params","definedRoutes","POST","GET","OPTIONS","DELETE","PATCH","PUT","HEAD","throwOnDefinedRoute","path","options","some","includes","WebinyError","override","addDefinedRoute","inputType","toUpperCase","push","app","fastify","addHook","route","method","m","register","fastifyCookies","parseOptions","defined","onPost","handler","post","onGet","get","onOptions","onDelete","delete","onPatch","patch","onPut","put","onAll","onHead","head","context","Context","plugins","createHandlerClient","WEBINY_VERSION","process","env","server","decorate","routePlugins","webiny","byType","RoutePlugin","plugin","cb","request","reply","defaultHeaders","headers","raw","code","hijack","setHeader","end","ContextPlugin","apply","BeforeHandlerPlugin","preSerialization","_","__","payload","HandlerResultPlugin","handle","error","HandlerErrorPlugin","console","log","JSON","stringify","message","middleware","map","pl","next","status"],"sources":["fastify.ts"],"sourcesContent":["import { PluginCollection } from \"@webiny/plugins/types\";\nimport fastify, {\n FastifyServerOptions as ServerOptions,\n preSerializationAsyncHookHandler\n} from \"fastify\";\nimport { getWebinyVersionHeaders } from \"@webiny/utils\";\nimport { ContextRoutes, DefinedContextRoutes, RouteMethodOptions, RouteTypes } from \"~/types\";\nimport { Context } from \"~/Context\";\nimport WebinyError from \"@webiny/error\";\nimport { RoutePlugin } from \"./plugins/RoutePlugin\";\nimport { createHandlerClient } from \"@webiny/handler-client\";\nimport fastifyCookies from \"@fastify/cookie\";\nimport { middleware } from \"~/middleware\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { BeforeHandlerPlugin } from \"./plugins/BeforeHandlerPlugin\";\nimport { HandlerResultPlugin } from \"./plugins/HandlerResultPlugin\";\nimport { HandlerErrorPlugin } from \"./plugins/HandlerErrorPlugin\";\n\nconst DEFAULT_HEADERS: Record<string, string> = {\n \"Cache-Control\": \"no-store\",\n \"Content-Type\": \"application/json; charset=utf-8\",\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Headers\": \"*\",\n \"Access-Control-Allow-Methods\": \"OPTIONS,POST,GET,DELETE,PUT,PATCH\",\n ...getWebinyVersionHeaders()\n};\n\nconst getDefaultHeaders = (routes: DefinedContextRoutes): Record<string, string> => {\n /**\n * If we are accepting all headers, just output that one.\n */\n const keys = Object.keys(routes);\n const all = keys.every(key => routes[key as RouteTypes].length > 0);\n if (all) {\n return {\n ...DEFAULT_HEADERS,\n \"Access-Control-Allow-Methods\": \"*\"\n };\n }\n return {\n ...DEFAULT_HEADERS,\n \"Access-Control-Allow-Methods\": keys\n .filter(key => {\n const type = key as unknown as RouteTypes;\n if (!routes[type] || Array.isArray(routes[type]) === false) {\n return false;\n }\n return routes[type].length > 0;\n })\n .sort()\n .join(\",\")\n };\n};\n\nconst OPTIONS_HEADERS: Record<string, string> = {\n \"Access-Control-Max-Age\": \"86400\",\n \"Cache-Control\": \"public, max-age=86400\"\n};\n\nexport interface CreateHandlerParams {\n plugins: PluginCollection;\n options?: ServerOptions;\n}\n\nexport const createHandler = (params: CreateHandlerParams) => {\n const definedRoutes: ContextRoutes[\"defined\"] = {\n POST: [],\n GET: [],\n OPTIONS: [],\n DELETE: [],\n PATCH: [],\n PUT: [],\n HEAD: []\n };\n\n const throwOnDefinedRoute = (\n type: RouteTypes | \"ALL\",\n path: string,\n options?: RouteMethodOptions\n ): void => {\n if (type === \"ALL\") {\n const all = Object.keys(definedRoutes).some(key => {\n const routes = definedRoutes[key as RouteTypes];\n return routes.includes(path);\n });\n if (!all) {\n return;\n }\n throw new WebinyError(\n `You cannot override a route with onAll() method, please remove unnecessary route from the system.`,\n \"OVERRIDE_ROUTE_ERROR\",\n {\n type,\n path\n }\n );\n } else if (definedRoutes[type].includes(path) === false) {\n return;\n } else if (options?.override === true) {\n return;\n }\n throw new WebinyError(\n `When you are trying to override existing route, you must send \"override\" parameter when adding that route.`,\n \"OVERRIDE_ROUTE_ERROR\",\n {\n type,\n path\n }\n );\n };\n\n const addDefinedRoute = (inputType: RouteTypes, path: string): void => {\n const type = (inputType as string).toUpperCase() as RouteTypes;\n if (!definedRoutes[type]) {\n return;\n } else if (definedRoutes[type].includes(path)) {\n return;\n }\n definedRoutes[type].push(path);\n };\n /**\n * We must attach the server to our internal context if we want to have it accessible.\n */\n const app = fastify({\n ...(params.options || {})\n });\n /**\n * We need to register routes in our system so we can output headers later on and dissallow overriding routes.\n */\n app.addHook(\"onRoute\", route => {\n const method = route.method;\n if (Array.isArray(method)) {\n for (const m of method) {\n addDefinedRoute(m, route.path);\n }\n return;\n }\n addDefinedRoute(method, route.path);\n });\n /**\n *\n */\n app.register(fastifyCookies, {\n parseOptions: {} // options for parsing cookies\n });\n /**\n * Route helpers - mostly for users.\n */\n const routes: ContextRoutes = {\n defined: definedRoutes,\n onPost: (path, handler, options) => {\n throwOnDefinedRoute(\"POST\", path, options);\n app.post(path, handler);\n },\n onGet: (path, handler, options) => {\n throwOnDefinedRoute(\"GET\", path, options);\n app.get(path, handler);\n },\n onOptions: (path, handler, options) => {\n throwOnDefinedRoute(\"OPTIONS\", path, options);\n app.options(path, handler);\n },\n onDelete: (path, handler, options) => {\n throwOnDefinedRoute(\"DELETE\", path, options);\n app.delete(path, handler);\n },\n onPatch: (path, handler, options) => {\n throwOnDefinedRoute(\"PATCH\", path, options);\n app.patch(path, handler);\n },\n onPut: (path, handler, options) => {\n throwOnDefinedRoute(\"PUT\", path, options);\n app.put(path, handler);\n },\n onAll: (path, handler, options) => {\n throwOnDefinedRoute(\"ALL\", path, options);\n app.all(path, handler);\n },\n onHead: (path, handler, options) => {\n throwOnDefinedRoute(\"HEAD\", path, options);\n app.head(path, handler);\n }\n };\n const context = new Context({\n plugins: [\n /**\n * We must have handlerClient by default.\n * And it must be one of the first context plugins applied.\n */\n createHandlerClient(),\n ...(params.plugins || [])\n ],\n /**\n * Inserted via webpack on build time.\n */\n WEBINY_VERSION: process.env.WEBINY_VERSION as string,\n server: app,\n routes\n });\n /**\n * We are attaching our custom context to webiny variable on the fastify app so it is accessible everywhere\n */\n app.decorate(\"webiny\", context);\n\n /**\n * We have few types of triggers:\n * * Events - EventPlugin\n * * Routes - RoutePlugin\n *\n * Routes are registered in fastify but events must be handled in package which implements cloud specific methods.\n */\n const routePlugins = app.webiny.plugins.byType<RoutePlugin>(RoutePlugin.type);\n\n /**\n * Add routes to the system.\n */\n for (const plugin of routePlugins) {\n plugin.cb({\n ...app.webiny.routes,\n context: app.webiny\n });\n }\n\n /**\n * On every request we add default headers, which can be changed later.\n * Also, if it is an options request, we skip everything after this hook and output options headers.\n */\n app.addHook(\"onRequest\", async (request, reply) => {\n const defaultHeaders = getDefaultHeaders(definedRoutes);\n reply.headers(defaultHeaders);\n if (request.method !== \"OPTIONS\") {\n return;\n }\n const raw = reply.code(204).hijack().raw;\n const headers = { ...defaultHeaders, ...OPTIONS_HEADERS };\n for (const key in headers) {\n raw.setHeader(key, headers[key]);\n }\n\n raw.end(\"\");\n });\n\n app.addHook(\"preParsing\", async request => {\n app.webiny.request = request;\n const plugins = app.webiny.plugins.byType<ContextPlugin>(ContextPlugin.type);\n for (const plugin of plugins) {\n await plugin.apply(app.webiny);\n }\n });\n /**\n *\n */\n app.addHook(\"preHandler\", async () => {\n const plugins = app.webiny.plugins.byType<BeforeHandlerPlugin>(BeforeHandlerPlugin.type);\n for (const plugin of plugins) {\n await plugin.apply(app.webiny);\n }\n });\n\n /**\n *\n */\n const preSerialization: preSerializationAsyncHookHandler<any> = async (_, __, payload) => {\n const plugins = app.webiny.plugins.byType<HandlerResultPlugin>(HandlerResultPlugin.type);\n for (const plugin of plugins) {\n await plugin.handle(app.webiny, payload);\n }\n return payload;\n };\n\n app.addHook(\"preSerialization\", preSerialization);\n\n app.addHook(\"onError\", async (_, reply, error) => {\n const plugins = app.webiny.plugins.byType<HandlerErrorPlugin>(HandlerErrorPlugin.type);\n // Log error to cloud, as these can be extremely annoying to debug!\n console.log(\"@webiny/handler\");\n console.log(\n JSON.stringify({\n ...(error || {}),\n message: error?.message,\n code: error?.code\n })\n );\n const handler = middleware(\n plugins.map(pl => {\n return (context: Context, error: Error, next: Function) => {\n return pl.handle(context, error, next);\n };\n })\n );\n await handler(app.webiny, error);\n\n return reply\n .headers({\n \"Cache-Control\": \"no-store\"\n })\n .status(500);\n });\n\n return app;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["DEFAULT_HEADERS","getWebinyVersionHeaders","getDefaultHeaders","routes","keys","Object","all","every","key","length","filter","type","Array","isArray","sort","join","OPTIONS_HEADERS","createHandler","params","definedRoutes","POST","GET","OPTIONS","DELETE","PATCH","PUT","HEAD","COPY","LOCK","MKCOL","MOVE","PROPFIND","PROPPATCH","SEARCH","TRACE","UNLOCK","throwOnDefinedRoute","path","options","some","includes","WebinyError","override","addDefinedRoute","inputType","toUpperCase","push","app","fastify","addHook","route","method","m","register","fastifyCookies","parseOptions","defined","onPost","handler","post","onGet","get","onOptions","onDelete","delete","onPatch","patch","onPut","put","onAll","onHead","head","context","Context","plugins","createHandlerClient","WEBINY_VERSION","process","env","server","decorate","routePlugins","webiny","byType","RoutePlugin","plugin","cb","request","reply","defaultHeaders","headers","raw","code","hijack","setHeader","end","ContextPlugin","apply","BeforeHandlerPlugin","preSerialization","_","__","payload","HandlerResultPlugin","handle","error","HandlerErrorPlugin","console","log","JSON","stringify","message","middleware","map","pl","next","status"],"sources":["fastify.ts"],"sourcesContent":["import { PluginCollection } from \"@webiny/plugins/types\";\nimport fastify, {\n FastifyServerOptions as ServerOptions,\n preSerializationAsyncHookHandler\n} from \"fastify\";\nimport { getWebinyVersionHeaders } from \"@webiny/utils\";\nimport { ContextRoutes, DefinedContextRoutes, RouteMethodOptions, HTTPMethods } from \"~/types\";\nimport { Context } from \"~/Context\";\nimport WebinyError from \"@webiny/error\";\nimport { RoutePlugin } from \"./plugins/RoutePlugin\";\nimport { createHandlerClient } from \"@webiny/handler-client\";\nimport fastifyCookies from \"@fastify/cookie\";\nimport { middleware } from \"~/middleware\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { BeforeHandlerPlugin } from \"./plugins/BeforeHandlerPlugin\";\nimport { HandlerResultPlugin } from \"./plugins/HandlerResultPlugin\";\nimport { HandlerErrorPlugin } from \"./plugins/HandlerErrorPlugin\";\n\nconst DEFAULT_HEADERS: Record<string, string> = {\n \"Cache-Control\": \"no-store\",\n \"Content-Type\": \"application/json; charset=utf-8\",\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Headers\": \"*\",\n \"Access-Control-Allow-Methods\": \"OPTIONS,POST,GET,DELETE,PUT,PATCH\",\n ...getWebinyVersionHeaders()\n};\n\nconst getDefaultHeaders = (routes: DefinedContextRoutes): Record<string, string> => {\n /**\n * If we are accepting all headers, just output that one.\n */\n const keys = Object.keys(routes);\n const all = keys.every(key => routes[key as HTTPMethods].length > 0);\n if (all) {\n return {\n ...DEFAULT_HEADERS,\n \"Access-Control-Allow-Methods\": \"*\"\n };\n }\n return {\n ...DEFAULT_HEADERS,\n \"Access-Control-Allow-Methods\": keys\n .filter(key => {\n const type = key as unknown as HTTPMethods;\n if (!routes[type] || Array.isArray(routes[type]) === false) {\n return false;\n }\n return routes[type].length > 0;\n })\n .sort()\n .join(\",\")\n };\n};\n\nconst OPTIONS_HEADERS: Record<string, string> = {\n \"Access-Control-Max-Age\": \"86400\",\n \"Cache-Control\": \"public, max-age=86400\"\n};\n\nexport interface CreateHandlerParams {\n plugins: PluginCollection;\n options?: ServerOptions;\n}\n\nexport const createHandler = (params: CreateHandlerParams) => {\n const definedRoutes: DefinedContextRoutes = {\n POST: [],\n GET: [],\n OPTIONS: [],\n DELETE: [],\n PATCH: [],\n PUT: [],\n HEAD: [],\n COPY: [],\n LOCK: [],\n MKCOL: [],\n MOVE: [],\n PROPFIND: [],\n PROPPATCH: [],\n SEARCH: [],\n TRACE: [],\n UNLOCK: []\n };\n\n const throwOnDefinedRoute = (\n type: HTTPMethods | \"ALL\",\n path: string,\n options?: RouteMethodOptions\n ): void => {\n if (type === \"ALL\") {\n const all = Object.keys(definedRoutes).some(key => {\n const routes = definedRoutes[key as HTTPMethods];\n return routes.includes(path);\n });\n if (!all) {\n return;\n }\n throw new WebinyError(\n `You cannot override a route with onAll() method, please remove unnecessary route from the system.`,\n \"OVERRIDE_ROUTE_ERROR\",\n {\n type,\n path\n }\n );\n } else if (definedRoutes[type].includes(path) === false) {\n return;\n } else if (options?.override === true) {\n return;\n }\n throw new WebinyError(\n `When you are trying to override existing route, you must send \"override\" parameter when adding that route.`,\n \"OVERRIDE_ROUTE_ERROR\",\n {\n type,\n path\n }\n );\n };\n\n const addDefinedRoute = (inputType: HTTPMethods, path: string): void => {\n const type = (inputType as string).toUpperCase() as HTTPMethods;\n if (!definedRoutes[type]) {\n return;\n } else if (definedRoutes[type].includes(path)) {\n return;\n }\n definedRoutes[type].push(path);\n };\n /**\n * We must attach the server to our internal context if we want to have it accessible.\n */\n const app = fastify({\n ...(params.options || {})\n });\n /**\n * We need to register routes in our system so we can output headers later on and dissallow overriding routes.\n */\n app.addHook(\"onRoute\", route => {\n const method = route.method;\n if (Array.isArray(method)) {\n for (const m of method) {\n addDefinedRoute(m, route.path);\n }\n return;\n }\n addDefinedRoute(method, route.path);\n });\n /**\n *\n */\n app.register(fastifyCookies, {\n parseOptions: {} // options for parsing cookies\n });\n /**\n * Route helpers - mostly for users.\n */\n const routes: ContextRoutes = {\n defined: definedRoutes,\n onPost: (path, handler, options) => {\n throwOnDefinedRoute(\"POST\", path, options);\n app.post(path, handler);\n },\n onGet: (path, handler, options) => {\n throwOnDefinedRoute(\"GET\", path, options);\n app.get(path, handler);\n },\n onOptions: (path, handler, options) => {\n throwOnDefinedRoute(\"OPTIONS\", path, options);\n app.options(path, handler);\n },\n onDelete: (path, handler, options) => {\n throwOnDefinedRoute(\"DELETE\", path, options);\n app.delete(path, handler);\n },\n onPatch: (path, handler, options) => {\n throwOnDefinedRoute(\"PATCH\", path, options);\n app.patch(path, handler);\n },\n onPut: (path, handler, options) => {\n throwOnDefinedRoute(\"PUT\", path, options);\n app.put(path, handler);\n },\n onAll: (path, handler, options) => {\n throwOnDefinedRoute(\"ALL\", path, options);\n app.all(path, handler);\n },\n onHead: (path, handler, options) => {\n throwOnDefinedRoute(\"HEAD\", path, options);\n app.head(path, handler);\n }\n };\n const context = new Context({\n plugins: [\n /**\n * We must have handlerClient by default.\n * And it must be one of the first context plugins applied.\n */\n createHandlerClient(),\n ...(params.plugins || [])\n ],\n /**\n * Inserted via webpack on build time.\n */\n WEBINY_VERSION: process.env.WEBINY_VERSION as string,\n server: app,\n routes\n });\n /**\n * We are attaching our custom context to webiny variable on the fastify app so it is accessible everywhere\n */\n app.decorate(\"webiny\", context);\n\n /**\n * We have few types of triggers:\n * * Events - EventPlugin\n * * Routes - RoutePlugin\n *\n * Routes are registered in fastify but events must be handled in package which implements cloud specific methods.\n */\n const routePlugins = app.webiny.plugins.byType<RoutePlugin>(RoutePlugin.type);\n\n /**\n * Add routes to the system.\n */\n for (const plugin of routePlugins) {\n plugin.cb({\n ...app.webiny.routes,\n context: app.webiny\n });\n }\n\n /**\n * On every request we add default headers, which can be changed later.\n * Also, if it is an options request, we skip everything after this hook and output options headers.\n */\n app.addHook(\"onRequest\", async (request, reply) => {\n const defaultHeaders = getDefaultHeaders(definedRoutes);\n reply.headers(defaultHeaders);\n if (request.method !== \"OPTIONS\") {\n return;\n }\n const raw = reply.code(204).hijack().raw;\n const headers = { ...defaultHeaders, ...OPTIONS_HEADERS };\n for (const key in headers) {\n raw.setHeader(key, headers[key]);\n }\n\n raw.end(\"\");\n });\n\n app.addHook(\"preParsing\", async request => {\n app.webiny.request = request;\n const plugins = app.webiny.plugins.byType<ContextPlugin>(ContextPlugin.type);\n for (const plugin of plugins) {\n await plugin.apply(app.webiny);\n }\n });\n /**\n *\n */\n app.addHook(\"preHandler\", async () => {\n const plugins = app.webiny.plugins.byType<BeforeHandlerPlugin>(BeforeHandlerPlugin.type);\n for (const plugin of plugins) {\n await plugin.apply(app.webiny);\n }\n });\n\n /**\n *\n */\n const preSerialization: preSerializationAsyncHookHandler<any> = async (_, __, payload) => {\n const plugins = app.webiny.plugins.byType<HandlerResultPlugin>(HandlerResultPlugin.type);\n for (const plugin of plugins) {\n await plugin.handle(app.webiny, payload);\n }\n return payload;\n };\n\n app.addHook(\"preSerialization\", preSerialization);\n\n app.addHook(\"onError\", async (_, reply, error) => {\n const plugins = app.webiny.plugins.byType<HandlerErrorPlugin>(HandlerErrorPlugin.type);\n // Log error to cloud, as these can be extremely annoying to debug!\n console.log(\"@webiny/handler\");\n console.log(\n JSON.stringify({\n ...(error || {}),\n message: error?.message,\n code: error?.code\n })\n );\n const handler = middleware(\n plugins.map(pl => {\n return (context: Context, error: Error, next: Function) => {\n return pl.handle(context, error, next);\n };\n })\n );\n await handler(app.webiny, error);\n\n return reply\n .headers({\n \"Cache-Control\": \"no-store\"\n })\n .status(500);\n });\n\n return app;\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/handler",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.fcdad0bc61",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,22 +12,22 @@
|
|
|
12
12
|
],
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@babel/runtime": "7.
|
|
16
|
-
"@fastify/cookie": "
|
|
17
|
-
"@webiny/api": "0.0.0-unstable.
|
|
18
|
-
"@webiny/error": "0.0.0-unstable.
|
|
19
|
-
"@webiny/handler-client": "0.0.0-unstable.
|
|
20
|
-
"@webiny/plugins": "0.0.0-unstable.
|
|
21
|
-
"@webiny/utils": "0.0.0-unstable.
|
|
22
|
-
"fastify": "4.
|
|
15
|
+
"@babel/runtime": "7.19.0",
|
|
16
|
+
"@fastify/cookie": "8.3.0",
|
|
17
|
+
"@webiny/api": "0.0.0-unstable.fcdad0bc61",
|
|
18
|
+
"@webiny/error": "0.0.0-unstable.fcdad0bc61",
|
|
19
|
+
"@webiny/handler-client": "0.0.0-unstable.fcdad0bc61",
|
|
20
|
+
"@webiny/plugins": "0.0.0-unstable.fcdad0bc61",
|
|
21
|
+
"@webiny/utils": "0.0.0-unstable.fcdad0bc61",
|
|
22
|
+
"fastify": "4.9.2"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@babel/cli": "^7.
|
|
26
|
-
"@babel/core": "^7.
|
|
27
|
-
"@babel/preset-env": "^7.
|
|
28
|
-
"@babel/preset-typescript": "^7.
|
|
29
|
-
"@webiny/cli": "^0.0.0-unstable.
|
|
30
|
-
"@webiny/project-utils": "^0.0.0-unstable.
|
|
25
|
+
"@babel/cli": "^7.19.3",
|
|
26
|
+
"@babel/core": "^7.19.3",
|
|
27
|
+
"@babel/preset-env": "^7.19.4",
|
|
28
|
+
"@babel/preset-typescript": "^7.18.6",
|
|
29
|
+
"@webiny/cli": "^0.0.0-unstable.fcdad0bc61",
|
|
30
|
+
"@webiny/project-utils": "^0.0.0-unstable.fcdad0bc61",
|
|
31
31
|
"babel-plugin-lodash": "^3.3.4",
|
|
32
32
|
"merge": "^1.2.1",
|
|
33
33
|
"rimraf": "^3.0.2",
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"build": "yarn webiny run build",
|
|
43
43
|
"watch": "yarn webiny run watch"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "40d639c3665e384a5e2d26674d43ce26f3295e8c"
|
|
46
46
|
}
|
package/plugins/EventPlugin.js
CHANGED
package/plugins/RoutePlugin.js
CHANGED
package/types.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { FastifyInstance, FastifyRequest, FastifyReply, HTTPMethods, RouteHandlerMethod } from "fastify";
|
|
2
2
|
export { FastifyInstance, HTTPMethods } from "fastify";
|
|
3
3
|
import { ClientContext } from "@webiny/handler-client/types";
|
|
4
|
-
export declare type RouteTypes = HTTPMethods;
|
|
5
4
|
export interface RouteMethodOptions {
|
|
6
5
|
override?: boolean;
|
|
7
6
|
}
|
|
@@ -11,7 +10,7 @@ export interface RouteMethod {
|
|
|
11
10
|
}
|
|
12
11
|
export declare type Request = FastifyRequest;
|
|
13
12
|
export declare type Reply = FastifyReply;
|
|
14
|
-
export declare type DefinedContextRoutes = Record<
|
|
13
|
+
export declare type DefinedContextRoutes = Record<HTTPMethods, string[]>;
|
|
15
14
|
export interface ContextRoutes {
|
|
16
15
|
defined: DefinedContextRoutes;
|
|
17
16
|
onGet: RouteMethod;
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {\n FastifyInstance,\n FastifyRequest,\n FastifyReply,\n HTTPMethods,\n RouteHandlerMethod\n} from \"fastify\";\n\nexport { FastifyInstance, HTTPMethods } from \"fastify\";\nimport { ClientContext } from \"@webiny/handler-client/types\";\n\nexport
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {\n FastifyInstance,\n FastifyRequest,\n FastifyReply,\n HTTPMethods,\n RouteHandlerMethod\n} from \"fastify\";\n\nexport { FastifyInstance, HTTPMethods } from \"fastify\";\nimport { ClientContext } from \"@webiny/handler-client/types\";\n\nexport interface RouteMethodOptions {\n override?: boolean;\n}\n\nexport type RouteMethodPath = `/${string}` | \"*\";\nexport interface RouteMethod {\n (path: RouteMethodPath, handler: RouteHandlerMethod, options?: RouteMethodOptions): void;\n}\n\nexport type Request = FastifyRequest;\nexport type Reply = FastifyReply;\n\nexport type DefinedContextRoutes = Record<HTTPMethods, string[]>;\nexport interface ContextRoutes {\n defined: DefinedContextRoutes;\n onGet: RouteMethod;\n onPost: RouteMethod;\n onPut: RouteMethod;\n onPatch: RouteMethod;\n onDelete: RouteMethod;\n onOptions: RouteMethod;\n onAll: RouteMethod;\n onHead: RouteMethod;\n}\n\nexport interface Context extends ClientContext {\n /**\n * An instance of fastify server.\n * Use at your own risk.\n * @instance\n */\n server: FastifyInstance;\n /**\n * Current request. Must be set only once!\n */\n request: FastifyRequest;\n /**\n * @internal\n */\n routes: ContextRoutes;\n}\n\ndeclare module \"fastify\" {\n interface FastifyInstance {\n webiny: Context;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA"}
|