1.5.20 • Published 6 months ago

kalduna v1.5.20

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

Kalduna (domql-to-mitosis)

Kalduna converts domql objects to Mitosis JSON. Mitosis can then convert them to React/Vue/Angular/etc. The main convert() function of this package takes domql and returns code in a different framework.

Important

as a workaround, it works on domql#b08d17a7f2bf1a70714ab9f1718cbf98862becf0 (kalduna-stable branch)

To install, do the following: 1. Clone this repository 2. Run yarn && yarn build:all

Architechture of domql-to-mitosis

Diagram of the architecture of Kalduna

Anatomy of a react component generated by domql-to-mitosis

Anatomy of a react component generated by domql-to-mitosis

Tests

We use node's built-in assertion module instead of a separate library.

  • yarn build:tests compiles the tests into dist/tests/
  • yarn runL:tests runs the compiled tests from dist/tests/
  • Both commands can receive file patterns for building/running specific test files
  • If no errors show up during testing then all tests have passeed.

Why not Jest/others?

This way is simpler. Kalduna should work well for both web and node, which means that we have to compile it with esbuild. To ensure that both web and node versions work, we must test the compiled code and not the source code. Setting up a compilation/testing pipeline this way is much simpler than configuring Jest to do it.

Project Requirements

  • yarn kalduna should work in smbls
  • All react components on the component wall should work (including DatePicker)
  • Editor should work

Code style

  • 'dobj' is short for 'domql object'
  • In a domql object, hidden/internal fields have a double underscore (ex: __componentTag)
  • In a mitosis object, hidden/internal fields have a single underscode (ex: _desiredFormat)

Rules for writing domql that kalduna can parse

  • No nested destructures in function arguments. A single destructure statement is supported, but anything deeper is invalid (for now)
  • Don't use the 'function' keyword. Use an arrow function () => {}
  • Always use parentheses in arrow functions So, (arg) => ... instead of arg => ...
  • Always name the 'event' object ev for on.click and others
  • Any occurrence of state.update inside a function will get replaced by Kalduna to match the framework's style

TODO

  • icon parent should not be Show in smbls.Button
  • el.state.update({}) converts to el.update. BAD! (is this still relevant?)
1.5.19

6 months ago

1.5.20

6 months ago

1.5.10

8 months ago

1.5.12

8 months ago

1.5.11

8 months ago

1.5.14

8 months ago

1.5.13

8 months ago

1.5.16

8 months ago

1.5.15

8 months ago

1.5.18

7 months ago

1.5.17

7 months ago

1.5.9

8 months ago

1.5.8

8 months ago

1.5.4

9 months ago

1.5.3

9 months ago

1.5.2

9 months ago

1.5.1

9 months ago

1.5.7

9 months ago

1.5.6

9 months ago

1.5.0

9 months ago

1.4.3

9 months ago

1.4.2

10 months ago

1.4.1

10 months ago

1.4.0

10 months ago

1.3.1

10 months ago

1.3.0

10 months ago

1.2.0

10 months ago

1.0.1

10 months ago