Notwithstanding Previous Misdemeanors
    Have ideas to improve npm?Join in the discussion! »

    @writetome51/abstract-big-dataset-paginator
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.0 • Public • Published

    AbstractBigDatasetPaginator

    An abstract TypeScript/Javascript class intended for pagination where all the data
    to be paginated can't be loaded in memory at once. Instead of only requesting one
    page of data at-a-time from the data source, the paginator has the option of
    requesting multiple pages of data to make requests more efficient. You configure
    this with the functions setItemsPerPage() and setItemsPerLoad(). (A load is
    either the total number of items you want the app to have in memory at once, or
    the total number of items your data source is willing to give you at once ––
    whichever is less.)

    A subclass must pass a __setup() function to this class' constructor (__setup()
    becomes a private method to give it access to this class' private properties). The only
    requirement for __setup() is the properties __pageInfo, __loadInfo, and
    __loadedPage must be assigned values inside it.

    Constructor

    view constructor
    constructor(
        __setup: (...args) => void,
        setupArgs? = []
    )

    Private Properties you must know about

    view properties
    // These 3 properties must be assigned values inside 'this.__setup()' 
    // (see constructor).
    
    __pageInfo: {
        setItemsPerPage: (num) => void;
        getItemsPerPage: () => number;
        getTotalPages: () => number;
    }
    
    __loadInfo: {
        setItemsPerLoad: (num) => void;
        getItemsPerLoad: () => number;
    }
    
    __loadedPage: {
        get: () => any[];
        set: (pageNumber) => Promise<void>;
        
        // 'reset' must reload page data from the source
        reset: (pageNumber) => Promise<void>;
        getNumber: () => number;
    }

    Methods

    view methods
    setItemsPerLoad(num): void
    
    getItemsPerLoad(): number
    
    setItemsPerPage(num): void
    
    getItemsPerPage(): number
    
    getTotalPages(): number
    
    setCurrentPageNumber(num, option? = {reload: false}): Promise<void>
        // Set 'option.reload' to true if page data must be reloaded from the source
    
    getCurrentPageNumber(): number
    
    getCurrentPage(): any[]

    Installation

    npm i @writetome51/abstract-big-dataset-paginator

    Loading

    import { AbstractBigDatasetPaginator } from '@writetome51/abstract-big-dataset-paginator';

    License

    MIT

    Install

    npm i @writetome51/abstract-big-dataset-paginator

    DownloadsWeekly Downloads

    1

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    8.13 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar