@lit-protocol/vincent-scaffold-sdk
Version:
Shared build configuration and utilities for Vincent tools and policies
79 lines (53 loc) • 1.95 kB
Markdown
# @lit-protocol/vincent-scaffold-sdk
Shared build configuration and utilities for Vincent tools and policies.
## Installation
```bash
npm install --save-dev @lit-protocol/vincent-scaffold-sdk
```
## Usage
### ESBuild Configuration
Create an `esbuild.config.js` file in your project:
```javascript
const esbuild = require("esbuild");
const {
baseConfig,
getPlugins,
logBuildResults,
} = require("@lit-protocol/vincent-scaffold-sdk/esbuild-config");
(async () => {
try {
await esbuild
.build({
...baseConfig,
entryPoints: ["./src/lib/lit-action.ts"],
outdir: "./src/generated/",
plugins: getPlugins("tool"), // or 'policy'
})
.then(logBuildResults);
console.log("✅ Build completed successfully");
} catch (e) {
console.error("❌ Build failed:", e);
process.exit(1);
}
})();
```
### TypeScript Configuration
This package expects a `tsconfig.vincent.json` file in your project root. See the included example files:
- `tsconfig.lib.example.json` - Example project-specific configuration
- `tsconfig.base.example.json` - Example base configuration
### Exports
- `@lit-protocol/vincent-scaffold-sdk/esbuild-config` - ESBuild configuration and utilities
- `@lit-protocol/vincent-scaffold-sdk/deno-fetch-shim` - Deno fetch shim for browser compatibility
- `@lit-protocol/vincent-scaffold-sdk/tsconfig` - Base TypeScript configuration
### API
#### `baseConfig`
Base ESBuild configuration object with sensible defaults for Vincent tools/policies.
#### `getPlugins(type: 'tool' | 'policy')`
Returns an array of ESBuild plugins configured for the specified type.
#### `logBuildResults(result)`
Utility function to log build output sizes in a formatted way.
#### `ensureDirectoryExistence(filePath)`
Utility function to ensure a directory exists before writing files.
## Requirements
- Node.js >= 16.0.0
- @lit-protocol/vincent-tool-sdk (peer dependency)