{"_id":"@ariaskit/astro-collections","name":"@ariaskit/astro-collections","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@ariaskit/astro-collections","version":"0.0.1","description":"A collection utilities library for Astro framework, providing easy collection management components and utilities for your Astro projects.","exports":{".":{"import":"./dist/index.mjs","types":"./dist/index.d.ts"}},"main":"./dist/index.mjs","scripts":{"build":"tsup","build:dev":"pnpm run build && pnpm link --global","watch":"tsup --watch","format":"prettier --write \"**/*.{js,ts}\"","check":"prettier --check \"**/*.{js,ts}\"","prepare":"husky","test":"vitest","test:run":"vitest run","test:coverage":"vitest --coverage","test:v":"vitest --reporter verbose","push":"git add . && gitzen commit -y && git push && pnpm run build:dev","publish:npm":"npm publish --access public"},"lint-staged":{"*.{js,ts}":["prettier --write"]},"lint-staged:options":{"allowEmpty":true},"keywords":["astro","pagination","utilities","collections","astro-components","astro-utilities"],"author":{"name":"JorgeRosbel"},"license":"MIT","type":"module","repository":{"type":"git","url":"git+https://github.com/JorgeRosbel/astro-collections.git"},"bugs":{"url":"https://github.com/JorgeRosbel/astro-collections/issues"},"homepage":"https://github.com/JorgeRosbel/astro-collections#readme","devDependencies":{"@esbuild-plugins/tsconfig-paths":"0.1.2","@types/node":"24.0.15","husky":"9.1.7","lint-staged":"16.1.2","prettier":"3.6.2","tsup":"8.5.0","tsx":"4.20.3","typescript":"5.8.3","vitest":"3.2.4","astro":"5.16.6"},"peerDependencies":{"astro":">=5.0.0"},"_id":"@ariaskit/astro-collections@0.0.1","gitHead":"9188e3934b71195106a59db7f1dec3ecab05cbdd","types":"./dist/index.d.ts","_nodeVersion":"20.19.1","_npmVersion":"11.5.2","dist":{"integrity":"sha512-7vRzIZRyoTnIZ3q2P9W0DUlWoeSRm8cQ6CQw2Zv7mPx8VZuMDI642XA3m9Dukeqru0f1SZ3UEUxOPuzingkhag==","shasum":"17d5bb5609a1d7489ddd2a901bef64e360a1b8c3","tarball":"https://registry.npmjs.org/@ariaskit/astro-collections/-/astro-collections-0.0.1.tgz","fileCount":6,"unpackedSize":6747,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD/xHpp/4H8+fSHV2HSCHUG77cB7FRCHIM0ugOQdwYyvQIhAPq62nla2dqjFx+o7Lh+jwTd25QRL4Jb2Uyn2X+gx0Cm"}]},"_npmUser":{"name":"jorgerosbel","email":"jorgerosbelcruzarias@gmail.com"},"directories":{},"maintainers":[{"name":"jorgerosbel","email":"jorgerosbelcruzarias@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/astro-collections_0.0.1_1767712941481_0.2793421831058487"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-06T15:22:21.377Z","0.0.1":"2026-01-06T15:22:21.624Z","modified":"2026-01-06T15:22:21.960Z"},"maintainers":[{"name":"jorgerosbel","email":"jorgerosbelcruzarias@gmail.com"}],"description":"A collection utilities library for Astro framework, providing easy collection management components and utilities for your Astro projects.","homepage":"https://github.com/JorgeRosbel/astro-collections#readme","keywords":["astro","pagination","utilities","collections","astro-components","astro-utilities"],"repository":{"type":"git","url":"git+https://github.com/JorgeRosbel/astro-collections.git"},"author":{"name":"JorgeRosbel"},"bugs":{"url":"https://github.com/JorgeRosbel/astro-collections/issues"},"license":"MIT","readme":"# @ariaskit/astro-collections\n\n![@ariaskit/astro-collections](image/@ariaskit_astro-collections.png)\n\nA lightweight pagination and collection utilities library for Astro.\n\n## Installation\n\n```bash\nnpm install @ariaskit/astro-collections\n# or\npnpm add @ariaskit/astro-collections\n# or\nyarn add @ariaskit/astro-collections\n```\n\n## Usage\n\n### `getCollectionEntries`\n\nRetrieve collection entries with optional filtering and sorting.\n\n```astro\n---\nimport { getCollectionEntries } from \"@ariaskit/astro-collections\";\nimport type { collections } from \"./content/config\";\n\n// Basic usage\nconst posts = await getCollectionEntries<typeof collections>(\"blog\");\n\n// With filtering and sorting\nconst filteredPosts = await getCollectionEntries<typeof collections>(\"blog\", {\n    filterFn: (item) => item.data.category === \"astro\",\n    sortByFn: (a, b) => a.data.title.localeCompare(b.data.title)\n});\n---\n\n<ul>\n    {filteredPosts.map(post => (\n        <li>{post.data.title}</li>\n    ))}\n</ul>\n```\n\n### `createCollectionPagination`\n\nCreate paginated routes for your content collections. Must be used as `getStaticPaths` in a dynamic route file (e.g., `[...page].astro`).\n\n```astro\n---\n// src/pages/blog/[...page].astro\nimport { createCollectionPagination } from \"@ariaskit/astro-collections\";\nimport type { collections } from \"../../content/config\";\n\nexport const getStaticPaths = createCollectionPagination<typeof collections>({\n    collection: \"blog\",\n    pageSize: 10,\n    filterFn: (item) => item.data.published === true,\n    sortByFn: (a, b) => b.data.date.getTime() - a.data.date.getTime()\n});\n\nconst { page } = Astro.props;\n---\n\n<h1>Blog - Page {page.currentPage}</h1>\n\n{page.data.map(post => (\n    <article>\n        <h2>{post.data.title}</h2>\n        <a href={`/blog/${post.slug}`}>Read more</a>\n    </article>\n))}\n\n<nav>\n    {page.url.prev && <a href={page.url.prev}>← Previous</a>}\n    <span>Page {page.currentPage} of {page.lastPage}</span>\n    {page.url.next && <a href={page.url.next}>Next →</a>}\n</nav>\n```\n\n## TypeScript\n\nImport types if needed:\n\n```typescript\nimport type { PaginationOptions, SortByFn, FilterFn } from \"@ariaskit/astro-collections\";\n```\n\n## License\n\nMIT\n\n\n\n\n","readmeFilename":"readme.md","_rev":"1-c637f5b175a7d72722deeb616d888c51"}