Skip to main content
Deno 2 is finally here 🎉️
Learn more
Module

x/ldkit/docs/features/pagination.md

LDkit - Linked Data query toolkit for TypeScript developers
Latest
File

Pagination

Pagination feature enhances data accessibility by enabling users to efficiently navigate through large datasets. The feature integrates seamlessly with the existing Lens find method, allowing for controlled data retrieval.

Specify a range of data to query

import { createLens } from "ldkit";
import { schema } from "ldkit/namespaces";

// Create a schema
const PersonSchema = {
  "@type": schema.Person,
  name: schema.name,
} as const;

// Create a lens instance
const Persons = createLens(PersonSchema);

await Persons.find({ take: 10 }); // returns first 10 persons or less
await Persons.find({ take: 10, skip: 10 }); // returns the next set of 10 persons
await Persons.find(); // returns the default set of 1000 persons maximum

Setting global defaults

For consistent pagination behavior across an application, you can define a global take default in the Context. This eliminates the need to repeatedly set take in each find call, streamlining the development process. The default value for take is 1000.

import { type Context, createLens, setDefaultContext } from "ldkit";

const context: Context = {
  sources: ["https://example.com/sparql"],
  take: 100, // set the default take value to 100
};

setDefaultContext(context);

const customContext: Context = {
  ...context,
  take: 10,
};

const First = createLens(FirstSchema); // will use the default context with take = 100
const Second = createLens(SecondSchema, customContext); // will use custom context with take = 10