UNPKG

@dappnode/dappnodesdk

Version:

dappnodesdk is a tool to make the creation of new dappnode packages as simple as possible. It helps to initialize and publish in ethereum blockchain

71 lines 2.54 kB
import { CliError } from "../params.js"; import { ReleaseUploaderIpfsNode } from "./ipfsNode/index.js"; import { ReleaseUploaderIpfsPinata } from "./pinata/index.js"; import { ReleaseUploaderSwarmNode } from "./swarmNode/index.js"; export * from "./interface.js"; export * from "./errors.js"; export function getReleaseUploader(provider) { switch (provider.network) { case "ipfs": switch (provider.type) { case "node": return new ReleaseUploaderIpfsNode(provider); case "pinata": return new ReleaseUploaderIpfsPinata(provider); default: throw new ErrorUnknownProvider(provider); } case "swarm": switch (provider.type) { case "node": return new ReleaseUploaderSwarmNode(provider); default: throw new ErrorUnknownProvider(provider); } default: throw new ErrorUnknownProvider(provider); } } class ErrorUnknownProvider extends CliError { constructor(provider) { super(`Provider not supported: ${provider.network} ${provider.type}`); } } /** * Normalize common CLI args into a structured ReleaseUploaderProvider type * @param param0 */ export function cliArgsToReleaseUploaderProvider({ uploadTo, contentProvider }) { switch (uploadTo) { case "ipfs": if (contentProvider === "pinata") { const { PINATA_API_KEY, PINATA_SECRET_API_KEY } = process.env; if (!PINATA_API_KEY) throw new CliError("Must provide PINATA_API_KEY"); if (!PINATA_SECRET_API_KEY) throw new CliError("Must provide PINATA_SECRET_API_KEY"); return { network: "ipfs", type: "pinata", apiKey: PINATA_API_KEY, secretApiKey: PINATA_SECRET_API_KEY }; } else { return { network: "ipfs", type: "node", ipfsProvider: contentProvider }; } case "swarm": return { network: "swarm", type: "node", swarmProvider: contentProvider }; default: throw new CliError(`Unknown upload_to value '${uploadTo}'`); } } //# sourceMappingURL=index.js.map