@btst/stack 1.1.4 → 1.1.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/node_modules/.pnpm/@radix-ui_react-alert-dialog@1.1.15_@types_react-dom@19.2.2_@types_react@19.2.2__@types_ec789942cd38340bd7362c09e7d34384/node_modules/@radix-ui/react-alert-dialog/dist/index.cjs +182 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-alert-dialog@1.1.15_@types_react-dom@19.2.2_@types_react@19.2.2__@types_ec789942cd38340bd7362c09e7d34384/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs +149 -0
- package/dist/packages/better-stack/src/plugins/blog/api/plugin.cjs +14 -7
- package/dist/packages/better-stack/src/plugins/blog/api/plugin.mjs +14 -7
- package/dist/packages/better-stack/src/plugins/blog/client/components/forms/post-forms.cjs +64 -14
- package/dist/packages/better-stack/src/plugins/blog/client/components/forms/post-forms.mjs +66 -16
- package/dist/packages/better-stack/src/plugins/blog/client/components/pages/edit-post-page.internal.cjs +5 -1
- package/dist/packages/better-stack/src/plugins/blog/client/components/pages/edit-post-page.internal.mjs +5 -1
- package/dist/packages/better-stack/src/plugins/blog/client/hooks/blog-hooks.cjs +31 -0
- package/dist/packages/better-stack/src/plugins/blog/client/hooks/blog-hooks.mjs +31 -1
- package/dist/packages/better-stack/src/plugins/blog/client/localization/blog-forms.cjs +8 -0
- package/dist/packages/better-stack/src/plugins/blog/client/localization/blog-forms.mjs +8 -0
- package/dist/packages/ui/src/components/alert-dialog.cjs +149 -0
- package/dist/packages/ui/src/components/alert-dialog.mjs +137 -0
- package/dist/plugins/blog/client/hooks/index.cjs +1 -0
- package/dist/plugins/blog/client/hooks/index.d.cts +7 -1
- package/dist/plugins/blog/client/hooks/index.d.mts +7 -1
- package/dist/plugins/blog/client/hooks/index.d.ts +7 -1
- package/dist/plugins/blog/client/hooks/index.mjs +1 -1
- package/dist/plugins/blog/client/index.d.cts +171 -177
- package/dist/plugins/blog/client/index.d.mts +171 -177
- package/dist/plugins/blog/client/index.d.ts +171 -177
- package/dist/plugins/blog/query-keys.d.cts +1 -0
- package/dist/plugins/blog/query-keys.d.mts +1 -0
- package/dist/plugins/blog/query-keys.d.ts +1 -0
- package/dist/plugins/client/index.d.cts +3 -2
- package/dist/plugins/client/index.d.mts +3 -2
- package/dist/plugins/client/index.d.ts +3 -2
- package/package.json +5 -3
- package/src/plugins/blog/api/plugin.ts +14 -6
- package/src/plugins/blog/client/components/forms/post-forms.tsx +92 -14
- package/src/plugins/blog/client/components/pages/edit-post-page.internal.tsx +6 -0
- package/src/plugins/blog/client/hooks/blog-hooks.tsx +38 -0
- package/src/plugins/blog/client/localization/blog-forms.ts +10 -0
- package/src/plugins/client/index.ts +7 -3
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
|
|
1
2
|
import * as react from 'react';
|
|
2
3
|
import { ComponentType } from 'react';
|
|
3
4
|
import * as _btst_yar from '@btst/yar';
|
|
@@ -66,190 +67,176 @@ interface BlogClientHooks {
|
|
|
66
67
|
*
|
|
67
68
|
* @param config - Configuration including queryClient, baseURL, and optional hooks
|
|
68
69
|
*/
|
|
69
|
-
declare const blogClientPlugin: (config: BlogClientConfig) => {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
})[]) | undefined;
|
|
94
|
-
extra?: (() => any) | undefined;
|
|
95
|
-
};
|
|
96
|
-
options: _btst_yar.RouteOptions | undefined;
|
|
97
|
-
path: "/blog";
|
|
98
|
-
meta: _btst_yar.RouteMeta | undefined;
|
|
70
|
+
declare const blogClientPlugin: (config: BlogClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
|
|
71
|
+
posts: {
|
|
72
|
+
(inputCtx_0?: _btst_yar.InputContext<"/blog", _btst_yar.RouteOptions> | undefined): {
|
|
73
|
+
PageComponent?: react.ComponentType<unknown> | undefined;
|
|
74
|
+
LoadingComponent?: react.ComponentType<unknown> | undefined;
|
|
75
|
+
ErrorComponent?: react.ComponentType<unknown> | undefined;
|
|
76
|
+
loader?: (() => Promise<void>) | undefined;
|
|
77
|
+
meta?: (() => ({
|
|
78
|
+
title: string;
|
|
79
|
+
name?: undefined;
|
|
80
|
+
content?: undefined;
|
|
81
|
+
property?: undefined;
|
|
82
|
+
} | {
|
|
83
|
+
name: string;
|
|
84
|
+
content: string;
|
|
85
|
+
title?: undefined;
|
|
86
|
+
property?: undefined;
|
|
87
|
+
} | {
|
|
88
|
+
property: string;
|
|
89
|
+
content: string;
|
|
90
|
+
title?: undefined;
|
|
91
|
+
name?: undefined;
|
|
92
|
+
})[]) | undefined;
|
|
93
|
+
extra?: (() => any) | undefined;
|
|
99
94
|
};
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
95
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
96
|
+
path: "/blog";
|
|
97
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
98
|
+
};
|
|
99
|
+
drafts: {
|
|
100
|
+
(inputCtx_0?: _btst_yar.InputContext<"/blog/drafts", _btst_yar.RouteOptions> | undefined): {
|
|
101
|
+
PageComponent?: react.ComponentType<unknown> | undefined;
|
|
102
|
+
LoadingComponent?: react.ComponentType<unknown> | undefined;
|
|
103
|
+
ErrorComponent?: react.ComponentType<unknown> | undefined;
|
|
104
|
+
loader?: (() => Promise<void>) | undefined;
|
|
105
|
+
meta?: (() => ({
|
|
106
|
+
title: string;
|
|
107
|
+
name?: undefined;
|
|
108
|
+
content?: undefined;
|
|
109
|
+
property?: undefined;
|
|
110
|
+
} | {
|
|
111
|
+
name: string;
|
|
112
|
+
content: string;
|
|
113
|
+
title?: undefined;
|
|
114
|
+
property?: undefined;
|
|
115
|
+
} | {
|
|
116
|
+
property: string;
|
|
117
|
+
content: string;
|
|
118
|
+
title?: undefined;
|
|
119
|
+
name?: undefined;
|
|
120
|
+
})[]) | undefined;
|
|
121
|
+
extra?: (() => any) | undefined;
|
|
127
122
|
};
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
123
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
124
|
+
path: "/blog/drafts";
|
|
125
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
126
|
+
};
|
|
127
|
+
newPost: {
|
|
128
|
+
(inputCtx_0?: _btst_yar.InputContext<"/blog/new", _btst_yar.RouteOptions> | undefined): {
|
|
129
|
+
PageComponent?: react.ComponentType<unknown> | undefined;
|
|
130
|
+
LoadingComponent?: react.ComponentType<unknown> | undefined;
|
|
131
|
+
ErrorComponent?: react.ComponentType<unknown> | undefined;
|
|
132
|
+
loader?: (() => any) | undefined;
|
|
133
|
+
meta?: (() => ({
|
|
134
|
+
title: string;
|
|
135
|
+
name?: undefined;
|
|
136
|
+
content?: undefined;
|
|
137
|
+
property?: undefined;
|
|
138
|
+
} | {
|
|
139
|
+
name: string;
|
|
140
|
+
content: string;
|
|
141
|
+
title?: undefined;
|
|
142
|
+
property?: undefined;
|
|
143
|
+
} | {
|
|
144
|
+
property: string;
|
|
145
|
+
content: string;
|
|
146
|
+
title?: undefined;
|
|
147
|
+
name?: undefined;
|
|
148
|
+
})[]) | undefined;
|
|
149
|
+
extra?: (() => any) | undefined;
|
|
155
150
|
};
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
151
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
152
|
+
path: "/blog/new";
|
|
153
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
154
|
+
};
|
|
155
|
+
editPost: {
|
|
156
|
+
(inputCtx_0: _btst_yar.InputContext<"/blog/:slug/edit", _btst_yar.RouteOptions>): {
|
|
157
|
+
PageComponent?: react.ComponentType<unknown> | undefined;
|
|
158
|
+
LoadingComponent?: react.ComponentType<unknown> | undefined;
|
|
159
|
+
ErrorComponent?: react.ComponentType<unknown> | undefined;
|
|
160
|
+
loader?: (() => Promise<void>) | undefined;
|
|
161
|
+
meta?: (() => ({
|
|
162
|
+
title: string;
|
|
163
|
+
name?: undefined;
|
|
164
|
+
content?: undefined;
|
|
165
|
+
property?: undefined;
|
|
166
|
+
} | {
|
|
167
|
+
name: string;
|
|
168
|
+
content: string;
|
|
169
|
+
title?: undefined;
|
|
170
|
+
property?: undefined;
|
|
171
|
+
} | {
|
|
172
|
+
property: string;
|
|
173
|
+
content: string;
|
|
174
|
+
title?: undefined;
|
|
175
|
+
name?: undefined;
|
|
176
|
+
})[]) | undefined;
|
|
177
|
+
extra?: (() => any) | undefined;
|
|
183
178
|
};
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
179
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
180
|
+
path: "/blog/:slug/edit";
|
|
181
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
182
|
+
};
|
|
183
|
+
tag: {
|
|
184
|
+
(inputCtx_0: _btst_yar.InputContext<"/blog/tag/:tagSlug", _btst_yar.RouteOptions>): {
|
|
185
|
+
PageComponent?: react.ComponentType<unknown> | undefined;
|
|
186
|
+
LoadingComponent?: react.ComponentType<unknown> | undefined;
|
|
187
|
+
ErrorComponent?: react.ComponentType<unknown> | undefined;
|
|
188
|
+
loader?: (() => Promise<void>) | undefined;
|
|
189
|
+
meta?: (() => ({
|
|
190
|
+
title: string;
|
|
191
|
+
name?: undefined;
|
|
192
|
+
content?: undefined;
|
|
193
|
+
property?: undefined;
|
|
194
|
+
} | {
|
|
195
|
+
name: string;
|
|
196
|
+
content: string;
|
|
197
|
+
title?: undefined;
|
|
198
|
+
property?: undefined;
|
|
199
|
+
} | {
|
|
200
|
+
property: string;
|
|
201
|
+
content: string;
|
|
202
|
+
title?: undefined;
|
|
203
|
+
name?: undefined;
|
|
204
|
+
})[]) | undefined;
|
|
205
|
+
extra?: (() => any) | undefined;
|
|
211
206
|
};
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
207
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
208
|
+
path: "/blog/tag/:tagSlug";
|
|
209
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
210
|
+
};
|
|
211
|
+
post: {
|
|
212
|
+
(inputCtx_0: _btst_yar.InputContext<"/blog/:slug", _btst_yar.RouteOptions>): {
|
|
213
|
+
PageComponent?: react.ComponentType<unknown> | undefined;
|
|
214
|
+
LoadingComponent?: react.ComponentType<unknown> | undefined;
|
|
215
|
+
ErrorComponent?: react.ComponentType<unknown> | undefined;
|
|
216
|
+
loader?: (() => Promise<void>) | undefined;
|
|
217
|
+
meta?: (() => ({
|
|
218
|
+
title: string;
|
|
219
|
+
name?: undefined;
|
|
220
|
+
content?: undefined;
|
|
221
|
+
property?: undefined;
|
|
222
|
+
} | {
|
|
223
|
+
name: string;
|
|
224
|
+
content: string | undefined;
|
|
225
|
+
title?: undefined;
|
|
226
|
+
property?: undefined;
|
|
227
|
+
} | {
|
|
228
|
+
property: string;
|
|
229
|
+
content: string;
|
|
230
|
+
title?: undefined;
|
|
231
|
+
name?: undefined;
|
|
232
|
+
})[]) | undefined;
|
|
233
|
+
extra?: (() => any) | undefined;
|
|
239
234
|
};
|
|
235
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
236
|
+
path: "/blog/:slug";
|
|
237
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
240
238
|
};
|
|
241
|
-
|
|
242
|
-
url: string;
|
|
243
|
-
lastModified: Date | undefined;
|
|
244
|
-
changeFrequency: "monthly";
|
|
245
|
-
priority: number;
|
|
246
|
-
} | {
|
|
247
|
-
url: string;
|
|
248
|
-
lastModified: Date | undefined;
|
|
249
|
-
changeFrequency: "daily";
|
|
250
|
-
priority: number;
|
|
251
|
-
})[]>;
|
|
252
|
-
};
|
|
239
|
+
}>;
|
|
253
240
|
|
|
254
241
|
declare const BLOG_LOCALIZATION: {
|
|
255
242
|
BLOG_FORMS_TITLE_LABEL: string;
|
|
@@ -271,7 +258,14 @@ declare const BLOG_LOCALIZATION: {
|
|
|
271
258
|
BLOG_FORMS_CANCEL_BUTTON: string;
|
|
272
259
|
BLOG_FORMS_TOAST_CREATE_SUCCESS: string;
|
|
273
260
|
BLOG_FORMS_TOAST_UPDATE_SUCCESS: string;
|
|
261
|
+
BLOG_FORMS_TOAST_DELETE_SUCCESS: string;
|
|
274
262
|
BLOG_FORMS_LOADING_POST: string;
|
|
263
|
+
BLOG_FORMS_DELETE_BUTTON: string;
|
|
264
|
+
BLOG_FORMS_DELETE_DIALOG_TITLE: string;
|
|
265
|
+
BLOG_FORMS_DELETE_DIALOG_DESCRIPTION: string;
|
|
266
|
+
BLOG_FORMS_DELETE_DIALOG_CANCEL: string;
|
|
267
|
+
BLOG_FORMS_DELETE_DIALOG_CONFIRM: string;
|
|
268
|
+
BLOG_FORMS_DELETE_PENDING: string;
|
|
275
269
|
BLOG_FORMS_EDITOR_PLACEHOLDER: string;
|
|
276
270
|
BLOG_FORMS_FEATURED_IMAGE_LABEL: string;
|
|
277
271
|
BLOG_FORMS_FEATURED_IMAGE_REQUIRED_ASTERISK: string;
|
|
@@ -48,8 +48,9 @@ declare function createApiClient<TRouter extends Router | Record<string, Endpoin
|
|
|
48
48
|
* });
|
|
49
49
|
* ```
|
|
50
50
|
*
|
|
51
|
-
* @template
|
|
51
|
+
* @template TOverrides - The shape of overridable components/functions this plugin requires
|
|
52
|
+
* @template TRoutes - The exact shape of routes this plugin provides (preserves keys and route types)
|
|
52
53
|
*/
|
|
53
|
-
declare function defineClientPlugin<
|
|
54
|
+
declare function defineClientPlugin<TOverrides = Record<string, never>, TRoutes extends Record<string, Route> = Record<string, Route>>(plugin: ClientPlugin<TOverrides, TRoutes>): ClientPlugin<TOverrides, TRoutes>;
|
|
54
55
|
|
|
55
56
|
export { ClientPlugin, createApiClient, defineClientPlugin };
|
|
@@ -48,8 +48,9 @@ declare function createApiClient<TRouter extends Router | Record<string, Endpoin
|
|
|
48
48
|
* });
|
|
49
49
|
* ```
|
|
50
50
|
*
|
|
51
|
-
* @template
|
|
51
|
+
* @template TOverrides - The shape of overridable components/functions this plugin requires
|
|
52
|
+
* @template TRoutes - The exact shape of routes this plugin provides (preserves keys and route types)
|
|
52
53
|
*/
|
|
53
|
-
declare function defineClientPlugin<
|
|
54
|
+
declare function defineClientPlugin<TOverrides = Record<string, never>, TRoutes extends Record<string, Route> = Record<string, Route>>(plugin: ClientPlugin<TOverrides, TRoutes>): ClientPlugin<TOverrides, TRoutes>;
|
|
54
55
|
|
|
55
56
|
export { ClientPlugin, createApiClient, defineClientPlugin };
|
|
@@ -48,8 +48,9 @@ declare function createApiClient<TRouter extends Router | Record<string, Endpoin
|
|
|
48
48
|
* });
|
|
49
49
|
* ```
|
|
50
50
|
*
|
|
51
|
-
* @template
|
|
51
|
+
* @template TOverrides - The shape of overridable components/functions this plugin requires
|
|
52
|
+
* @template TRoutes - The exact shape of routes this plugin provides (preserves keys and route types)
|
|
52
53
|
*/
|
|
53
|
-
declare function defineClientPlugin<
|
|
54
|
+
declare function defineClientPlugin<TOverrides = Record<string, never>, TRoutes extends Record<string, Route> = Record<string, Route>>(plugin: ClientPlugin<TOverrides, TRoutes>): ClientPlugin<TOverrides, TRoutes>;
|
|
54
55
|
|
|
55
56
|
export { ClientPlugin, createApiClient, defineClientPlugin };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@btst/stack",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "A composable, plugin-based library for building full-stack applications.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -158,20 +158,20 @@
|
|
|
158
158
|
},
|
|
159
159
|
"dependencies": {
|
|
160
160
|
"@btst/db": "1.0.2",
|
|
161
|
-
"@btst/yar": "1.1.1",
|
|
162
161
|
"@lukemorales/query-key-factory": "^1.3.4",
|
|
163
162
|
"@milkdown/crepe": "^7.17.1",
|
|
164
163
|
"@milkdown/kit": "^7.17.1",
|
|
165
|
-
"better-call": "1.0.19",
|
|
166
164
|
"slug": "^11.0.1"
|
|
167
165
|
},
|
|
168
166
|
"peerDependencies": {
|
|
167
|
+
"@btst/yar": ">=1.1.0",
|
|
169
168
|
"@hookform/resolvers": ">=5.0.0",
|
|
170
169
|
"@radix-ui/react-dialog": ">=1.1.0",
|
|
171
170
|
"@radix-ui/react-label": ">=2.1.0",
|
|
172
171
|
"@radix-ui/react-slot": ">=1.1.0",
|
|
173
172
|
"@radix-ui/react-switch": ">=1.1.0",
|
|
174
173
|
"@tanstack/react-query": "^5.0.0",
|
|
174
|
+
"better-call": ">=1.0.0",
|
|
175
175
|
"class-variance-authority": ">=0.7.0",
|
|
176
176
|
"clsx": ">=2.1.0",
|
|
177
177
|
"cmdk": ">=1.1.0",
|
|
@@ -197,9 +197,11 @@
|
|
|
197
197
|
},
|
|
198
198
|
"devDependencies": {
|
|
199
199
|
"@btst/adapter-memory": "1.0.2",
|
|
200
|
+
"@btst/yar": "1.1.1",
|
|
200
201
|
"@types/react": "^19.0.0",
|
|
201
202
|
"@types/slug": "^5.0.9",
|
|
202
203
|
"@workspace/ui": "workspace:*",
|
|
204
|
+
"better-call": "1.0.19",
|
|
203
205
|
"react": "^19.1.1",
|
|
204
206
|
"react-dom": "^19.1.1",
|
|
205
207
|
"react-error-boundary": "^4.1.2",
|
|
@@ -36,6 +36,7 @@ export interface BlogApiContext<TBody = any, TParams = any, TQuery = any> {
|
|
|
36
36
|
params?: TParams;
|
|
37
37
|
query?: TQuery;
|
|
38
38
|
request?: Request;
|
|
39
|
+
headers?: Headers;
|
|
39
40
|
[key: string]: any;
|
|
40
41
|
}
|
|
41
42
|
|
|
@@ -282,8 +283,8 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
282
283
|
query: PostListQuerySchema,
|
|
283
284
|
},
|
|
284
285
|
async (ctx) => {
|
|
285
|
-
const { query } = ctx;
|
|
286
|
-
const context: BlogApiContext = { query };
|
|
286
|
+
const { query, headers } = ctx;
|
|
287
|
+
const context: BlogApiContext = { query, headers };
|
|
287
288
|
const tagCache = createTagCache();
|
|
288
289
|
const postTagCache = createPostTagCache();
|
|
289
290
|
|
|
@@ -402,7 +403,10 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
402
403
|
body: createPostSchema,
|
|
403
404
|
},
|
|
404
405
|
async (ctx) => {
|
|
405
|
-
const context: BlogApiContext = {
|
|
406
|
+
const context: BlogApiContext = {
|
|
407
|
+
body: ctx.body,
|
|
408
|
+
headers: ctx.headers,
|
|
409
|
+
};
|
|
406
410
|
const tagCache = createTagCache();
|
|
407
411
|
|
|
408
412
|
try {
|
|
@@ -475,6 +479,7 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
475
479
|
const context: BlogApiContext = {
|
|
476
480
|
body: ctx.body,
|
|
477
481
|
params: ctx.params,
|
|
482
|
+
headers: ctx.headers,
|
|
478
483
|
};
|
|
479
484
|
const tagCache = createTagCache();
|
|
480
485
|
|
|
@@ -583,7 +588,10 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
583
588
|
method: "DELETE",
|
|
584
589
|
},
|
|
585
590
|
async (ctx) => {
|
|
586
|
-
const context: BlogApiContext = {
|
|
591
|
+
const context: BlogApiContext = {
|
|
592
|
+
params: ctx.params,
|
|
593
|
+
headers: ctx.headers,
|
|
594
|
+
};
|
|
587
595
|
|
|
588
596
|
try {
|
|
589
597
|
// Authorization hook
|
|
@@ -634,8 +642,8 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
634
642
|
query: NextPreviousPostsQuerySchema,
|
|
635
643
|
},
|
|
636
644
|
async (ctx) => {
|
|
637
|
-
const { query } = ctx;
|
|
638
|
-
const context: BlogApiContext = { query };
|
|
645
|
+
const { query, headers } = ctx;
|
|
646
|
+
const context: BlogApiContext = { query, headers };
|
|
639
647
|
const tagCache = createTagCache();
|
|
640
648
|
const postTagCache = createPostTagCache();
|
|
641
649
|
|