Commit Graph

69 Commits

Author SHA1 Message Date
Evgeny Kochetkov
1d3d3a6592 chore(infra): bump bs-platform to 7.1.1
There are a lot of new features:
https://bucklescript.github.io/blog/2019/11/18/whats-new-in-7
https://bucklescript.github.io/blog/2020/02/04/release-7-1-0

No reason to stay on older version.
2020-02-18 17:42:38 +03:00
Kirill Shumilov
6f43481685 feat(xod-project, xod-arduino, xod-client): implement XOD_TOKEN global literal and make possible to use async getters for globals 2019-10-31 13:55:30 +03:00
Evgeny Kochetkov
c9ed2869bd tweak(xod-func-tools): make signature for maybeProp less strict
Before it would complain about `maybeProp(‘a’, {a: ‘foo’, b: []})`
2019-05-31 17:17:42 +03:00
Kirill Shumilov
5378da7e1f refactor(xod-func-tools, xod-client): move ExtendedModel from client/types into xod-func-tools/types 2019-02-27 20:25:09 +03:00
Kirill Shumilov
a5c7b8b13a feat(xod-func-tools): add cppEscape function 2019-02-14 13:50:39 +03:00
Kirill Shumilov
11cd0b79f7 feat(xod-tabtest): add pin labels validation in tabtests (missing, redundant, duplicated) 2018-11-29 19:36:24 +03:00
Kirill Shumilov
094156550d feat(xod-func-tools): add roundTo function 2018-08-30 18:32:54 +03:00
Kirill Shumilov
24759e667b feat(xod-func-tools): add createErrors and then functions 2018-08-29 20:42:58 +03:00
Kirill Shumilov
f6945a2bb7 chore(*): refmt all 2018-08-13 19:10:14 +03:00
Kirill Shumilov
2994dbfc60 refactor(xod-client): make using of existing validators and writing own validators easier 2018-08-13 16:16:50 +03:00
Kirill Shumilov
6d46720820 feat(xod-client): hinting middleware validates nodes, links and pins 2018-08-13 13:44:18 +03:00
Evgeny Kochetkov
0b76052630 chore(holes, xod-func-tools, xod-tabtest): use Belt.Result insteand of deprecated Js.Result 2018-08-01 12:51:16 +03:00
Evgeny Kochetkov
71679ed470 chore(infra): extract Reason typings from xod-tabtest to respective packages, set up root bsconfig.json 2018-08-01 12:51:16 +03:00
Evgeny Kochetkov
ff00cbab56 refactor(xod-func-tools, xod-project): get rid of func-tools.js 2018-05-30 13:47:31 +03:00
Evgeny Kochetkov
77ce5129f1 feat(xod-project, xod-client, xod-arduino): add support for custom types
Closes #1189
2018-05-28 21:09:48 +03:00
Evgeny Kochetkov
0c62d1f5b3 tweak(xod-func-tools): make default error formatter more user-friendly
Closes #1219
2018-05-21 19:31:24 +03:00
Kirill Shumilov
9dc27edabb perf(xod-project, xod-client): tweak memoized selectors to avoid excessive recalculations 2018-05-21 17:42:29 +03:00
Kirill Shumilov
5577454a57 perf(xod-client, xod-project): tweak performance of type deduction 2018-05-16 20:04:45 +03:00
Kirill Shumilov
45cbde905c refactor(xod-project, xod-client-browser, xod-fs, xod-cli, xod-func-tools): migrate bound values into bound literals as early as possible 2018-04-26 17:46:28 +03:00
Kirill Shumilov
8432d0cd52 refactor(xod-func-tools, xod-project, xod-client, xod-arduino): add Literals and use it in the transpile function and Widgets 2018-04-23 13:34:32 +03:00
Evgeny Kochetkov
201f8f7d5f feat(xod-func-tools): add enumerate util to produce human-readable enumerations 2018-04-19 12:39:37 +03:00
Kirill Shumilov
31c121590f refactor(xod-project, xod-func-tools, xod-client): rename Error.payload.path into Error.payload.trace, rename prependPatchPathToError into prependTraceToError, update tests and usage of the trace in the client 2018-04-17 12:22:48 +03:00
Kirill Shumilov
81c1d4c230 feat(xod-func-tools, xod-project): add prependPatchPathToError function in xod-func-tools and add validatePatchReqursively function in the xod-project, that will replace validateProject in some places, like flatten 2018-04-17 12:22:48 +03:00
Kirill Shumilov
1fc6671798 feat(xod-func-tools): implement general functions that produces Errors with payload, utils for them and function that generates error formatting function 2018-04-16 14:45:11 +03:00
Victor Nakoryakov
fc7e4616f5 feat(xod-func-tools): add eitherLeft/eitherRight shortcuts 2018-04-11 18:16:19 +03:00
Evgeny Kochetkov
e6ab08e297 chore(infra): format code with prettier
Just `yarn lint  --fix`
2018-03-05 17:59:03 +03:00
Kirill Shumilov
4e510b7957 feat(xod-project): add basic features for variadics: new types, getters/setters, path utils, built-in patches, function that computes variadic Pins and validates variadic Patch 2018-02-20 15:38:17 +03:00
Kirill Shumilov
ada764e085 refactor(xod-func-tools): replace hacks from foldEither and foldMaybe with native functions from ramda-fantasy, cause it is not actual anymore 2018-01-16 11:46:02 +03:00
Kirill Shumilov
6d37728937 chore(xod): update hm-def and sanctuary-def, fix some wrong function definitions that brokes runtime 2018-01-16 11:46:02 +03:00
Kirill Shumilov
d2027e79b3 chore(xod): update Webpack to v3 (bundle reduced x2), update Ramda versions, prepare it for further updates
Squashed commits:
[af77987] refactor(xod-client, xod-client-browser, xod-client-electron): move common webpack config into xod-client, and extend it with specific options in other endpoint clients (browser/electron)
[ddae62d] chore(xod): update `hm-def` to latest `0.2.1` version (that uses the same Ramda version)
[5d80680] chore(xod): prepare all Ramda imports and some functions to migrate to 0.25.1 to be optimized better by tree-shaker (0.25.0 already has a features for better tree shaking, but it has a lot of bugs and perfomance regressions, so we’ll stay at 0.24.1 for a while)
[9c05d6c] chore(xod-client-browser, xod-client-electron): enable UglifyJS webpack plugin to eliminate dead code and minify bundle (7.8MB -> 3.8MB)
[cafbfcf] chore(xod, xod-client-browser, xod-client-electron): update webpack to version 3, update loaders,
2017-12-29 13:31:32 +03:00
Kirill Shumilov
0606a58a9c feat(xod-client): implement new configurable sidebar system, store user settings in localStorage (both for browser & electron versions), implement new Quick help panel (issue #933). 2017-12-19 15:29:01 +03:00
Kirill Shumilov
2a0b244e59 feat(xod-func-tools): add maybeToPromise function that accepts two functions and Maybe 2017-11-24 14:05:54 +03:00
Kirill Shumilov
aeb8a97a3b feat(xod-fs): implement dff functions that find changed patches and find a kind of changes and saveAll function that saves all project using diff function to detect what to save, what to skip 2017-11-22 12:08:47 +03:00
Evgeny Kochetkov
a6e6746f3d tweak(xod-fs, xod-func-tools): remove concatAll util, use R.unnest instead 2017-11-15 13:11:42 +03:00
Kirill Shumilov
3a8596b51a refactor, test(xod-func-tools): move functions into separate modules, cover almost all functions (complex or derivative), move tests into separate specs, add foldMaybe 2017-11-15 10:49:09 +03:00
Kirill Shumilov
3fbd6a3bab feat(xod-client): add marquee selecting mode to the editor 2017-11-01 16:11:05 +03:00
Kirill Shumilov
fb248cf16e feat(xod-fs, xod-client-electron, xod-cli): load libs from a local workspace and extra lib directories (+4 squashed commits)
Squashed commits:
[12a9428] refactor(xod-cli): bundle std libs with xodc and use them in `xodc transpile` command
[66d1b9d] refactor(xod-fs, workspace): rename `lib` folder into `__lib__` and make it not necessary and don't copy stdlib into user workspace
[f19c366] feat(xod-fs): load project with libs from local workspace and bundled workspace
[ea9ac0e] feat(xod-func-tools): add `uniqLists` function
2017-10-23 18:54:24 +03:00
Kirill Shumilov
44577c03a4 feat(xod-arduino-deploy, xod-deploy, xod-client, xod-client-electron): add interactive debug session with watch nodes, optimized log and etc (+31 squashed commits)
Squashed commits:
[ca50efb] refactor(xod-client, xod-arduino-deploy, xod-client-electron): handle lost connection (unplug device), make some small fixes
[8c9fbce] tweak(xod-client-electron): add retries to find device after upload (3 times with 300ms delay)
[8c77fce] fix(xod-client-electron): fix adding an error message into debugger log
[c0668c1] refactor(xod-client, xod-client-electron): add throttling to send data readed from serial port and updating log by list of messages instead of appending each message
[9528c6e] refactor(xod-arduino, xod-client, xod-client-electron): make fixes in accordance with comments to PR
[117996b] refactor(xod-client): simplified selecting renderer by message type in the Log container
[512b74f] refactor(xod-arduino): revert XOD_TRACE functions to use only for debug runtime, watch-node uses DEBUG_SERIAL, updated fixtures and etc
[7b92c98] chore(xod-client): remove dispatching no longer existing action (setMode)
[cb38db1] refactor(xod-arduino): split transpiling into two functions: transformProject and transpile, add function to get nodeIdsMap from transformed project, use last one instead of pushing it through a long pipes of calls
[01c3f2e] tweak(xod-client): show xod message delimiter in the log
[360f216] chore(xod-client): change caption of button "Stop debug session" -> "Stop debug"
[531c280] style(xod-client): change colors of watch nodes, remove ellipsis from watch node values, change color of error and success message borders
[bb3c5df] fix(xod-client): fix panning mode to show nodeValues in debug session interactively
[7fac400] tweak(xod-client): sync offsets of patches between tabs (if user pans debug tab -> patch tab panned too, and vice versa)
[086d863] tweak(xod-client): stop debug session when debugger tab was closed
[eccc14a] tweak(xod-client): pass offsets between patchTab and debuggerTab, reopen original patch on debugger tab close
[83c3090] test(xod-client-electron): fix functional test and remove fixture (take it from workspace)
[f87fb2d] tweak(xod-client): tweak closing tab to prevent switching to another tab if closed another one
[c17cc0f] refactor(xod-client): remove editor modes from redux store, make modes depends on tab type
[92ce1df] refactor(xod-client): add tab types, add debug tab type and styles, handle opening and closing this tab on debug start/stop
[09af9af] refactor(xod-client): refactored tabs to contain an unique id and patchPath, instead of storing two entities in one property
[31991f7] refactor(xod-client): optimize rendering logs, add Debugger into storybook, fix one possible bug in the reducer
[7355928] refactor(xod-client): move log of Debugger into a separate container
[30d36c5] refactor(xod-client): optimize debugger selectors
[9615450] feat(xod-client): pass values of watch nodes into view
[34b40d0] refactor(xod-client): move rendering of node bodies and some parts into small components, add WidgetNodeBody component
[18f4e75] feat(xod-client): add new editor mode: debugging
[6c6d9bd] feat(xod-arduino, xod-client): store map of nodeIds to topologically sorted index of nodes in the redux state
[492caea] feat(xod-arduino, xod-project): remove debug nodes on transpilation without debug mode, update fixtures and tests
[63a8083] refactor(xod-arduino, xod-clients): update debug flags in runtime, allow to switch flags in the transpiler (using options object) and integrate it into clients
[01cfd83] feat(xod-arduino, workspace): implement watch node and change debug flags in the runtime and configuration template
2017-10-03 14:26:28 +03:00
Kirill Shumilov
0e8b213d62 feat(xod-deploy, xod-client-electron): add cloud compilation feature into electron client 2017-09-15 11:25:03 +03:00
Victor Nakoryakov
981902fff6 optimize(xod-arduino): toposort nodes in-place 2017-08-30 01:00:52 +03:00
Victor Nakoryakov
0ad266c1ed optimize(xod-project): inject @@type hints into entities to speed up type checks
Closes #716
2017-08-16 13:27:47 +03:00
Evgeny Kochetkov
4786906fb1 feat(xod-func-tools): add catMaybes util 2017-08-08 18:25:17 +03:00
Kirill Shumilov
4832385980 feat(xod-arduino-deploy): make a new package xod-arduino-deploy to get rid of Arduino IDE dependency, build and upload code using native tools (arduino-builder, avrdude, bossac and etc) 2017-08-04 18:07:06 +03:00
Evgeny Kochetkov
a192392622 fix(xod-func-tools): fix currying of ‘hasType’ 2017-07-25 14:22:34 +03:00
Evgeny Kochetkov
b6a092ccdd refactor(xod-func-tools): no need to check for two Either type ids anymore 2017-07-20 12:56:26 +03:00
Evgeny Kochetkov
395f0ced24 feat(xod-func-tools): ‘validateSanctuaryType’ util that is easy to compose and returns a proper Either 2017-07-20 12:49:12 +03:00
Evgeny Kochetkov
ea8bbdbacf feat(xod-func-tools): add ‘eitherToPromise’ util 2017-07-20 12:11:19 +03:00
Evgeny Kochetkov
e89ecf33ce refactor(xod-func-tools, xod-fs, xod-project): move ‘substractObject’ to xod-func-tools 2017-07-20 12:11:19 +03:00
Evgeny Kochetkov
a6219ff64b tweak(xod-func-tools): allow 'sanctuary-def/Either' to be accepted as Either 2017-07-20 12:11:18 +03:00
Kirill Shumilov
45aa7ede52 feat(xod-func-tools): add reduceM (its like foldM from Haskell) and shorthands reduceEither and reduceMaybe 2017-07-10 14:48:26 +03:00