Uecko_ERP/packages/rdx-criteria/src/utils.ts
2025-11-13 12:49:36 +01:00

30 lines
855 B
TypeScript

import type { FindOptions } from "sequelize";
// orderItem puede ser: ['campo', 'ASC'|'DESC']
// o [Sequelize.literal('score'), 'DESC']
// o [[{ model: X, as: 'alias' }, 'campo', 'ASC']] etc.
type OrderItem = any;
export function prependOrder(options: FindOptions, orderItem: OrderItem) {
if (!options.order) {
options.order = [orderItem];
return;
}
// Si viene como algo no-array (poco común), lo envolvemos
if (!Array.isArray(options.order)) {
options.order = [options.order as any];
}
(options.order as OrderItem[]).unshift(orderItem);
}
export function appendOrder(options: FindOptions, orderItem: OrderItem) {
if (!options.order) {
options.order = [orderItem];
return;
}
if (!Array.isArray(options.order)) {
options.order = [options.order as any];
}
(options.order as OrderItem[]).push(orderItem);
}