@webwriter/block-based-code
Version:
Write block-based code (e.g. Scratch) and run it.
33 lines (28 loc) • 1.04 kB
text/typescript
import { blocks as controlBlocks } from "./controls";
import { blocks as eventBlocks } from "./events";
import { blocks as lookBlocks } from "./looks";
import { blocks as motionBlocks } from "./motions";
import { blocks as operatorBlocks } from "./operators";
import { numberBlock } from "./math";
import { BlockDefinition } from "../types";
export const blocks = [
...eventBlocks,
...controlBlocks,
...lookBlocks,
...motionBlocks,
...operatorBlocks,
numberBlock,
] satisfies BlockDefinition[];
export type BlockTypes = typeof blocks[number]["type"] | "variables";
export type CategoryTypes = typeof blocks[number]["category"];
export const blockArguments = blocks.reduce((acc, block) => {
const args = [];
let argsIndex = 0;
while (block[`args${argsIndex}`]) {
const blockArgs = block[`args${argsIndex}`];
args.push(blockArgs);
argsIndex += 1;
}
acc[block.type] = args;
return acc;
}, {}) as Record<BlockTypes, { type: string; name: string; check: string }[][]>;