@nosana/kit
Version:
Nosana KIT
46 lines • 1.54 kB
JavaScript
import { NosanaNetwork } from '@nosana/types';
import { DEFAULT_CONFIGS } from './defaultConfigs.js';
import { ErrorCodes, NosanaError } from '../errors/NosanaError.js';
const mergeConfigs = (defaultConfig, customConfig) => {
if (!customConfig)
return defaultConfig;
return {
...defaultConfig,
...customConfig,
solana: {
...defaultConfig.solana,
...customConfig.solana,
},
ipfs: {
...defaultConfig.ipfs,
...customConfig.ipfs,
},
api: customConfig.api
? {
...defaultConfig.api,
...customConfig.api,
}
: defaultConfig.api,
};
};
export const getNosanaConfig = (network = NosanaNetwork.MAINNET, config) => {
const defaultConfig = DEFAULT_CONFIGS[network];
if (!defaultConfig) {
throw new NosanaError(`Unsupported Nosana network: ${network}`, ErrorCodes.INVALID_NETWORK);
}
return mergeConfigs(defaultConfig, config);
};
// Example: Initialize with default (Mainnet) or specific network, or custom config
// const defaultConfig = getNosanaConfig();
// const devConfig = getNosanaConfig(NosanaNetwork.DEVNET);
// const customConfig = getNosanaConfig(NosanaNetwork.MAINNET, {
// solana: {
// rpcEndpoint: 'your-custom-rpc-endpoint-url',
// },
// ipfs: {
// jwt: 'your-custom-jwt-token',
// gateway: 'https://your-custom-gateway.com/ipfs/',
// },
// logLevel: 'debug',
// });
//# sourceMappingURL=utils.js.map