
Security News
TypeScript is Porting Its Compiler to Go for 10x Faster Builds
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
@breadboard-ai/build-code
Advanced tools
Convert TypeScript functions to Breadboard runJavascript components
Converts TypeScript functions to Breadboard runJavascript
components. Code is
bundled and schema is automaticaly generated from TypeScript types.
Install:
npm i @breadboard-ai/build-code
Create a module with the following exports:
Inputs
Outputs
run
For example, the file src/js-components/is-foo.ts
:
export interface Inputs {
str: string;
}
export interface Outputs {
isFoo: boolean;
}
export const run = ({ str }: Inputs): Outputs => {
return { isFoo: strIsFoo(str) };
};
// Note that this function is outside the scope of `run`. This would
// normally be a problem with the the standard Breadboard `code`
// function, but it's OK here because we bundle! Imports work too.
function strIsFoo(str: string): boolean {
return str === "foo";
}
Use the build-code
binary:
{
"scripts": {
"generate:js-components": "build-code --tsconfig=./tsconfig.json --out=./src/generated ./src/js-components/*.ts"
}
}
Import the generated module, which in this case will be at
src/generated/is-foo.ts
, and use it with the Breadboard Build API. The
module will contain a strongly-typed function based on the name of the
source module:
import { isFoo } from "./generated/is-foo.js";
import { input, board } from "@breadboard-ai/build";
const str = input();
const isFooInst = isFoo({ str });
export const myBoard = board({
inputs: { str },
outputs: { isFoo: isFooInst.outputs.isFoo },
});
Upon serialization to BGL, a runJavascript
component will be created
with bundled code and automatically generated schemas:
{
"nodes": {
"id": "runJavascript-0",
"type": "runJavascript",
"configuration": {
"raw": true,
"name": "run",
"code": "export const run = ({ str }) => {\n return { isFoo: strIsFoo(str) };\n};\n\nfunction strIsFoo(str) {\n return str === \"foo\";\n}\n",
"inputSchema": {
"type": "object",
"properties": {
"str": {
"type": "string"
}
},
"required": ["str"],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"properties": {
"isFoo": {
"type": "boolean"
}
},
"required": ["isFoo"],
"additionalProperties": false
}
}
}
}
FAQs
Convert TypeScript functions to Breadboard runJavascript components
We found that @breadboard-ai/build-code demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.