Skip to content

Commit 70681de

Browse files
authored
feat: allow overriding provider (#53)
1 parent 8b83a02 commit 70681de

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

src/synapse/service.ts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
type ProviderInfo,
44
RPC_URLS,
55
type StorageContext,
6+
type StorageServiceOptions,
67
Synapse,
78
type SynapseOptions,
89
} from '@filoz/synapse-sdk'
@@ -158,7 +159,12 @@ export async function createStorageContext(
158159
// The storage context manages the data set and provider interactions
159160
logger.info({ event: 'synapse.storage.create' }, 'Creating storage context')
160161

161-
const storage = await synapse.storage.createContext({
162+
// Optional override: allow selecting a specific provider via env vars
163+
const envProviderAddress = process.env.PROVIDER_ADDRESS?.trim()
164+
const envProviderIdRaw = process.env.PROVIDER_ID?.trim()
165+
const envProviderId = envProviderIdRaw != null && envProviderIdRaw !== '' ? Number(envProviderIdRaw) : undefined
166+
167+
const createOptions: StorageServiceOptions = {
162168
...DEFAULT_STORAGE_CONTEXT_CONFIG,
163169
// Callbacks provide visibility into the storage lifecycle
164170
// These are crucial for debugging and monitoring in production
@@ -227,7 +233,24 @@ export async function createStorageContext(
227233
)
228234
},
229235
},
230-
})
236+
}
237+
238+
// Apply provider override if present
239+
if (envProviderAddress) {
240+
createOptions.providerAddress = envProviderAddress
241+
logger.info(
242+
{ event: 'synapse.storage.provider_override', by: 'env', providerAddress: envProviderAddress },
243+
'Overriding provider via PROVIDER_ADDRESS'
244+
)
245+
} else if (envProviderId != null && Number.isFinite(envProviderId)) {
246+
createOptions.providerId = envProviderId
247+
logger.info(
248+
{ event: 'synapse.storage.provider_override', by: 'env', providerId: envProviderId },
249+
'Overriding provider via PROVIDER_ID'
250+
)
251+
}
252+
253+
const storage = await synapse.storage.createContext(createOptions)
231254

232255
logger.info(
233256
{

0 commit comments

Comments
 (0)