feat!: @rudder/sdk 0.1.0: createClient, idempotent modules.call retries, storage save(type, data), drop resources and projectStorage

This commit is contained in:
edmand46
2026-09-17 15:26:42 +03:00
parent c25b1c2c61
commit 1e4e0d928d
35 changed files with 474 additions and 467 deletions
+6
View File
@@ -0,0 +1,6 @@
{"slug":"leaderboards","version":"5.0.0","functions":{
"submit":{"trigger":"client","input":{"type":"object","required":["slug","score"],"properties":{"slug":{"type":"string"},"score":{"type":"integer"},"mode":{"type":"string","enum":["best","last"]}}},
"output":{"type":"object","required":["rank"],"properties":{"rank":{"type":"integer"}}},"errors":["leaderboard_not_found"]},
"top":{"trigger":"client","input":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"limit":{"type":"integer"}}},
"output":{"type":"object","required":["entries"],"properties":{"entries":{"type":"array","items":{"type":"object","required":["playerId","score"],"properties":{"playerId":{"type":"string"},"score":{"type":"number"}}}}}}},
"reset":{"trigger":"schedule"}}}
+77
View File
@@ -0,0 +1,77 @@
// Code generated by rudder client generate. DO NOT EDIT.
//
// Modules:
// leaderboards@5.0.0
export interface RudderModuleCaller {
modules: {
call<T>(module: string, fn: string, args: unknown, options?: { moduleVersion?: string }): Promise<T>
}
}
export type RudderKernelError =
| "call_depth_exceeded"
| "conflict"
| "counter_only_increment"
| "dependency_not_declared"
| "forbidden"
| "function_not_callable"
| "function_not_found"
| "insufficient_funds"
| "internal"
| "invalid_parameters"
| "module_not_installed"
| "player_not_found"
| "player_required"
| "reserved_event"
| "resource_invalid_field"
| "resource_invalid_ref"
| "resource_not_found"
| "row_not_found"
| "row_referenced"
| "storage_key_limit_exceeded"
| "unique_violation"
| "unknown_operation"
| "version_conflict"
export interface LeaderboardsSubmitArgs {
mode?: "best" | "last"
score: number
slug: string
}
export interface LeaderboardsSubmitResult {
rank: number
}
export type LeaderboardsSubmitError =
| RudderKernelError
| "leaderboard_not_found"
export interface LeaderboardsTopArgs {
limit?: number
slug: string
}
export interface LeaderboardsTopResultEntriesItem {
playerId: string
score: number
}
export interface LeaderboardsTopResult {
entries: Array<LeaderboardsTopResultEntriesItem>
}
export type LeaderboardsTopError =
| RudderKernelError
export function modules(client: RudderModuleCaller) {
return {
leaderboards: {
submit: (args: LeaderboardsSubmitArgs) =>
client.modules.call<LeaderboardsSubmitResult>("leaderboards", "submit", args, { moduleVersion: "5.0.0" }),
top: (args: LeaderboardsTopArgs) =>
client.modules.call<LeaderboardsTopResult>("leaderboards", "top", args, { moduleVersion: "5.0.0" }),
},
}
}