UNPKG

create-dynamic-app

Version:

CLI tool to generate sample applications using Dynamic's web3 authentication

65 lines (56 loc) 1.59 kB
import type { PackageJson } from "../types" export const addSolanaDependencies = (packageJson: PackageJson) => { packageJson.dependencies["crypto-browserify"] = "^3.12.0" packageJson.dependencies["stream-browserify"] = "^3.0.0" packageJson.dependencies["process"] = "^0.11.10" // Add the browser field packageJson.browser = { ...packageJson.browser, crypto: false, } // Add the solana overrides packageJson.overrides = { ...(packageJson.overrides ?? {}), "rpc-websockets": "7.10.0", "@solana/web3.js": "1.91.6", } return packageJson } export const createConfigOverrides = () => { return ` const webpack = require('webpack'); module.exports = { webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => { config.externals.push("pino-pretty", "lokijs", "encoding"); config.resolve.fallback = { ...config.resolve.fallback, crypto: require.resolve('crypto-browserify'), stream: require.resolve('stream-browserify'), assert: require.resolve('assert'), process: false, }; config.plugins.push( new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], process: 'process/browser', }) ); return config; }, }; ` } export const updatePackageJsonScripts = (packageJson: PackageJson) => { return packageJson } export const createNonSolanaConfig = () => { return ` /** @type {import('next').NextConfig} */ const nextConfig = { webpack: (config) => { config.externals.push("pino-pretty", "lokijs", "encoding"); return config; }, }; module.exports = nextConfig;` }