Commit graph

132 commits

Author SHA1 Message Date
littensy
2fc3be34d0 fix(charm-sync): preserve global patch list order for nil patches
Resolves #67
2026-09-30 19:21:06 -07:00
littensy
c31e5c5a34 fix(charm-sync): run addSignalsToClient outside tracking scope 2026-09-30 19:06:38 -07:00
littensy
73fbfb2685 fix: resolve type errors for new luau version
Some checks are pending
CI / analyze (push) Waiting to run
2026-09-30 18:53:07 -07:00
richard
b05f3a9de6
docs: add missing playerReadyEvent call 2026-06-21 18:54:46 -07:00
richard
fdb506dc23
docs: update readme with new charm-sync details 2026-06-21 18:40:03 -07:00
littensy
ba870a8c2c release: charm v0.11.0 2026-06-20 21:34:35 -07:00
littensy
29be66fa94 test: add skipped inner effect dispose order test 2026-06-20 21:16:14 -07:00
littensy
d09fb5536b fix: set strict flags if RunService.IsStudio is true 2026-06-20 21:07:50 -07:00
richard
573533058f
feat!: use alien-signals for reactivity (#50)
* feat: use alien-signals

* refactor: remove pnpm, fix tests

* fix: `effectScope` should set scope

* fix: check previous value before calling listener

* refactor: improve imports

* refactor: exclude re-exports from wally

* refactor: embrace scope cleanup, restructure code

* fix: update pkgs dir references

* ci: simplify pesde install

* build: install dev deps with wally

* feat: add detached, add more tests

* test: simplify mapped test update

* chore: rephrase doc comment

* perf: optimize subscribe and mapped

* refactor: avoid ambiguous optional function type

* refactor: add assertion error messages

* perf: optimize mapped, add benches

* chore: delete redundant benchmarks

* perf: simplify mapped logic

* test: prettify test library

* test: try different gray

* test: color brackets

* refactor: sync 2.0.4

* refactor: use setCurrentSub instead of pauseTracking

* test: improve test suite

* test: separate parent from root

* refactor: iterate over previous data in mapped

* refactor: improve logic

* style: use `---` doc comments

* refactor: improve logic

* chore: housekeeping

* ci: add pnpm step

* ci: init submodules

* test: use lune

* refactor: improve structure and alien-signals integration

* ci: update test file path

* feat: add peek and roblox-ts types

* feat: add deep freeze flag, misc refactors

* refactor: reduce type casting, housekeeping

* refactor: rewrite untracked, update alien-signals

* chore: update eslint, housekeeping

* refactor: start charm-sync rewrite

* fix: send init payload even if atom did not update

* test: add all sync tests

* feat: prepare for alpha release

* feat: add peek, make untracked escape scope

* fix: wrap hooks in untracked, update types

* feat: add flag for inner effect tracking

* refactor: add docs, remove some modules

* refactor: align with alien-signals 3.0

* feat: add signal api

* refactor: update charm sync api

* feat: update alien-signals

* refactor: remove unnecessary features, update docs

* feat: finalize sync docs

* docs: update sync section

* docs: simplify examples

* docs: capitalize headers

* docs: add migration tips

* docs: fix whitespace

* docs: rephrase computed arg change

* refactor: rename batch, misc fixes & perf updates

* refactor: simplify charm sync validation

* feat: update alien-signals, add recursion flag

* feat: add `recursive()`

* fix: allow dispose in observers

* feat: add `trigger()`, refactor source

* docs: update readme

* chore: prepare release candidate

* test: make some tests more reliable

* docs: fix typo

* feat: add `reactive()`

* chore: bump versions

* docs: reword reactive docs

* docs: fix typo

* feat: add `toRaw()`

* fix: check for nil diffs

* chore: bump versions

* perf: do not create proxies for iteration

* fix: make `toRaw` track all calls

* fix: check none before patching mutable tables

* chore: bump charm-sync version

* docs: add fishing game example project

* feat: sync signals that return reactive proxy

* fix: refine reactive proxy logic

* fix: prevent early reactive gc, alien-signals 3.1.1

* fix: wrap iterated values in `reactive()`

* fix: loosen client signal types

* chore: bump release candidate

* fix: remove unsynced signals immediately

* test: use lute for tests

* chore: bump versions

* ci: set up lute

* refactor: improve source readability

* ci: upgrade lute

* build: loosen workspace version requirements

* chore: bump deps

* fix: update signal overload for setter (#58)

* fix: add missing recursed check

* test: add important vue reactivity tests

* chore: fix react tests, run stylua

* chore: update vide

* docs: improve intro and explain getters

* docs: adjust ordering by importance

* docs: move listen nesting note

* build: fix react peer dep for ci

* chore: update lockfile

* ci: use javascript eslint config

* ci: ignore eslint config file

* refactor: move test directories

* feat: allow recursion in effects by default

* release: charm v0.11.0-rc.4

* refactor: remove recursive()

* refactor: reorganize repo, create deep-charm

* docs: rephrase some sections

* feat: export getter and setter types

* docs: rephrase intro again

* feat!: run listen and subscribe callback in untracked

* refactor!: remove peek

* docs: note peek in migration guide

* release: charm v0.11.0-rc.5

* release: charm-sync v0.4.0-rc.7

* release: react-charm v0.4.0-rc.4

* fix: remove old keys when updating key in `mapped()`

* refactor: shorten error traceback, housekeeping

* refactor: keep error level in some cases

* fix: check if cleanup functions disposed effect

* refactor!: run effects in batched

* ci: check eslint and prettier

* perf: run observe fn in untracked

* perf: call mapper as-is in `mapped()`

* refactor: error for effect cleanup errors

* refactor: use new type solver

* ci: disable new solver flag until 0.714

* chore: housekeeping

* refactor: improve errors in nonstrict, optimize noyield

* chore: housekeeping

* refactor: satisfy new solver

* refactor: improve error traceback

* docs: link roblox signals

* chore: housekeeping

* perf: remove `clearPending` inline operation

* refactor: check type of cleanup

* ci: remove selene

* fix: always return pending value in signal setter

* test: add multi benchmark

* release: charm v0.11.0-rc.6

* test: add cleanup order tests

* chore: bump deps

* docs: add warning for deep-charm and note for `observe()`

---------

Co-authored-by: safazi <safazics@gmail.com>
2026-06-20 20:51:17 -07:00
alihsaas
d0b7cff943
fix: add cleanup parameter to effect type (#52) 2025-07-23 00:35:39 -07:00
littensy
d7a1f62c3c revert: build: remove project json files (#46) 2025-03-09 18:03:54 -07:00
littensy
990d71cd5b chore: bump versions 2025-03-09 16:24:23 -07:00
richard
53ce1e8774
feat: refine patch type for autoSerialize (#47) 2025-03-09 16:09:00 -07:00
richard
e9d8dffb02
build: remove project json files (#46)
* build: remove project json files

Including Rojo project files in packages interferes with certain Wally packages that depend on roblox-ts packages

* build: create project files for release
2025-03-09 15:33:04 -07:00
safazi
e7fe400fa8
docs: fix typo in README.md (#44) 2025-01-26 15:21:57 -08:00
Richard
fae2635ba9 chore: bump versions 2025-01-25 16:53:14 -08:00
Richard
5d25f9ff20 build: move charm to peerDependencies 2025-01-25 16:52:05 -08:00
Richard
c9755d31fd refactor(vide): simplify task.spawn call 2025-01-25 16:41:05 -08:00
Richard
39a5b67d9c docs: fix typo 2025-01-25 16:19:23 -08:00
Richard
fa2fce090b docs: document cleanup behavior 2025-01-25 16:17:08 -08:00
richard
8063ea3142
feat(sync): add flatten() function (#43) 2025-01-25 16:11:34 -08:00
Richard
63388761f8 refactor(sync): create AtomMap type 2025-01-25 16:07:28 -08:00
Richard
884e6c0e8c test: add patch benchmark 2025-01-25 15:05:55 -08:00
Richard
d703990e5b refactor(sync): destructure options argument 2025-01-25 14:19:26 -08:00
Richard
c7c5601e7c chore: update README.md 2025-01-25 14:14:05 -08:00
richard
b8bb123379
feat(sync): add autoSerialize option (#42)
* feat(sync): add `autoSerialize` option

* docs: fix `autoSerialize` note

* docs: fix typo
2025-01-25 14:07:14 -08:00
richard
8eddd182d3
refactor: move modules to packages (#41)
* refactor: move modules to `packages`

* chore: remove .vscode
2025-01-25 13:12:50 -08:00
richard
89f1dfeaa5
feat: pass cleanup function to effect (#40) 2025-01-25 12:14:21 -08:00
richard
6be2fbb746
fix: do not track implicit dependencies in observe() and mapped() (#39)
* fix: use `subscribe` for explicit dependencies

* fix: call listeners initially once

* fix: wrap initial run in `peek()`
2025-01-25 11:51:17 -08:00
Richard
a430cf63e5 fix: Atom type extends Selector
Also deprecates `Molecule`
2025-01-25 11:21:56 -08:00
richard
f44e3e135f
fix: add object overloads for observe() and mapped() (#38) 2025-01-25 11:10:23 -08:00
Richard
d15c23bce1 fix: exclude undefined from non-nullable atom 2025-01-25 11:07:30 -08:00
Richard
88567e17c5 ci: check all packages in src 2025-01-25 11:05:11 -08:00
richard
aae769c981
feat: add serializeArrays option (#29)
* feat: add optional `convertArrays`

* perf: sync atomic changes to keys

* feat: add `serializeArrays` option

* docs: rephrase debug mode flag
2024-11-17 01:22:07 -08:00
Richard
e4019c049c chore: bump versions 2024-10-26 19:23:21 -07:00
Richard
210266f148 chore: bump versions 2024-10-26 19:17:20 -07:00
Richard
0358adc9c2 fix: function generics default to any for AnyMap 2024-10-26 19:16:06 -07:00
richard
73ae0e6de4
docs: rewrite documentation (#25)
* docs: rewrite documentation

* refactor: rename `Molecule` to `Selector`

* refactor: replace all references to molecules

* docs: rephrase intro

* docs: remove italics

* docs: fix typo

* docs: update atom module names

* docs: link example, add file names
2024-10-25 19:53:46 -07:00
Richard
833d5f8e86 chore: strip beta tag 2024-10-12 22:22:04 -07:00
Richard
50dd64ee18 fix: do not publish to wally concurrently 2024-10-12 19:40:51 -07:00
Richard
b0b2d34048 chore: bump beta versions 2024-10-12 19:26:21 -07:00
Richard
175717f47e fix: support roblox-ts modules 2024-10-12 19:24:21 -07:00
Richard
3b0fa2d596 build: specify package manager 2024-10-12 19:15:58 -07:00
Richard
a40e2ce6fa build: add publish scripts 2024-10-12 19:09:20 -07:00
Richard
5a32a24a47 ci: remove publishing from workflow 2024-10-12 19:06:24 -07:00
Richard
e94c542367 ci: change publish order 2024-10-12 19:02:32 -07:00
Richard
dcaa7ed1e6 fix: install pnpm in release workflow 2024-10-12 18:51:07 -07:00
Richard
b6dbcea844 chore: beta release 2024-10-12 18:44:00 -07:00
richard
08c7e690d5
refactor!: migrate to monorepo (#23)
* refactor!: create monorepo

* chore: prepare release, set up workflows

* refactor: rename `modules` to `src`

* docs: add docs for all packages

* refactor: rename root project file

* chore: bump deps

* build: rename `lint`, add `pack` script

* revert: delete pack script

This will not be useful for development.
2024-10-12 18:29:15 -07:00
Richard
b038bf1f70 0.7.6 2024-09-28 17:18:34 -07:00