mirror of https://github.com/nocodb/nocodb
Pranav C
2 years ago
4 changed files with 45 additions and 32 deletions
@ -0,0 +1,39 @@
|
||||
const config = { |
||||
limitDefault: Math.max(+process.env.DB_QUERY_LIMIT_DEFAULT || 25, 1), |
||||
limitMin: Math.max(+process.env.DB_QUERY_LIMIT_MIN || 1, 1), |
||||
limitMax: Math.max(+process.env.DB_QUERY_LIMIT_MAX || 1000, 1), |
||||
}; |
||||
|
||||
export function extractLimitAndOffset( |
||||
args: { |
||||
limit?: number | string; |
||||
offset?: number | string; |
||||
l?: number | string; |
||||
o?: number | string; |
||||
} = {}, |
||||
) { |
||||
const obj: { |
||||
limit?: number; |
||||
offset?: number; |
||||
} = {}; |
||||
|
||||
// use default value if invalid limit
|
||||
// for example, if limit is not a number, it will be ignored
|
||||
// if limit is less than 1, it will be ignored
|
||||
const limit = +(args.limit || args.l); |
||||
obj.limit = Math.max( |
||||
Math.min( |
||||
limit && limit > 0 && Number.isInteger(limit) |
||||
? limit |
||||
: config.limitDefault, |
||||
config.limitMax, |
||||
), |
||||
config.limitMin, |
||||
); |
||||
|
||||
// skip any invalid offset, ignore negative and non-integer values
|
||||
const offset = +(args.offset || args.o) || 0; |
||||
obj.offset = Math.max(Number.isInteger(offset) ? offset : 0, 0); |
||||
|
||||
return obj; |
||||
} |
Loading…
Reference in new issue