Summary
Fail fast when GuildPassClient is constructed with invalid configuration values.
Current Behaviour
GuildPassClient merges user config with defaults, but does not validate values such as apiUrl or timeoutMs. Invalid configuration can cause confusing runtime errors later, often inside HttpClient or fetch.
Expected Behaviour
Invalid client configuration should throw a clear GuildPassError during construction.
Suggested Implementation
Add a config validation helper that checks required and optional values. At minimum, validate that apiUrl is a non-empty absolute URL and timeoutMs, when provided, is a positive number.
Files or Areas Likely Affected
src/client/GuildPassClient.ts
src/config/sdkConfig.ts
src/errors/errorCodes.ts
tests/client.test.ts
Acceptance Criteria
Additional Notes
Avoid restricting chainId to the current SUPPORTED_NETWORKS list unless maintainers confirm that unsupported chains should be rejected.
Summary
Fail fast when
GuildPassClientis constructed with invalid configuration values.Current Behaviour
GuildPassClientmerges user config with defaults, but does not validate values such asapiUrlortimeoutMs. Invalid configuration can cause confusing runtime errors later, often insideHttpClientorfetch.Expected Behaviour
Invalid client configuration should throw a clear
GuildPassErrorduring construction.Suggested Implementation
Add a config validation helper that checks required and optional values. At minimum, validate that
apiUrlis a non-empty absolute URL andtimeoutMs, when provided, is a positive number.Files or Areas Likely Affected
src/client/GuildPassClient.tssrc/config/sdkConfig.tssrc/errors/errorCodes.tstests/client.test.tsAcceptance Criteria
apiUrlthrows a clear SDK errortimeoutMsvalues throw a clear SDK errorAdditional Notes
Avoid restricting
chainIdto the currentSUPPORTED_NETWORKSlist unless maintainers confirm that unsupported chains should be rejected.