aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared/package.json
Commit message (Collapse)AuthorAge
* chore(deps): update mobx-state-tree to version 5.1.3depfu/update/yarn/mobx-state-tree-5.1.3Libravatar Depfu Bot2022-02-11
|
* chore: Bump dependenciesLibravatar Kristóf Marussy2022-01-27
|
* build: Eslint fixes for multi-module projectLibravatar Kristóf Marussy2022-01-09
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* Upgrade npm modulesLibravatar Vijay A2022-01-09
| | | | Signed-off-by: Vijay A <vraravam@users.noreply.github.com>
* build: Use exports field for modulesLibravatar Kristóf Marussy2021-12-31
|
* build: Fully switch over to ESMLibravatar Kristóf Marussy2021-12-30
| | | | | | | | | | | | | | | | | | | | | | | | | | Now we can run with ESM at build and test time and transpile into commonjs for electron. This greatly simplifies testing, since we treat everything as ESM during build with esbuild anyways. Now the test environment and the build scripts match the apparent (but not the actual for the main, preload, and inject modules) runtime environment. Caveats: - We may use top-level async expressions in tests and script, but not in code that gets transpiled into commonjs or scripts that get imported by vite. The limitation w.r.t. commonjs seems fundamental. - Jest only experimentally supports ESM and there are some limitations with mocking. Most limitations (except the lack of automatic mocks) can be worked around by async importing code that uses mocks. - There are packages marked as modules (so that node reads any scripts in them as ESM) that nevertheless get transpiled into commonjs modules. However, these should be clearly marked by using a .cjs extension as their bundle. The worst offender is the root package, which has a .cjs as its main entry point that gets read by electron, but is in fact marked as a module. This doesn't seem to bother electron at all. The service-inject package is an IIFE with a .js extension, but it outputs a fully self-contained bundle, so the choice of module format should be irrelevant.
* build: Use shared packages through modulesLibravatar Kristóf Marussy2021-12-30
| | | | | | | | | | By running the build for the shared packages only once, errors in them are reported only once in watch mode. We still have to point jest to the original source files (and rebuild the shared source files as part of the test), because it won't load the "module" entry of the shared packages. However, as a benefit, jest can now run even if the shared packages haven't been built yet.
* build: Simplify clean scriptLibravatar Kristóf Marussy2021-12-30
|
* build: Switch to esbuildLibravatar Kristóf Marussy2021-12-30
| | | | | | | | | | We will build all packages except the frontend (where vite remains in use) with esbuild. For some reason, the @yarnpkg/esbuild-plugin-pnp doesn't allow esbuild to load esm modules and we fall back to commonjs for dependencies. Hence we had to switch back to node_modules (but still rely on yarn hardlinking for a more efficient install).
* build: Disable typechecking for testsLibravatar Kristóf Marussy2021-12-28
|
* build: Simplify type declaration generationLibravatar Kristóf Marussy2021-12-28
|
* chore: Bump dependency versionsLibravatar Kristóf Marussy2021-12-27
|
* feat: Service to main process communicationLibravatar Kristóf Marussy2021-12-24
|
* feat: Add BrowserView and synchronize its positionLibravatar Kristóf Marussy2021-12-23
|
* build: Enable typescript composite mode and cleanLibravatar Kristóf Marussy2021-12-23
| | | | | | Moves all typings to the dist-types directories from the dist directories so that we can let vite clean the dist directories on build without clobbering the typings generated by tsc.
* feat: Main to renderer store synchronizationLibravatar Kristóf Marussy2021-12-23
| | | | | | | | | | | | Patches are send in one direction only, from the main to the renderer, so all actions have to go through the context bridge and the renderer IPC to modify the store in the renderer. This makes the store in the main process a single source of truth, which simplifies debugging and state persistence. The store in the renderer is connected to redux devtools for inspection, but playing back the state in the devtools won't change the sotre in main process.
* feat: Add shared package for electron ipcLibravatar Kristóf Marussy2021-12-23