From 18723c1377b300ea37c8fc990883000fa4bf9f2e Mon Sep 17 00:00:00 2001
From: Richard
Date: Sun, 25 Feb 2024 03:41:09 -0800
Subject: [PATCH] feat: initial commit
---
.eslintrc | 26 +
.gitattributes | 2 +
.github/workflows/ci.yml | 36 +
.github/workflows/release.yml | 29 +
.gitignore | 7 +
.luaurc | 3 +
.prettierrc | 6 +
.vscode/settings.json | 5 +
LICENSE.md | 7 +
README.md | 142 ++
aftman.toml | 11 +
bin/check.sh | 18 +
bin/install.sh | 4 +
bin/spec.server.luau | 10 +
bin/testez.d.luau | 24 +
default.project.json | 6 +
dev.project.json | 20 +
images/logo.png | Bin 0 -> 252858 bytes
package.json | 58 +
pnpm-lock.yaml | 1482 +++++++++++++++++++
selene.toml | 5 +
src/__tests__/atom.spec.luau | 85 ++
src/__tests__/derive.spec.luau | 92 ++
src/__tests__/init.spec.luau | 7 +
src/__tests__/observe.spec.luau | 33 +
src/__tests__/react/helpers/renderHook.luau | 42 +
src/__tests__/react/useAtomState.spec.luau | 27 +
src/__tests__/react/useSetAtom.spec.luau | 34 +
src/__tests__/split.spec.luau | 128 ++
src/__tests__/subscribe.spec.luau | 92 ++
src/atom.luau | 137 ++
src/derive.luau | 53 +
src/index.d.ts | 89 ++
src/init.luau | 26 +
src/isAtom.luau | 5 +
src/modules/Promise.luau | 9 +
src/modules/React.luau | 8 +
src/modules/ReactRoblox.luau | 8 +
src/observe.luau | 38 +
src/react/useAtom.luau | 19 +
src/react/useAtomState.luau | 35 +
src/react/useSetAtom.luau | 14 +
src/split.luau | 75 +
src/subscribe.luau | 46 +
src/utils/reference.luau | 31 +
testez-companion.toml | 1 +
testez.yml | 53 +
tsconfig.json | 27 +
wally.lock | 103 ++
wally.toml | 20 +
50 files changed, 3238 insertions(+)
create mode 100644 .eslintrc
create mode 100644 .gitattributes
create mode 100644 .github/workflows/ci.yml
create mode 100644 .github/workflows/release.yml
create mode 100644 .gitignore
create mode 100644 .luaurc
create mode 100644 .prettierrc
create mode 100644 .vscode/settings.json
create mode 100644 LICENSE.md
create mode 100644 README.md
create mode 100644 aftman.toml
create mode 100644 bin/check.sh
create mode 100644 bin/install.sh
create mode 100644 bin/spec.server.luau
create mode 100644 bin/testez.d.luau
create mode 100644 default.project.json
create mode 100644 dev.project.json
create mode 100644 images/logo.png
create mode 100644 package.json
create mode 100644 pnpm-lock.yaml
create mode 100644 selene.toml
create mode 100644 src/__tests__/atom.spec.luau
create mode 100644 src/__tests__/derive.spec.luau
create mode 100644 src/__tests__/init.spec.luau
create mode 100644 src/__tests__/observe.spec.luau
create mode 100644 src/__tests__/react/helpers/renderHook.luau
create mode 100644 src/__tests__/react/useAtomState.spec.luau
create mode 100644 src/__tests__/react/useSetAtom.spec.luau
create mode 100644 src/__tests__/split.spec.luau
create mode 100644 src/__tests__/subscribe.spec.luau
create mode 100644 src/atom.luau
create mode 100644 src/derive.luau
create mode 100644 src/index.d.ts
create mode 100644 src/init.luau
create mode 100644 src/isAtom.luau
create mode 100644 src/modules/Promise.luau
create mode 100644 src/modules/React.luau
create mode 100644 src/modules/ReactRoblox.luau
create mode 100644 src/observe.luau
create mode 100644 src/react/useAtom.luau
create mode 100644 src/react/useAtomState.luau
create mode 100644 src/react/useSetAtom.luau
create mode 100644 src/split.luau
create mode 100644 src/subscribe.luau
create mode 100644 src/utils/reference.luau
create mode 100644 testez-companion.toml
create mode 100644 testez.yml
create mode 100644 tsconfig.json
create mode 100644 wally.lock
create mode 100644 wally.toml
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..8f628fe
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,26 @@
+{
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": {
+ "jsx": true,
+ "useJSXTextNode": true,
+ "ecmaVersion": 2018,
+ "sourceType": "module",
+ "project": "./tsconfig.json"
+ },
+ "plugins": [
+ "@typescript-eslint",
+ "roblox-ts",
+ "prettier"
+ ],
+ "extends": [
+ "eslint:recommended",
+ "plugin:@typescript-eslint/recommended",
+ "plugin:roblox-ts/recommended",
+ "plugin:prettier/recommended"
+ ],
+ "rules": {
+ "prettier/prettier": "warn",
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/no-unsafe-declaration-merging": "off"
+ }
+}
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..58d6f77
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+* text=auto eol=lf
+*.luau linguist-language=Lua
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..a8561d3
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,36 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - main
+
+ pull_request:
+ branches:
+ - main
+
+jobs:
+ analyze:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: pnpm/action-setup@v3
+ with:
+ version: 8.15.4
+
+ - name: Install Aftman
+ uses: ok-nick/setup-aftman@v0.4.2
+
+ - name: Install dependencies
+ run: |
+ pnpm install
+ pnpm wally
+
+ - name: Check code quality
+ run: pnpm lint
+
+ - name: Run ESLint
+ run: pnpm eslint
+
+ - name: Build model
+ run: rojo build -o charm.rbxm
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..cb6a3c2
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,29 @@
+name: Release
+
+on:
+ release:
+ types:
+ - published
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install Aftman
+ uses: ok-nick/setup-aftman@v0.4.2
+
+ - name: Install dependencies
+ run: wally install
+
+ - name: Build model
+ run: rojo build -o charm.rbxm
+
+ - name: Upload release
+ uses: softprops/action-gh-release@v2
+ if: ${{ github.event.release }}
+ with:
+ files: charm.rbxm
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f57862f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+/node_modules
+/Packages
+/DevPackages
+/sourcemap.json
+*.tsbuildinfo
+*.tgz
+.DS_Store
diff --git a/.luaurc b/.luaurc
new file mode 100644
index 0000000..e2b625c
--- /dev/null
+++ b/.luaurc
@@ -0,0 +1,3 @@
+{
+ "languageMode": "strict"
+}
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..701a273
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,6 @@
+{
+ "printWidth": 120,
+ "tabWidth": 2,
+ "trailingComma": "all",
+ "useTabs": true
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..e6aa02a
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "luau-lsp.sourcemap.rojoProjectFile": "dev.project.json",
+ "luau-lsp.types.definitionFiles": ["bin/testez.d.luau"],
+ "luau-lsp.completion.imports.requireStyle": "alwaysRelative"
+}
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..ae1bb3d
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,7 @@
+Copyright 2024 Littensy
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..652d82e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,142 @@
+
+
+
+
+ Charm
+
+ Atomic state management for Roblox.
+
+ npm package →
+
+
+
+
+
+
+[](https://www.npmjs.com/package/@rbxts/charm)
+[](LICENSE.md)
+
+
+
+**Charm** is a Roblox state management library, inspired by [Jotai](https://jotai.org). Designed to be an alternative to [Reflex](https://littensy.github.io/reflex), Charm aims to bring an atomic and composable approach to your game's state.
+
+> [!NOTE]
+> Charm is incomplete and not ready for use.
+
+## 📦 Setup
+
+### TypeScript
+
+Install Charm through your package manager of choice. \
+[React](https://github.com/littensy/rbxts-react) is optional, but highly recommended.
+
+```sh
+npm install @rbxts/charm
+yarn add @rbxts/charm
+pnpm add @rbxts/charm
+```
+
+### Wally
+
+Add `littensy/charm` to your `wally.toml` file.
+
+```toml
+[dependencies]
+Charm = "littensy/charm@VERSION"
+```
+
+## 📚 Documentation
+
+### `atom(state)`
+
+### `derive(...atoms, combiner)`
+
+### `subscribe(atom, listener)`
+
+### `observe(atom, observer)`
+
+### `split(atom, keyExtractor?)`
+
+---
+
+### `Atom(state?)`
+
+### `Atom.get(selector?)`
+
+### `Atom.set(state)`
+
+### `Atom.memo(equalityFn)`
+
+### `Atom.readonly()`
+
+### `Atom.writable(onSet?)`
+
+### `Atom.named(label)`
+
+### `Atom.unmount()`
+
+---
+
+### `useAtom(atom, selector?)`
+
+### `useAtomState(atom)`
+
+### `useSetAtom(atom)`
+
+## 🚀 Examples
+
+### Counter atom
+
+```ts
+import { atom, derive, subscribe } from "@rbxts/charm";
+
+const counterAtom = atom(0);
+const doubleCounterAtom = derive(counterAtom, (counter) => counter * 2);
+
+subscribe(doubleCounterAtom, (value) => {
+ print(value);
+});
+
+counterAtom(1);
+counterAtom((count) => count + 1);
+```
+
+### Counter component
+
+```tsx
+import React from "@rbxts/react";
+import { useAtom } from "@rbxts/charm";
+import { counterAtom } from "./counter-atom";
+
+function Counter() {
+ const [count, setCount] = useAtom(counterAtom);
+
+ return (
+ setCount(count + 1),
+ }}
+ />
+ );
+}
+```
+
+## 🙋 Concerns
+
+In Jotai, `atom()` returns an [atom config](https://jotai.org/docs/core/atom), and its state is managed entirely by the Provider. However, in Charm, `atom()` returns something closer to a store, and its state is managed by the atom itself.
+
+Charm does this for simplicity in use cases outside of React, but this might go against Jotai's focus on pure functional programming. More insight is needed to determine if this is a good idea.
+
+---
+
+
+Charm is released under the MIT License.
+
+
+
+
+[](LICENSE.md)
+
+
diff --git a/aftman.toml b/aftman.toml
new file mode 100644
index 0000000..187b7df
--- /dev/null
+++ b/aftman.toml
@@ -0,0 +1,11 @@
+# This file lists tools managed by Aftman, a cross-platform toolchain manager.
+# For more information, see https://github.com/LPGhatguy/aftman
+
+# To add a new tool, add an entry to this table.
+[tools]
+wally = "UpliftGames/wally@0.3.2"
+rojo = "rojo-rbx/rojo@7.4.1"
+wally-package-types = "JohnnyMorganz/wally-package-types@1.3.1"
+stylua = "johnnymorganz/stylua@0.20.0"
+selene = "Kampfkarren/selene@0.26.1"
+luau-lsp = "johnnymorganz/luau-lsp@1.27.1"
diff --git a/bin/check.sh b/bin/check.sh
new file mode 100644
index 0000000..e388fe8
--- /dev/null
+++ b/bin/check.sh
@@ -0,0 +1,18 @@
+curl -o bin/roblox.d.luau https://raw.githubusercontent.com/JohnnyMorganz/luau-lsp/main/scripts/globalTypes.d.lua
+
+rojo sourcemap dev.project.json -o sourcemap.json
+
+luau-lsp analyze \
+ --defs=bin/roblox.d.luau \
+ --defs=bin/testez.d.luau \
+ --flag:LuauFixIndexerSubtypingOrdering=true \
+ --flag:LuauInstantiateInSubtyping=true \
+ --flag:LuauTinyControlFlowAnalysis=true \
+ --sourcemap=sourcemap.json \
+ --ignore="**/_Index/**" src
+
+selene src
+stylua --check src
+eslint src
+
+rm bin/roblox.d.luau
diff --git a/bin/install.sh b/bin/install.sh
new file mode 100644
index 0000000..4091d75
--- /dev/null
+++ b/bin/install.sh
@@ -0,0 +1,4 @@
+wally install
+rojo sourcemap dev.project.json --output sourcemap.json
+wally-package-types --sourcemap sourcemap.json Packages
+wally-package-types --sourcemap sourcemap.json DevPackages
diff --git a/bin/spec.server.luau b/bin/spec.server.luau
new file mode 100644
index 0000000..81d6907
--- /dev/null
+++ b/bin/spec.server.luau
@@ -0,0 +1,10 @@
+--!nocheck
+
+local ReplicatedStorage = game:GetService("ReplicatedStorage")
+
+local Packages = ReplicatedStorage.Packages
+local DevPackages = ReplicatedStorage.DevPackages
+
+local TestEZ = require(DevPackages.TestEZ)
+
+TestEZ.TestBootstrap:run({ Packages.charm.__tests__ }, TestEZ.Reporters.TextReporter)
diff --git a/bin/testez.d.luau b/bin/testez.d.luau
new file mode 100644
index 0000000..28bef92
--- /dev/null
+++ b/bin/testez.d.luau
@@ -0,0 +1,24 @@
+declare function afterAll(callback: () -> ()): ()
+declare function afterEach(callback: () -> ()): ()
+
+declare function beforeAll(callback: () -> ()): ()
+declare function beforeEach(callback: () -> ()): ()
+
+declare function describe(phrase: string, callback: () -> ()): ()
+declare function describeFOCUS(phrase: string, callback: () -> ()): ()
+declare function fdescribe(phrase: string, callback: () -> ()): ()
+declare function describeSKIP(phrase: string, callback: () -> ()): ()
+declare function xdescribe(phrase: string, callback: () -> ()): ()
+
+declare function expect(value: any): any
+
+declare function FIXME(optionalMessage: string?): ()
+declare function FOCUS(): ()
+declare function SKIP(): ()
+
+declare function it(phrase: string, callback: () -> ()): ()
+declare function itFOCUS(phrase: string, callback: () -> ()): ()
+declare function fit(phrase: string, callback: () -> ()): ()
+declare function itSKIP(phrase: string, callback: () -> ()): ()
+declare function xit(phrase: string, callback: () -> ()): ()
+declare function itFIXME(phrase: string, callback: () -> ()): ()
diff --git a/default.project.json b/default.project.json
new file mode 100644
index 0000000..a485e4d
--- /dev/null
+++ b/default.project.json
@@ -0,0 +1,6 @@
+{
+ "name": "charm",
+ "tree": {
+ "$path": "src"
+ }
+}
diff --git a/dev.project.json b/dev.project.json
new file mode 100644
index 0000000..ed0d1b9
--- /dev/null
+++ b/dev.project.json
@@ -0,0 +1,20 @@
+{
+ "name": "charm-dev",
+ "tree": {
+ "$className": "DataModel",
+ "ReplicatedStorage": {
+ "$className": "ReplicatedStorage",
+ "Packages": {
+ "$path": "Packages",
+ "ReactLua": { "$path": "Packages" },
+ "charm": { "$path": "src" }
+ },
+ "DevPackages": { "$path": "DevPackages" }
+ },
+ "TestService": {
+ "$className": "TestService",
+ "$properties": { "ExecuteWithStudioRun": true },
+ "spec": { "$path": "bin/spec.server.luau" }
+ }
+ }
+}
diff --git a/images/logo.png b/images/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f4915ee860bc328c43da3b8e42adf65c759d0d7
GIT binary patch
literal 252858
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