create-dynamic-app
Version:
CLI tool to generate sample applications using Dynamic's web3 authentication
55 lines (48 loc) • 1.38 kB
text/typescript
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 = () => `
const webpack = require('webpack');
module.exports = function override(config, env) {
config.resolve.fallback = {
...config.resolve.fallback,
crypto: require.resolve('crypto-browserify'),
stream: require.resolve('stream-browserify'),
assert: require.resolve('assert'),
process: require.resolve('process/browser.js'),
};
config.plugins = [
...config.plugins,
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
process: 'process/browser.js',
}),
];
return config;
};
`
export const updatePackageJsonScripts = (packageJson: PackageJson) => {
packageJson.scripts = {
dev: "vite",
build: "tsc -b && vite build",
lint: "eslint .",
preview: "vite preview",
...packageJson.scripts,
}
return packageJson
}