agent-js
agent-js copied to clipboard
A collection of libraries and tools for building software around the Internet Computer, in JavaScript.
agent-js
Use an Agent to interact with the Internet Computer from your JavaScript program.
This source code repository contains multiple npm packages, each under ./packages/.
Development
Getting Started
- Clone the git repository.
- Run
npm i -g npm - Run
npm install
After that, you probably want to dive into a specific package in ./packages.
Workspaces
We use npm to manage this repo and its packages. A few useful
commands to keep in mind;
- To run the unit tests locally, you can use
npm run test. - To run e2e tests, you can use
npm run e2e. WARNING: You need to have a running replica locally. In our CI runs, we use theic-refwhich is not (at this time) available publicly. Normally you can use a replica distributed with dfx (ie. dfx start in a project), but there is no guarantee that thenextbranch will work with the latest published dfx. Once you have a replica running locally, you must pass the port to the e2e tests using theREPLICA_PORTenvironment vairable. If that variable is not set, the tests will fail.
bin/* scripts
The following scripts can be found in ./bin:
Monorepo-related scripts run in this order, but are usually invoked by npm install:
- npm-postinstall - Run with
npm run postinstallin this monorepo package.- It copies devtools dependencies from ./packages/agent-js-devtools/node_modules -> ./node_modules
- build - Build (
npm run build) each subpackage in ./packages/ - test - Run
npm testin each subpackage
Contributing
Contributions are welcome! Please refer to the CONTRIBUTING.md, where you can find more details about:
- Setting up the repository, making changes, documenting these changes, adherence to automated formatting like prettier, and Continuous Integration, which is facilitated by GitHub Actions.
- Information about our review process.
- The release process, publishing to NPM, and publishing docs.
- The process for deprecating packages in this repository.
License
This project is licensed under the Apache-2.0 License.