skip disabled blocks

This commit is contained in:
Loren Norman 2025-07-09 15:13:13 -04:00
parent 2b0a0e2496
commit 0a97554600
4 changed files with 10 additions and 4 deletions

View file

@ -98,7 +98,7 @@ BlockDefinition.parseRawDefinition = function(rawBlockDefinition, definitionPath
blockDef.tooltip = blockDef.description.split("\n")[0]
// blockDef.definitionSet = definitionSet
// blockDef.definitionJS = rawBlockDefinition
// blockDef.disabled = !!rawBlockDefinition.disabled
blockDef.disabled = !!rawBlockDefinition.disabled
blockDef.visualization = rawBlockDefinition.visualization
blockDef.connections = rawBlockDefinition.connections
blockDef.lines = rawBlockDefinition.lines

View file

@ -34,6 +34,7 @@ export const BlocklyJSExporter = {
const
exportToolboxJs = toolboxDefinition => {
// TODO: fix category callbacks
const
categoriesWithCallbacks = filter(toolboxDefinition, "callback"),
// { "Category Name": () -> { /* category callback */ }}

View file

@ -1,5 +1,5 @@
import { writeFileSync } from 'fs'
import { forEach } from 'lodash-es'
import { forEach, reject } from 'lodash-es'
import DefinitionLoader from '#src/definition_loader.js'
import BlocklyJSExporter from '#src/blockly_js_exporter.js'
@ -63,6 +63,7 @@ DefinitionSet.load = async function() {
const
rawDefinitions = await DefinitionLoader.loadAll(),
enabledBlocks = reject(rawDefinitions.blocks, "definition.disabled"),
definitionSet = new DefinitionSet()
// TODO: fields
@ -74,9 +75,11 @@ DefinitionSet.load = async function() {
// TODO: update mutator definition/template/export routine
definitionSet.mutators = rawDefinitions.mutators
forEach(rawDefinitions.blocks, ({ definition, path }) => {
forEach(enabledBlocks, ({ definition, path }) => {
const blockDef = BlockDefinition.parseRawDefinition(definition, path, definitionSet)
definitionSet.blocks.push(blockDef)
// TODO: inline mixins defined on blocks
// TODO: inline extensions defined on blocks
definitionSet.generators[blockDef.type] = blockDef.generators
definitionSet.regenerators[blockDef.type] = blockDef.regenerators
})

View file

@ -1,5 +1,6 @@
import fs from "node:fs"
import { describe, it, beforeEach, afterEach } from 'node:test'
import { filter } from "lodash-es"
import { assert } from 'chai'
import DefinitionSet from "#src/definition_set.js"
@ -29,9 +30,10 @@ describe("DefinitionSet", function() {
assert.instanceOf(this.definitionSet.toolboxes[0], ToolboxDefinition)
})
it("has blocks", function() {
it("has blocks, but not disabled blocks", function() {
assert.isAbove(this.definitionSet.blocks.length, 1)
assert.instanceOf(this.definitionSet.blocks[0], BlockDefinition)
assert.isEmpty(filter(this.definitionSet.blocks, "disabled"))
})
it("has mixins", function() {