@seasketch/geoprocessing
Version:
Geoprocessing and reporting framework for SeaSketch 2.0
33 lines • 1.04 kB
JavaScript
import { paginateScan, } from "@aws-sdk/lib-dynamodb";
export function scanTasks(
/** DynamoDB Document client */
docClient,
/** Task table name */
tableName,
/** Optional serviceName to filter by */
serviceName) {
// Get all task keys.
const paginatorConfig = {
client: docClient,
pageSize: 25,
};
let query = {
TableName: tableName,
ProjectionExpression: "id, service",
};
if (serviceName && serviceName !== "all") {
query = {
TableName: tableName,
ProjectionExpression: "id, service",
FilterExpression: "service = :serviceName OR begins_with(service, :serviceNameChunked)",
ExpressionAttributeValues: {
":serviceName": serviceName,
":serviceNameChunked": `${serviceName}-chunk`,
},
};
}
// Pager will return a variable number of items, up to 1MB of data
const pager = paginateScan(paginatorConfig, query);
return pager;
}
//# sourceMappingURL=scanTasks.js.map