From 119e63dbf30ab1a10c068995d19280ecc4468856 Mon Sep 17 00:00:00 2001 From: krutoo Date: Mon, 27 Mar 2023 14:17:53 +0500 Subject: [PATCH] #38 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - preset/handler: добавлена возможность задавать функцию для получения ассетов --- src/preset/node/handler.ts | 4 +++- src/tokens.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/preset/node/handler.ts b/src/preset/node/handler.ts index 64f33d7..f6478c7 100644 --- a/src/preset/node/handler.ts +++ b/src/preset/node/handler.ts @@ -111,12 +111,14 @@ export function provideMain(resolve: Resolve): VoidFunction { const template = resolve(KnownToken.Http.Handler.Response.Page.template); const builder = resolve(KnownToken.Http.Handler.Response.builder); + const getAssets = typeof assets === 'function' ? assets : () => assets; + return async function main() { try { // @todo это билдер ответа но в ответе может не быть markup, assets и тд, подумать и переделать builder .markup(await render(await prepare())) - .assets(assets) + .assets(await getAssets()) .format(PageResponse.defineFormat(context.req)) .template(template) .send(context.res); diff --git a/src/tokens.ts b/src/tokens.ts index 9ab1a4b..7dbbd91 100644 --- a/src/tokens.ts +++ b/src/tokens.ts @@ -75,7 +75,7 @@ export const KnownToken = { Response: { builder: createToken('response/builder'), Page: { - assets: createToken('page/assets'), + assets: createToken PageAssets | Promise)>('page/assets'), template: createToken('page/template'), prepare: createToken<() => JSX.Element | Promise>('page/prepare'), render: createToken<(element: JSX.Element) => string | Promise>('page/render'),