Rocky_Mountain_Vending/.pnpm-store/v10/files/94/23eb7e7fc56253ec7fe8ba7cf9687b49d2574f1f6e97f1e46bc5730cd89e87212e584e59dc18bed6a328318599d1e23e9a90674cd8626145d86bd8106b09f8-exec
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

60 lines
1.6 KiB
Text
Executable file

export class Sorter<T> {
/**
* An array of the topologically sorted nodes. This list is renewed upon each call to topo.add().
*/
nodes: T[];
/**
* Adds a node or list of nodes to be added and topologically sorted
*
* @param nodes - A mixed value or array of mixed values to be added as nodes to the topologically sorted list.
* @param options - Optional sorting information about the nodes.
*
* @returns Returns an array of the topologically sorted nodes.
*/
add(nodes: T | T[], options?: Options): T[];
/**
* Merges another Sorter object into the current object.
*
* @param others - The other object or array of objects to be merged into the current one.
*
* @returns Returns an array of the topologically sorted nodes.
*/
merge(others: Sorter<T> | Sorter<T>[]): T[];
/**
* Sorts the nodes array (only required if the manual option is used when adding items)
*/
sort(): T[];
}
export interface Options {
/**
* The sorting group the added items belong to
*/
readonly group?: string;
/**
* The group or groups the added items must come before
*/
readonly before?: string | string[];
/**
* The group or groups the added items must come after
*/
readonly after?: string | string[];
/**
* A number used to sort items with equal before/after requirements
*/
readonly sort?: number;
/**
* If true, the array is not sorted automatically until sort() is called
*/
readonly manual?: boolean;
}