astro-loader-hashnode
Version:
Astro content loader for seamlessly integrating Hashnode blog posts into your Astro website using the Content Layer API
37 lines (36 loc) • 1.39 kB
JavaScript
/**
* Loaders - Export all Hashnode loaders
*/
// Base loader
export { BaseHashnodeLoader, calculateDigest, LoaderError, paginateResults, flattenPaginatedResults, } from './base.js';
// Posts loader
export { PostsLoader, createPostsLoader, postsLoader } from './posts.js';
// Series loader
export { SeriesLoader, createSeriesLoader, seriesLoader } from './series.js';
// Search loader
export { SearchLoader, createSearchLoader, searchLoader } from './search.js';
// Drafts loader
export { DraftsLoader, createDraftsLoader, draftsLoader } from './drafts.js';
// Convenience function to create any loader by type
export async function createLoader(type, options) {
switch (type) {
case 'posts': {
const { createPostsLoader } = await import('./posts.js');
return createPostsLoader(options);
}
case 'series': {
const { createSeriesLoader } = await import('./series.js');
return createSeriesLoader(options);
}
case 'search': {
const { createSearchLoader } = await import('./search.js');
return createSearchLoader(options);
}
case 'drafts': {
const { createDraftsLoader } = await import('./drafts.js');
return createDraftsLoader(options);
}
default:
throw new Error(`Unknown loader type: ${type}`);
}
}