0.24.0-alpha.0 • Published 9 days ago

@toa.io/bridges.node v0.24.0-alpha.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 days ago

Node.js Bridge

Currently, Node.js bridge only supports CommonJS modules.

Algorithm Definition

Operation's algorithms are defined as CommonJS modules in under operations directory in the component root. Algorithm module must export a function which is Algorithm Function, Class or Factory. Module file name without extension is an operation name (endpoint).

Function

// operations/create.js

function transition (input, object, context) {
  // ...

  return { output: { foo: 'bar' } }
}

exports.transition = transition

Exported function's name defines operation type property, thus must be one of: transition, observation, or assignment. Second (state) argument name must be object, objects, or changeset as it defines operation's scope.

Following function signature defines operation of observation type with objects scope.

// operations/set.js

function observation (input, objects) {
  // ...
}

See Operation properties.

Class

Example

// operations/transit.js

class Transition {
  #context
  
  async mount(context) {
    this.#context = context
  }
  
  execute (input, object) {
    // ...

    return { output: { foo: 'bar' } }
  }
}

exports.Transition = Transition

Exported class name must be one of: Transition, Observation, or Assignment, as it defines operation's type. Class must implement Algorithm interface. Second (state) argument name of the execute method must be object, objects, or changeset as it defines operation's scope.

Factory

class ObjectTransitionFactory {
  create () {
    // ...
  }
}

exports.ObjectTransitionFactory = ObjectTransitionFactory

Exported class name must follow the pattern: {Subject}{Type}Factory, where Subject and Type defines operation's scope and type respectively. Class must implement Algorithm Factory interface.

Factory class name examples: ObjectTransitionFactory, ObjectsObservationFactory, ChangesetAssignmentFactory.

Return value

Algorithm's return value must match UCP Response, that is, to be an object with either output or error properties. If return value is a primitive or an object without neither output nor error properties, then it is considered as the value of output.

Next two return values are equivalent.

return { ok: 1 }

return { output: { ok: 1 } } 

Storing Context

Algorithm definition should store reference to the context object without copying its value type variables as they may change over operation lifetime.

1.0.0-alpha.34

9 days ago

1.0.0-alpha.33

9 days ago

1.0.0-alpha.36

9 days ago

1.0.0-alpha.35

9 days ago

1.0.0-alpha.32

12 days ago

1.0.0-alpha.30

15 days ago

1.0.0-alpha.31

13 days ago

1.0.0-alpha.29

15 days ago

1.0.0-alpha.27

19 days ago

1.0.0-alpha.28

19 days ago

1.0.0-alpha.26

1 month ago

1.0.0-alpha.25

1 month ago

1.0.0-alpha.24

1 month ago

1.0.0-alpha.23

1 month ago

1.0.0-alpha.22

1 month ago

1.0.0-alpha.21

2 months ago

1.0.0-alpha.20

2 months ago

1.0.0-alpha.19

2 months ago

1.0.0-alpha.18

2 months ago

1.0.0-alpha.17

2 months ago

1.0.0-alpha.16

2 months ago

1.0.0-alpha.15

2 months ago

1.0.0-alpha.14

2 months ago

1.0.0-alpha.13

2 months ago

1.0.0-alpha.12

2 months ago

1.0.0-alpha.10

2 months ago

1.0.0-alpha.11

2 months ago

1.0.0-alpha.9

2 months ago

1.0.0-alpha.8

2 months ago

1.0.0-alpha.7

3 months ago

1.0.0-alpha.6

3 months ago

1.0.0-alpha.5

3 months ago

1.0.0-alpha.4

3 months ago

1.0.0-alpha.3

3 months ago

1.0.0-alpha.2

3 months ago

0.24.0-alpha.23

3 months ago

0.24.0-alpha.22

3 months ago

0.24.0-alpha.21

3 months ago

0.24.0-alpha.20

3 months ago

0.24.0-alpha.19

3 months ago

0.24.0-alpha.16

5 months ago

0.24.0-alpha.17

5 months ago

0.24.0-alpha.18

5 months ago

0.24.0-alpha.15

5 months ago

0.24.0-alpha.13

6 months ago

0.24.0-alpha.14

6 months ago

0.23.0-dev.0

6 months ago

0.20.0

7 months ago

1.0.0-alpha.0

6 months ago

0.20.0-dev.29

11 months ago

0.24.0-alpha.4

6 months ago

0.24.0-alpha.3

6 months ago

0.24.0-alpha.10

6 months ago

0.24.0-alpha.6

6 months ago

0.24.0-alpha.11

6 months ago

0.24.0-alpha.5

6 months ago

0.24.0-alpha.12

6 months ago

0.24.0-alpha.8

6 months ago

0.24.0-alpha.7

6 months ago

0.24.0-alpha.9

6 months ago

0.24.0-alpha.0

6 months ago

0.24.0-alpha.2

6 months ago

0.22.1

7 months ago

0.22.0

7 months ago

0.20.0-dev.40

9 months ago

0.20.0-alpha.0

8 months ago

0.20.0-alpha.1

8 months ago

0.20.0-alpha.2

7 months ago

0.20.0-dev.36

9 months ago

0.20.0-dev.35

9 months ago

0.20.0-dev.34

9 months ago

0.20.0-dev.39

9 months ago

0.20.0-dev.38

9 months ago

0.20.0-dev.37

9 months ago

0.20.0-dev.31

11 months ago

0.20.0-dev.30

11 months ago

0.21.0-alpha.0

7 months ago

0.20.0-dev.28

11 months ago

0.20.0-dev.24

11 months ago

0.20.0-dev.23

11 months ago

0.20.0-dev.22

11 months ago

0.20.0-dev.21

11 months ago

0.20.0-dev.20

11 months ago

0.20.0-dev.19

11 months ago

0.20.0-dev.14

11 months ago

0.20.0-dev.18

11 months ago

0.20.0-dev.17

11 months ago

0.20.0-dev.16

11 months ago

0.20.0-dev.15

11 months ago

0.9.2-dev.0

1 year ago

0.9.1-dev.1

1 year ago

0.9.1-dev.0

1 year ago

0.9.3-dev.10

12 months ago

0.9.3-dev.11

12 months ago

0.9.3-dev.12

12 months ago

0.9.2

1 year ago

0.9.1

1 year ago

0.9.3-dev.13

12 months ago

0.9.3-dev.15

12 months ago

0.9.3-dev.16

12 months ago

0.20.0-dev.7

12 months ago

0.20.0-dev.6

12 months ago

0.20.0-dev.5

12 months ago

0.20.0-dev.4

12 months ago

0.20.0-dev.3

12 months ago

0.20.0-dev.2

12 months ago

0.20.0-dev.1

12 months ago

0.9.3-alpha.56

12 months ago

0.20.0-dev.9

12 months ago

0.20.0-dev.8

12 months ago

0.20.0-dev.13

11 months ago

0.20.0-dev.12

12 months ago

0.20.0-dev.11

12 months ago

0.9.3-dev.0

1 year ago

0.9.3-dev.1

1 year ago

0.20.0-dev.10

12 months ago

0.9.3-dev.2

1 year ago

0.10.0-canary.2

12 months ago

0.9.3-dev.3

1 year ago

0.9.3-dev.4

1 year ago

0.9.3-dev.5

1 year ago

0.9.3-dev.6

1 year ago

0.9.3-dev.7

12 months ago

0.9.3-dev.8

12 months ago

0.9.3-dev.9

12 months ago

0.9.3-canary.1

12 months ago

0.9.3-canary.0

12 months ago

0.7.2-dev.0

1 year ago

0.8.0-dev.1

1 year ago

0.8.0-dev.0

1 year ago

0.9.0-dev.0

1 year ago

0.9.0-dev.3

1 year ago

0.7.0-dev.0

1 year ago

0.9.0-dev.2

1 year ago

0.7.0-dev.1

1 year ago

0.9.0-dev.1

1 year ago

0.7.0-dev.2

1 year ago

0.8.0-dev.5

1 year ago

0.8.0-dev.4

1 year ago

0.8.0-dev.3

1 year ago

0.8.0-dev.2

1 year ago

0.6.0-dev.4

1 year ago

0.7.1-dev.0

1 year ago

0.9.0

1 year ago

0.8.0

1 year ago

0.7.1

1 year ago

0.7.1-dev.2

1 year ago

0.7.0

1 year ago

0.6.0

1 year ago

0.4.0-dev.6

1 year ago

0.4.0-dev.9

1 year ago

0.4.0-dev.8

1 year ago

0.6.0-dev.1

1 year ago

0.6.0-dev.2

1 year ago

0.6.0-dev.3

1 year ago

0.2.1-dev.3

1 year ago

0.2.1-dev.4

1 year ago

0.4.0-dev.0

1 year ago

0.4.0-dev.2

1 year ago

0.2.1-dev.2

1 year ago

0.3.0

1 year ago

0.4.0

1 year ago

0.2.0-dev.0

2 years ago

0.1.0-alpha.12

2 years ago

0.1.1-dev.3

2 years ago

0.1.1-dev.2

2 years ago

0.1.1-dev.1

2 years ago

0.1.0

2 years ago

0.1.0-dev.0

2 years ago