loader() — astro Function Reference
Architecture documentation for the loader() function in post-loader.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD fe66fdcc_3c3d_8589_b74a_68ff0a62c7f3["loader()"] 0e04d4be_ef0b_7b26_b83b_e833aa6e47ee["post-loader.ts"] fe66fdcc_3c3d_8589_b74a_68ff0a62c7f3 -->|defined in| 0e04d4be_ef0b_7b26_b83b_e833aa6e47ee style fe66fdcc_3c3d_8589_b74a_68ff0a62c7f3 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/astro/test/fixtures/content-layer/src/loaders/post-loader.ts lines 8–53
export function loader(config:PostLoaderConfig): Loader {
return {
name: "post-loader",
load: async ({
store, meta, logger
}) => {
logger.info('Loading posts');
const lastSynced = meta.get('lastSynced');
// Don't sync more than once a minute
if (lastSynced && (Date.now() - Number(lastSynced) < 1000 * 60)) {
logger.info('Skipping sync');
return;
}
const posts = await fetch(config.url)
.then((res) => res.json());
store.clear();
for (const data of posts) {
store.set({id: data.id, data});
}
meta.set('lastSynced', String(Date.now()));
},
createSchema: async () => {
// Simulate a delay
await new Promise((resolve) => setTimeout(resolve, 1000));
return {
schema: z.object({
title: z.string(),
body: z.string(),
userId: z.number(),
id: z.number(),
}),
types: /* ts */`export interface Entry {
title: string;
body: string;
userId: number;
id: number;
}`
}
}
};
}
Domain
Subdomains
Source
Frequently Asked Questions
What does loader() do?
loader() is a function in the astro codebase, defined in packages/astro/test/fixtures/content-layer/src/loaders/post-loader.ts.
Where is loader() defined?
loader() is defined in packages/astro/test/fixtures/content-layer/src/loaders/post-loader.ts at line 8.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free