bgipfs
Version:
BuidlGuidl IPFS CLI
28 lines (27 loc) • 846 B
JavaScript
const COMMON_OWNED_KEYS = {
'Gateway.NoFetch': true,
'Routing.Type': 'dht',
};
export const getBgipfsIpfsConfigPolicy = (config, repoVersion) => {
const usesProvideConfig = repoVersion === undefined ? hasObject(config, 'Provide') || !hasObject(config, 'Reprovider') : repoVersion >= 18;
if (usesProvideConfig) {
return {
ownedKeys: {
'Provide.Strategy': 'pinned+entities',
...COMMON_OWNED_KEYS,
},
removedKeys: ['Reprovider'],
};
}
return {
ownedKeys: {
'Reprovider.Strategy': 'roots',
...COMMON_OWNED_KEYS,
},
removedKeys: [],
};
};
const hasObject = (config, key) => {
const value = config[key];
return Boolean(value && typeof value === 'object' && !Array.isArray(value));
};