Feat(Docs): Added link to electrum methdos docs See merge request GeneralProtocols/xo/stack!89
XO Stack
This is a monorepo project containing multiple packages managed with NPM workspaces.
Project Structure
xo/
├── packages/
│ ├── primitives/
│ ├── wallet/
│ └── vue/
├── package.json
└── README.md
Prerequisites
- Node.js (version 20.0.0 or later)
- NPM (version 7 or later, which includes workspaces support)
Installation
To install all dependencies for all packages in the monorepo, run the following command from the root directory:
npm install
This command will install dependencies for the root project and all packages in the packages/ directory.
Building Packages
To build all packages, run the following command from the root directory:
npm run build
This will execute the build script for each package in the monorepo.
To build a specific package, you can use the following command:
npm run build --workspace=@my-monorepo/<package-name>
Replace <package-name> with the name of the package you want to build (e.g., primitives, network-wallet, or vue).
Running Tests
To run tests for all packages:
npm test
To run tests for a specific package:
npm test --workspace=@my-monorepo/<package-name>
Development
During development, you can use the following command to watch for changes and rebuild packages automatically:
npm run dev
Useful NPM Workspace Commands
-
List all packages in the workspace:
npm ls -w -
Run a command in a specific package:
npm run <command> --workspace=@my-monorepo/<package-name> -
Add a dependency to a specific package:
npm install <dependency> --workspace=@my-monorepo/<package-name>
Refactor details
We will want to use inheritance in place of IWallet, etc. A neat structure to refactor to is:
-
/theThing/
-
base-thing.ts -
types.ts -
utils.ts -
... -
Rename IndexedCollection to ExtMap.
-
Rename from method to fromArray.
-
Have the from method accept an object.