Akash API TypeScript Bindings
This package provides TypeScript bindings for the Akash API, generated from protobuf definitions.
Installation
To install the package, run:
npm install @akashnetwork/akash-api
Usage
You can import the generated namespaces from the package like this:
import * as akashDeploymentV1beta1 from '@akashnetwork/akash-api/akash/deployment/v1beta1';
import * as akashDiscoveryV1 from '@akashnetwork/akash-api/akash/discovery/v1';
TypeScript 4.5 and above
If you're using TypeScript 4.5 or above, the package exports all the paths of the generated namespaces, so you can import them directly.
TypeScript below 4.5
If you're using a version of TypeScript below 4.5, the package provides a tsconfig.paths.json file that you can extend in your local TypeScript configuration to resolve the paths. Here's how you can do it: In your tsconfig.json file, add the following:
{
"extends": "@akashnetwork/akash-api/tsconfig.paths.json"
}
Contributing
Contributions are welcome. Please submit a pull request or create an issue to discuss the changes you want to make.
Contributing to Generated Files
The files in the src/generated
directory are auto-generated and should not be modified directly. If you need to make changes to these files, follow the steps below:
-
Create a new file in the src/patch
directory with the same path as the file you want to modify. For example, if you want to modify src/generated/cosmos/base/v1beta1/coin.ts
, you should create the directory src/patch/cosmos/base/v1beta1/coin.ts
.
-
Add your changes to a new file in the src/patch
directory. The new file should have the same name as the file you want to modify.
-
Rename the original file in the src/generated
directory by appending .original.ts
to its name. For example, src/generated/cosmos/base/v1beta1/coin.ts
should be renamed to src/generated/cosmos/base/v1beta1/coin.original.ts
.
-
Create a new file in the src/generated
directory with the same name as the original file. This new file should re-export everything from the corresponding file in the src/patch
directory. For example, the content of src/generated/cosmos/base/v1beta1/coin.ts
should be:
export * from '../../../../patch/cosmos/base/v1beta1/coin';
NOTE: Naming and paths are important to prevent the original file from being overwritten when the code is regenerated. See script/preserve-ts-patches.sh
and script/restore-ts-patches.sh
for more implementation details.
License
This package is licensed under the Apache-2.0.