From 0a4a8d87d38a4582e5f3a7d8d8339c529430bac8 Mon Sep 17 00:00:00 2001 From: MapleLeaf <19603573+itsMapleLeaf@users.noreply.github.com> Date: Fri, 7 Jan 2022 03:33:48 -0600 Subject: [PATCH] streamline asset builder middleware a bit --- .../docs/src/asset-builder/asset-builder.ts | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/packages/docs/src/asset-builder/asset-builder.ts b/packages/docs/src/asset-builder/asset-builder.ts index de8dab5..0c1737c 100644 --- a/packages/docs/src/asset-builder/asset-builder.ts +++ b/packages/docs/src/asset-builder/asset-builder.ts @@ -59,28 +59,29 @@ export class AssetBuilder { const extension = extname(file) const stats = await stat(file).catch(() => undefined) - if (stats?.isFile()) { - res - .status(200) - .type(extension.endsWith("tsx") ? "text/javascript" : extension) - .header("Cache-Control", "public, max-age=604800, immutable") - .sendFile(file) - return + if (!stats?.isFile()) { + const transformResult = await this.transform(asset) + if (!transformResult) return next() + + await mkdir(dirname(file), { recursive: true }) + await writeFile(file, transformResult.content) } - for (const transformer of this.transformers) { - const result = await transformer.transform(asset) - if (result) { - await mkdir(dirname(file), { recursive: true }) - await writeFile(file, result.content) - return res.type(extension).send(result.content) - } - } - - next() + res + .status(200) + .type(extension.endsWith("tsx") ? "text/javascript" : extension) + .header("Cache-Control", "public, max-age=604800, immutable") + .sendFile(file) } catch (error) { next(error) } } } + + private async transform(asset: Asset) { + for (const transformer of this.transformers) { + const result = await transformer.transform(asset) + if (result) return result + } + } }