diff --git a/.gitignore b/.gitignore index a7a6932a5..7ac22e0f8 100644 --- a/.gitignore +++ b/.gitignore @@ -114,3 +114,6 @@ typings/ # TernJS port file .tern-port workspace.code-workspace + +# turbo +.turbo diff --git a/package.json b/package.json index be486008f..157b5ba3f 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "email": "clemens@bitcoincomputer.io" }, "private": true, + "packageManager": "npm@10.2.4", "workspaces": [ "packages/*" ], @@ -32,7 +33,8 @@ "check-obfuscation": "./scripts/check-obfuscation.sh", "husky-checks": "./scripts/husky-checks.sh", "prepare": "husky install", - "prepublishOnly": "./scripts/check-obfuscation.sh" + "prepublishOnly": "./scripts/check-obfuscation.sh", + "build-all-packages": "turbo run build" }, "dependencies": { "@endo/static-module-record": "^1.0.4" @@ -49,6 +51,7 @@ "husky": "^9.0.11", "path": "^0.12.7", "ts-node": "^10.9.2", + "turbo": "^2.1.3", "typescript": "^4.9.5", "url": "^0.11.3" } diff --git a/packages/TBC20/package.json b/packages/TBC20/package.json index 4435b3535..160def1ca 100644 --- a/packages/TBC20/package.json +++ b/packages/TBC20/package.json @@ -19,6 +19,7 @@ }, "scripts": { "build": "rm -rf build && tsc -p tsconfig.release.json", + "build-turbo": "turbo run build", "build:watch": "tsc -w -p tsconfig.release.json", "clean": "rimraf coverage build tmp", "clean-logs": "rm -f *.log 2> /dev/null", @@ -27,7 +28,7 @@ "prebuild": "npm run lint", "start": "node build/src/main.js", "prettier": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,scss,md}\"", - "types": "tsc", + "types": "tsc --noEmit", "test": "mocha --config .mocharc.json", "test-and-show": "npm run test 2>&1 | tee TBC20-test.log && open TBC20-test.log" }, diff --git a/packages/TBC721/package.json b/packages/TBC721/package.json index 0fc4e04de..8a4663173 100644 --- a/packages/TBC721/package.json +++ b/packages/TBC721/package.json @@ -8,6 +8,7 @@ "types": "./build/src/index.d.ts", "scripts": { "build": "rm -rf build && tsc -p tsconfig.release.json", + "build-turbo": "turbo run build", "build:watch": "tsc -w -p tsconfig.release.json", "clean": "rimraf coverage build tmp", "clean-logs": "rm -f *.log 2> /dev/null", diff --git a/packages/chat/package.json b/packages/chat/package.json index 82bffa0d1..25a79b81e 100644 --- a/packages/chat/package.json +++ b/packages/chat/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "vite", "build": "tsc -b && vite build", + "build-turbo": "turbo run build", "lint": "eslint .", "preview": "vite preview", "test": "vitest run", diff --git a/packages/components/package.json b/packages/components/package.json index fbc2a7dd0..8b8f4f91f 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -8,6 +8,7 @@ "tsc-compile": "rm -rf built/* && tsc", "install-monorepo": "cd ../../../ && npm run delete-node-modules && npm install && cd monorepo/packages/components", "build": "npm run tsc-compile", + "build-turbo": "turbo run build", "lint": "eslint --fix . --ext .ts,.tsx --ignore-pattern built/", "lint-fix": "eslint src --fix", "prettier": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,scss,md}\"", diff --git a/packages/cra-template/package.json b/packages/cra-template/package.json index 893b6166c..1ce36c4a2 100644 --- a/packages/cra-template/package.json +++ b/packages/cra-template/package.json @@ -37,7 +37,6 @@ "scripts": { "start": "react-scripts start", "deploy": "node --experimental-modules scripts/deploy.mjs", - "build": "react-scripts build", "eject": "react-scripts eject", "lint": "eslint src", "lint-fix": "eslint src --fix", diff --git a/packages/explorer/package.json b/packages/explorer/package.json index 3462c206c..b06204d20 100644 --- a/packages/explorer/package.json +++ b/packages/explorer/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "vite", "build": "tsc -b && vite build", + "build-turbo": "turbo run build", "lint": "eslint .", "preview": "vite preview", "test": "vitest run", diff --git a/packages/explorer/src/components/Block.tsx b/packages/explorer/src/components/Block.tsx index cec1c39f2..f31e45bcf 100644 --- a/packages/explorer/src/components/Block.tsx +++ b/packages/explorer/src/components/Block.tsx @@ -1,6 +1,6 @@ -import { useContext, useEffect, useState } from 'react' -import { Link, useLocation, useNavigate, useParams } from 'react-router-dom' -import { ComputerContext, UtilsContext } from '@bitcoin-computer/components' +import { useContext, useEffect, useState } from "react" +import { Link, useLocation, useNavigate, useParams } from "react-router-dom" +import { ComputerContext, UtilsContext } from "@bitcoin-computer/components" function Block() { const navigate = useNavigate() @@ -8,19 +8,19 @@ function Block() { const params = useParams() const computer = useContext(ComputerContext) const [block] = useState(params.block) - const [blockData, setBlockData] = useState(null) + const [blockData, setBlockData] = useState(null) const { showSnackBar, showLoader } = UtilsContext.useUtilsComponents() useEffect(() => { const fetch = async () => { try { showLoader(true) - const res = await computer.rpcCall('getblock', `${block} 2`) + const res = await computer.rpcCall("getblock", `${block} 2`) setBlockData(res.result) showLoader(false) } catch { showLoader(false) - showSnackBar('Error getting block', false) + showSnackBar("Error getting block", false) } } fetch() diff --git a/packages/nakamotojs/package.json b/packages/nakamotojs/package.json index 96d398ac0..67f74725f 100644 --- a/packages/nakamotojs/package.json +++ b/packages/nakamotojs/package.json @@ -20,6 +20,7 @@ "scripts": { "audit": "better-npm-audit audit -l high", "build": "npm run clean && tsc -p ./tsconfig.json && npm run formatjs", + "build-turbo": "turbo run build", "build:tests": "npm run clean:jstests && tsc -p ./test/tsconfig.json", "clean": "rimraf src", "clean:jstests": "rimraf 'test/**/!(ts-node-register)*.js'", diff --git a/packages/nft/package.json b/packages/nft/package.json index bfe3ca122..797161899 100644 --- a/packages/nft/package.json +++ b/packages/nft/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "vite", "build": "tsc -b && vite build", + "build-turbo": "turbo run build", "lint": "eslint .", "preview": "vite preview", "test": "vitest run", diff --git a/packages/nodejs-template/package.json b/packages/nodejs-template/package.json index b751b0bd4..fb4092d3d 100644 --- a/packages/nodejs-template/package.json +++ b/packages/nodejs-template/package.json @@ -4,6 +4,7 @@ "description": "Minimalistic boilerplate to quick-start Bitcoin Computer development.", "scripts": { "build": "tsc -p tsconfig.release.json", + "build-turbo": "turbo run build", "clean-logs": "rm -f *.log 2> /dev/null", "lint": "eslint --fix . --ext .ts,.tsx", "prebuild": "npm run lint", diff --git a/packages/swap/build/src/list.d.ts b/packages/swap/build/src/list.d.ts index c814a8609..cfb6d74d1 100644 --- a/packages/swap/build/src/list.d.ts +++ b/packages/swap/build/src/list.d.ts @@ -1,4 +1,3 @@ -declare const Contract: typeof import("@bitcoin-computer/lib/computer").Contract; export declare class List extends Contract { elements: string[]; constructor(); @@ -11,4 +10,3 @@ export declare class ListHelper { constructor(computer: any, mod?: string); deploy(): Promise; } -export {}; diff --git a/packages/swap/build/src/list.js b/packages/swap/build/src/list.js index 857963ab2..70ed8a36c 100644 --- a/packages/swap/build/src/list.js +++ b/packages/swap/build/src/list.js @@ -1,4 +1,3 @@ -const { Contract } = await import('@bitcoin-computer/lib'); export class List extends Contract { constructor() { super({ elements: [] }); diff --git a/packages/swap/package.json b/packages/swap/package.json index c1108098d..068c5100b 100644 --- a/packages/swap/package.json +++ b/packages/swap/package.json @@ -8,6 +8,7 @@ "start": "node build/src/main.js", "prebuild": "npm run lint", "build": "rm -rf build && tsc -p tsconfig.release.json", + "build-turbo": "turbo run build", "lint": "eslint . --ext .ts,.tsx --ignore-pattern build/", "lint-fix": "eslint --fix . --ext .ts,.tsx --ignore-pattern build/", "test": "mocha --config .mocharc.json", diff --git a/packages/swap/src/list.ts b/packages/swap/src/list.ts index 60bae577a..4d13d20db 100644 --- a/packages/swap/src/list.ts +++ b/packages/swap/src/list.ts @@ -1,5 +1,4 @@ /* eslint-disable max-classes-per-file */ -const { Contract } = await import('@bitcoin-computer/lib') export class List extends Contract { elements: string[] diff --git a/packages/vite-template/package.json b/packages/vite-template/package.json index e2b668531..03674af95 100644 --- a/packages/vite-template/package.json +++ b/packages/vite-template/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "vite", "build": "tsc -b && vite build", + "build-turbo": "turbo run build", "lint": "eslint .", "preview": "vite preview", "deploy": "node --loader ts-node/esm ./scripts/deploy.ts", diff --git a/packages/wallet/package.json b/packages/wallet/package.json index 7f33d7794..c1ef4e4ea 100644 --- a/packages/wallet/package.json +++ b/packages/wallet/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "vite", "build": "tsc -b && vite build", + "build-turbo": "turbo run build", "lint": "eslint .", "preview": "vite preview", "test": "vitest run", diff --git a/turbo.json b/turbo.json new file mode 100644 index 000000000..ca3560e33 --- /dev/null +++ b/turbo.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://turborepo.org/schema.json", + "tasks": { + "build": { + "dependsOn": ["^build"], + "outputs": ["dist/**"] + } + } +}