Skip to content

Releases: Blackprint/engine-js

v0.7.2

08 Aug 06:29
df1b13a
Compare
Choose a tag to compare

Features

  • Add isGhost on interface for standalone port

Bug Fix

  • Fix index error when creating new function
  • Allow module import from http: for internal network support (like company network)

v0.7.1

26 Jul 07:26
1d3b1e2
Compare
Choose a tag to compare

Features

  • Add feature to allow output resynchronization

v0.7.0

22 Jul 05:13
f6b2502
Compare
Choose a tag to compare

Features

  • Add node.instance property that can be used to access current instance for the node
  • Add TypeScript definition
  • Add feature to split port with structure
  • Add feature to use default input with primitive type when the port is not connected
  • Add node.log for emit logging data to instance
  • Add callable route port output type
  • Add route port to handle data flow
  • Dynamically add empty environment variable if not exist
  • Add event name as parameter
  • Add node for handling environment variables
  • Emit event when node id was changed
  • Emit event when node will be deleted
  • Emit event when creating new variables/function
  • Emit event when renaming environment variable
  • Finishing function node and the separated I/O node

Bug Fix

  • Fix import for append mode
  • Fix initial value for variable node
  • Fix feature for renamine function port
  • Fix data request and saved data
  • Fix Port.Trigger type and add routeTo
  • Fix incorrect port check for function node
  • Fix function's input/output node
  • Fix variable scope id and route connection
  • Fix returned object from getNode
  • Fix route pass for custom function node
  • Fix cable.disconnect event that not emitted on iface
  • Fix dynamic port for custom function input/output node
  • Fix variable node scope
  • Fix bug for environment variable
  • Avoid emitting cable.disconnect event to instance twice
  • Restrict connection between dynamic port

Breaking Changes

  • Port's Any type is no longer use null, please use Blackprint.Types.Any instead
  • update(port, source, cable) will now only receive single arguments update(cable). Please use cable.input to obtain port, and cable.output to obtain source.
  • request(port, sourceIface) will now only receive single arguments request(cable). Please use cable.output to obtain port, and cable.input.iface to obtain sourceIface.
class MyNode extends Blackprint.Node {
	static input = {
		// Before
		AnyType: null,

		// After
		AnyType: Blackprint.Types.Any,
	}

	// Before
	update(port, source, cable){}
	// After
	update(cable){} // port = cable.input, source = cable.output

	// Before
	request(port, sourceIface){}
	// After
	request(cable){} // port = cable.output, sourceIface = cable.input.iface
}

v0.6.6

02 May 10:37
185d5ec
Compare
Choose a tag to compare

Bug Fix

  • Fix data type validation for any type

v0.6.5

02 May 10:04
7463f80
Compare
Choose a tag to compare

Features

  • Add used variable nodes's reference list
  • Add support for exporting custom function and variable
  • Add feature to rename/delete port for custom function node
  • Add support to use port feature for custom function node
  • Add to do list to prepare for breaking changes
  • Add destroy function
  • Emit event when JSON was imported
  • Finishing custom variable and function node

Bug Fix

  • Fix for copying custom function node
  • Fix callable port for function node
  • Fix variable node for callable port
  • Fix port type checker for ArrayOf
  • Fix type validation
  • _list must be not enumerable
  • Allow connect to union port with similar types
  • Improve value event listener
  • Skip module loader if no URL input
  • Skip check for undefined port but allow null port
  • Make some internal properties configurable

v0.6.4

19 Mar 14:16
c9fdc88
Compare
Choose a tag to compare

Bug Fix

  • Disallow use of arrow function
  • Fix unit test that was using Blackprint.OutputPort and Blackprint.InputPort
  • Fix undefined value on array port
  • Fix and simplify version check

v0.6.3

08 Mar 13:20
9555461
Compare
Choose a tag to compare

Bug Fix

  • Fix field name
  • Fix node deletion
  • Fix undeleted root nodes when deleting module

Features

  • Add colors when downloading module
  • Put unresolved module conflict into pending list
  • Add onModuleConflict to handle conflict externally
  • Add support for remote engine
  • Add Blackprint.Environment.loadFromURL = true if the environment prefer to use module from URL
  • Improve ESM module loader

v0.6.2

13 Feb 10:19
58d95a0
Compare
Choose a tag to compare

Bug Fix

  • Fix module version checker
  • Add spaces to BP-Union class
  • Make _event field writable
  • Remove unused function and some minor changes
  • Fix incorrect field name
  • Fix some error when Sketch is being run on Jest environment

Features

  • Add port call listener (for Trigger port) and fix connectPort
  • Add feature for using newest module and delete nodes by module URL
  • Add options to skip some import data
  • Throw error when the port type is undefined

v0.6.1

05 Feb 06:38
ed74506
Compare
Choose a tag to compare

Bug Fix

  • Fix registerNode and registerInterface to be used for decorator

Features

  • Add Blackprint.OutputPort and Blackprint.InputPort for testing or scripting

v0.6.0

28 Jan 08:13
db71e2d
Compare
Choose a tag to compare

Features

  • Add feature to rename port
  • Add utils to help fix minified class name
  • Add instance storage for variables, functions

Breaking Changes

  • Creating input/output port dynamically now become:
    • After: node.createPort("input" | "output", name, type)
    • Before: node.input.add(name, type)
  • Deleting input/output port dynamically now become:
    • After: node.deletePort("input" | "output", name)
    • Before: node.input.delete(name)
  • Input/output port name that start with _ will be ignored
  • Rename some function and mark it as private
  • node.input and node.output construction now must be changed to static class variable
Click here to open details
class MyCustomNode extends Blackprint.Node {
    // Before
    input = { MyInput: Number };
    output = { MyOutput: Number };

    // After
    static input = { MyInput: Number };
    static output = { MyOutput: Number };
}