UNPKG

@webwriter/block-based-code

Version:

Write block-based code (e.g. Scratch) and run it.

33 lines (28 loc) 1.04 kB
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 }[][]>;