summaryrefslogtreecommitdiff
path: root/src/frontend/render/renderer.ts
diff options
context:
space:
mode:
authorGravatar Drew Powers <1369770+drwpow@users.noreply.github.com> 2021-04-02 21:01:57 -0600
committerGravatar GitHub <noreply@github.com> 2021-04-02 21:01:57 -0600
commitd9733e8d42662d8708b5fc3bcb5c6c4db75df043 (patch)
tree558c20bc1b58e0362cd1e3748168fa9a06b9ee80 /src/frontend/render/renderer.ts
parent008ffc295133bb35d537dd3b8edfb31b808a423b (diff)
downloadastro-d9733e8d42662d8708b5fc3bcb5c6c4db75df043.tar.gz
astro-d9733e8d42662d8708b5fc3bcb5c6c4db75df043.tar.zst
astro-d9733e8d42662d8708b5fc3bcb5c6c4db75df043.zip
Add type declarations (#59)
Diffstat (limited to 'src/frontend/render/renderer.ts')
-rw-r--r--src/frontend/render/renderer.ts23
1 files changed, 5 insertions, 18 deletions
diff --git a/src/frontend/render/renderer.ts b/src/frontend/render/renderer.ts
index cff82eea5..f00569827 100644
--- a/src/frontend/render/renderer.ts
+++ b/src/frontend/render/renderer.ts
@@ -1,18 +1,8 @@
-interface DynamicRenderContext {
- componentUrl: string;
- componentExport: string;
- frameworkUrls: string;
-}
-
-export interface Renderer {
- renderStatic(Component: any): (props: Record<string, any>, ...children: any[]) => Promise<string>;
- render(context: { root: string; Component: string; props: string; [key: string]: string }): string;
- imports?: Record<string, string[]>;
-}
+import type { ComponentRenderer, DynamicRenderContext, DynamicRendererGenerator, StaticRendererGenerator } from '../../@types/renderer';
/** Initialize Astro Component renderer for Static and Dynamic components */
-export function createRenderer(renderer: Renderer) {
- const _static: Renderer['renderStatic'] = (Component: any) => renderer.renderStatic(Component);
+export function createRenderer(renderer: ComponentRenderer) {
+ const _static: StaticRendererGenerator = (Component) => renderer.renderStatic(Component);
const _imports = (context: DynamicRenderContext) => {
const values = Object.values(renderer.imports ?? {})
.reduce((acc, v) => {
@@ -31,12 +21,9 @@ export function createRenderer(renderer: Renderer) {
const astroId = `${Math.floor(Math.random() * 1e16)}`;
return { ['data-astro-id']: astroId, root: `document.querySelector('[data-astro-id="${astroId}"]')`, Component: 'Component' };
};
- const createDynamicRender = (
- wrapperStart: string | ((context: ReturnType<typeof createContext>) => string),
- wrapperEnd: string | ((context: ReturnType<typeof createContext>) => string)
- ) => (Component: any, renderContext: DynamicRenderContext) => {
+ const createDynamicRender: DynamicRendererGenerator = (wrapperStart, wrapperEnd) => (Component, renderContext) => {
const innerContext = createContext();
- return async (props: Record<string, any>, ...children: any[]) => {
+ return async (props, ...children) => {
let value: string;
try {
value = await _static(Component)(props, ...children);