Skip to main content
The Hacker news plugin syncs data locally. Use corsair.hackernews.db.<entity>.search({ data, limit?, offset? }) with the filters listed per entity.

Items

Path: hackernews.db.items.search
const rows = await corsair.hackernews.db.items.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idnumberequals, gt, gte, lt, lte, in
bystringequals, contains, startsWith, endsWith, in
titlestringequals, contains, startsWith, endsWith, in
urlstringequals, contains, startsWith, endsWith, in
textstringequals, contains, startsWith, endsWith, in
scorenumberequals, gt, gte, lt, lte, in
timenumberequals, gt, gte, lt, lte, in
descendantsnumberequals, gt, gte, lt, lte, in
parentnumberequals, gt, gte, lt, lte, in
pollnumberequals, gt, gte, lt, lte, in
deadbooleanequals
deletedbooleanequals
createdAtdateequals, before, after, between
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.

Users

Path: hackernews.db.users.search
const rows = await corsair.hackernews.db.users.search({
    data: { /* filters below */ },
    limit: 100,
    offset: 0,
});

Searchable filters

FieldTypeOperators
entity_idstringequals, contains, startsWith, endsWith, in
idstringequals, contains, startsWith, endsWith, in
karmanumberequals, gt, gte, lt, lte, in
aboutstringequals, contains, startsWith, endsWith, in
creatednumberequals, gt, gte, lt, lte, in
createdAtdateequals, before, after, between
Every .search() also accepts limit and offset for pagination. .list() is available on the same path without the .search suffix in code — see database operations.