Class: QueryBuilder<T, Listing, Relationships, Attributes>
Defined in: schemas/v2/query.ts:111
Type Parameters
T
T extends Type
Listing
Listing extends boolean
Relationships
Relationships extends RelationshipFields<T> = never
Attributes
Attributes extends RelationshipMap<T, Relationships> = { }
Constructors
Constructor
new QueryBuilder<
T,Listing,Relationships,Attributes>(resource,isListing):QueryBuilder<T,Listing,Relationships,Attributes>
Defined in: schemas/v2/query.ts:134
Parameters
resource
T
The main resource that this query is for.
isListing
Listing
Whether this query is for listing the resource or only for for getting a single item of the resource.
Returns
QueryBuilder<T, Listing, Relationships, Attributes>
Properties
_payload_type
readonly_payload_type:RequestPayload<T,Relationships,Attributes,Listing>
Defined in: schemas/v2/query.ts:132
The type to use for extracting the payload type.
Do not use as the actual payload as it is an empty string and will not contain the actual payload.
requestOptions
requestOptions:
undefined|QueryRequestOptions=undefined
Defined in: schemas/v2/query.ts:121
The options for the request, e.g. pagination and sorting.
resource
readonlyresource:T
Defined in: schemas/v2/query.ts:138
The main resource that this query is for.
Accessors
attributes
Get Signature
get attributes():
Attributes
Defined in: schemas/v2/query.ts:186
The attributes configured for this query.
Returns
Attributes
build
Get Signature
get build(): <
Includes>(include?) => <Attributes>(attributes?,options?) =>QueryBuilder<T,Listing,Includes,Attributes>
Defined in: schemas/v2/query.ts:367
Deprecated
This will be removed some time after buildQuery has been removed
Returns
<
Includes>(include?): <Attributes>(attributes?,options?) =>QueryBuilder<T,Listing,Includes,Attributes>
Type Parameters
Includes
Includes extends never = never
Parameters
include?
Includes[]
Returns
<
Attributes>(attributes?,options?):QueryBuilder<T,Listing,Includes,Attributes>
Type Parameters
Attributes
Attributes extends RelationshipMap<T, Includes>
Parameters
attributes?
Attributes
options?
Returns
QueryBuilder<T, Listing, Includes, Attributes>
params
Get Signature
get params():
URLSearchParams
Defined in: schemas/v2/query.ts:163
The raw search params. Use query for the stringified params.
Returns
URLSearchParams
query
Get Signature
get query():
string
Defined in: schemas/v2/query.ts:179
The actual encoded query string.
Example
`'?fields%5Buser%5D=url%2Cname'`Returns
string
relationships
Get Signature
get relationships():
Relationships[]
Defined in: schemas/v2/query.ts:193
The relationships configured for this query.
Returns
Relationships[]
resourceAttributes
Get Signature
get resourceAttributes():
Attributes[T]
Defined in: schemas/v2/query.ts:201
The attributes configured for this query on the main resource. For a campaign query, this will be the campaign attributes of the query.
Returns
Attributes[T]
schemaRelationships
Get Signature
get schemaRelationships(): readonly
RelationshipFields<T>[]
Defined in: schemas/v2/query.ts:209
The relationships that can be defined on this resource. In the Patreon documentation, see the list of relations on a resource.
Returns
readonly RelationshipFields<T>[]
schemaResourceAttributes
Get Signature
get schemaResourceAttributes(): readonly keyof
ItemMap[T][]
Defined in: schemas/v2/query.ts:217
The attributes that can be defined for this resource. In the Patreon documentation, see the list of properties on a resource.
Returns
readonly keyof ItemMap[T][]
campaign
Get Signature
get
staticcampaign():QueryBuilder<Campaign,false,never, { }>
Defined in: schemas/v2/query.ts:325
Returns
QueryBuilder<Campaign, false, never, { }>
campaignMembers
Get Signature
get
staticcampaignMembers():QueryBuilder<Member,true,never, { }>
Defined in: schemas/v2/query.ts:329
Returns
QueryBuilder<Member, true, never, { }>
campaignPosts
Get Signature
get
staticcampaignPosts():QueryBuilder<Post,true,never, { }>
Defined in: schemas/v2/query.ts:333
Returns
QueryBuilder<Post, true, never, { }>
campaigns
Get Signature
get
staticcampaigns():QueryBuilder<Campaign,true,never, { }>
Defined in: schemas/v2/query.ts:337
Returns
QueryBuilder<Campaign, true, never, { }>
identity
Get Signature
get
staticidentity():QueryBuilder<User,false,never, { }>
Defined in: schemas/v2/query.ts:341
Returns
QueryBuilder<User, false, never, { }>
member
Get Signature
get
staticmember():QueryBuilder<Member,false,never, { }>
Defined in: schemas/v2/query.ts:345
Returns
QueryBuilder<Member, false, never, { }>
post
Get Signature
get
staticpost():QueryBuilder<Post,false,never, { }>
Defined in: schemas/v2/query.ts:349
Returns
QueryBuilder<Post, false, never, { }>
webhooks
Get Signature
get
staticwebhooks():QueryBuilder<Webhook,true,never, { }>
Defined in: schemas/v2/query.ts:353
Returns
QueryBuilder<Webhook, true, never, { }>
Methods
addRelationshipAttributes()
addRelationshipAttributes<
R,A>(relationship,attributes):QueryBuilder<T,Listing,Relationships|R,Attributes& { [Item in never]: (Attributes extends { [K in never]: any } ? Attributes<Attributes>[RelationshipFieldToFieldType<T, R>][number] | A[number] : A[number])[] }>
Defined in: schemas/v2/query.ts:280
Type Parameters
R
R extends never
A
A extends keyof ItemMap[RelationshipFieldToFieldType<T, R>][]
Parameters
relationship
R
attributes
A
Returns
QueryBuilder<T, Listing, Relationships | R, Attributes & { [Item in never]: (Attributes extends { [K in never]: any } ? Attributes<Attributes>[RelationshipFieldToFieldType<T, R>][number] | A[number] : A[number])[] }>
addRelationships()
addRelationships<
R>(relationships):QueryBuilder<T,Listing,Relationships|R,Attributes>
Defined in: schemas/v2/query.ts:268
Type Parameters
R
R extends never
Parameters
relationships
R[]
Returns
QueryBuilder<T, Listing, Relationships | R, Attributes>
attributesFor()
attributesFor<
R>(relationship):undefined|Attributes[RelationshipFieldToFieldType<T,R>]
Defined in: schemas/v2/query.ts:227
Gets the attributes configured for a relationship
Type Parameters
R
R extends never
Parameters
relationship
R
The name of the relationship
Returns
undefined | Attributes[RelationshipFieldToFieldType<T, R>]
The attributes, or undefined for no attributes
Throws
When using an invalid relationship for the current resource
includeAll()
includeAll():
QueryBuilder<T,Listing,RelationshipFields<T>,Required<RelationshipMap<T,RelationshipFields<T>>>>
Defined in: schemas/v2/query.ts:250
Returns
QueryBuilder<T, Listing, RelationshipFields<T>, Required<RelationshipMap<T, RelationshipFields<T>>>>
includeAllRelationships()
includeAllRelationships():
QueryBuilder<T,Listing,RelationshipFields<T>,Attributes>
Defined in: schemas/v2/query.ts:242
Returns
QueryBuilder<T, Listing, RelationshipFields<T>, Attributes>
setAttributes()
setAttributes<
A>(attributes):QueryBuilder<T,Listing,Relationships,A>
Defined in: schemas/v2/query.ts:259
Type Parameters
A
A extends RelationshipMap<T, Relationships>
Parameters
attributes
A
Returns
QueryBuilder<T, Listing, Relationships, A>
setRelationshipAttributes()
setRelationshipAttributes<
R,A>(relationship,attributes):QueryBuilder<T,Listing,Relationships|R,Attributesextends{ [K in never]: unknown }?Omit<Attributes<Attributes>,`${RelationshipFieldToFieldType<T, R>}`> :Attributes&{ [K in never]: A }>
Defined in: schemas/v2/query.ts:306
Type Parameters
R
R extends never
A
A extends keyof ItemMap[RelationshipFieldToFieldType<T, R>][]
Parameters
relationship
R
attributes
A
Returns
QueryBuilder<T, Listing, Relationships | R, Attributes extends { [K in never]: unknown } ? Omit<Attributes<Attributes>, `${RelationshipFieldToFieldType<T, R>}`> : Attributes & { [K in never]: A }>
setRelationships()
setRelationships<
R>(relationships):QueryBuilder<T,Listing,R,Attributes>
Defined in: schemas/v2/query.ts:274
Type Parameters
R
R extends never
Parameters
relationships
R[]
Returns
QueryBuilder<T, Listing, R, Attributes>
setRequestOptions()
setRequestOptions(
options):this
Defined in: schemas/v2/query.ts:236
Set the request options for this query
Parameters
options
The options for pagination, sorting, etc
Returns
this
convertRelationToType()
staticconvertRelationToType<T,R>(type,relation):RelationshipFieldToFieldType<T,R>
Defined in: schemas/v2/query.ts:411
Convert a relationship name to a resource name
Type Parameters
T
T extends "address" | "benefit" | "campaign" | "client" | "deliverable" | "goal" | "media" | "member" | "post" | "pledge-event" | "tier" | "user" | "webhook"
R
R extends never
Parameters
type
T
The resource that holds the relationship
relation
R
The name of the relationship to find the resource name of
Returns
RelationshipFieldToFieldType<T, R>
Throws
When using an invalid type
convertTypeToRelation()
staticconvertTypeToRelation<T,R>(type,relationType):RelationshipTypeToRelationshipField<T,R>
Defined in: schemas/v2/query.ts:424
Convert a relation resource name to a relationship name
Type Parameters
T
T extends "address" | "benefit" | "campaign" | "client" | "deliverable" | "goal" | "media" | "member" | "post" | "pledge-event" | "tier" | "user" | "webhook"
R
R extends never
Parameters
type
T
The resource that holds the relationship
relationType
R
The resource name of the relationship to find the relationship name of
Returns
RelationshipTypeToRelationshipField<T, R>
Throws
When using an invalid type or unknown relation type
createCompleteOptions()
staticcreateCompleteOptions<T>(resource):object
Defined in: schemas/v2/query.ts:362
Get all options that can be included in a query
Type Parameters
T
T extends Type
Parameters
resource
T
The resource to get the options for
Returns
object
the relationship names in include and the attributes in attributes
attributes
attributes:
RelationshipMap<T,RelationshipFields<T>>
include
include:
RelationshipFields<T>[]
createFunctionBuilder()
staticcreateFunctionBuilder<T,Listing>(builder): <Includes>(include?) => <Attributes>(attributes?,options?) =>QueryBuilder<T,Listing,Includes,Attributes>
Defined in: schemas/v2/query.ts:378
Create a function builder from a query builder.
This is to support the legacy buildQuery.
Type Parameters
T
T extends Type
Listing
Listing extends boolean
Parameters
builder
QueryBuilder<T, Listing>
The query builder to convert
Returns
<
Includes>(include?): <Attributes>(attributes?,options?) =>QueryBuilder<T,Listing,Includes,Attributes>
Type Parameters
Includes
Includes extends never = never
Parameters
include?
Includes[]
Returns
<
Attributes>(attributes?,options?):QueryBuilder<T,Listing,Includes,Attributes>
Type Parameters
Attributes
Attributes extends RelationshipMap<T, Includes>
Parameters
attributes?
Attributes
options?
Returns
QueryBuilder<T, Listing, Includes, Attributes>
Deprecated
createRelationMap()
staticcreateRelationMap<T>(type):{ [R in never]: RelationshipFieldToFieldType<T, R> }
Defined in: schemas/v2/query.ts:399
Create a record to convert relation names to resources.
Type Parameters
T
T extends "address" | "benefit" | "campaign" | "client" | "deliverable" | "goal" | "media" | "member" | "post" | "pledge-event" | "tier" | "user" | "webhook"
Parameters
type
T
The resource to create the map for
Returns
{ [R in never]: RelationshipFieldToFieldType<T, R> }
Throws
When using an invalid type
fromParams()
staticfromParams<Q>(params):Q
Defined in: schemas/v2/query.ts:435
Type Parameters
Q
Q extends BasePatreonQueryType<Type, boolean>
Parameters
params
URLSearchParams
Returns
Q