revert: build: remove project json files (#46)

This commit is contained in:
littensy 2025-03-09 18:03:54 -07:00
parent 990d71cd5b
commit d7a1f62c3c
49 changed files with 97 additions and 92 deletions

View file

@ -1,14 +1,5 @@
mkdir build mkdir build
rojo build packages/charm -o build/charm.rbxm
build() { rojo build packages/charm-sync -o build/charm-sync.rbxm
cat > packages/default.project.json <<EOF rojo build packages/react -o build/react-charm.rbxm
{"name":"$1","globIgnorePaths":["**/node_modules","**/package.json","**/wally.toml"],"tree":{"\$path":"$1"}} rojo build packages/vide -o build/vide-charm.rbxm
EOF
rojo build packages -o build/$1.rbxm
rm -rf packages/default.project.json
}
build charm
build charm-sync
build react
build vide

View file

@ -3,23 +3,25 @@
"tree": { "tree": {
"$className": "DataModel", "$className": "DataModel",
"ReplicatedStorage": { "ReplicatedStorage": {
"$className": "ReplicatedStorage",
"DevPackages": { "DevPackages": {
"$path": "modules/DevPackages", "$path": "modules/DevPackages",
"charm": { "Charm": {
"$path": "packages/charm" "$path": "packages/charm"
}, },
"charm-sync": { "CharmSync": {
"$path": "packages/charm-sync" "$path": "packages/charm-sync"
}, },
"react-charm": { "ReactCharm": {
"$path": "packages/react" "$path": "packages/react"
}, },
"vide-charm": { "VideCharm": {
"$path": "packages/vide" "$path": "packages/vide"
} }
} }
}, },
"ServerScriptService": { "ServerScriptService": {
"$className": "ServerScriptService",
"Tests": { "Tests": {
"$path": "tests" "$path": "tests"
} }

View file

@ -0,0 +1,6 @@
{
"name": "CharmSync",
"tree": {
"$path": "src"
}
}

View file

@ -1,5 +0,0 @@
local src = require(script.src)
export type SyncPayload = src.SyncPayload
return src

View file

@ -4,8 +4,8 @@
"description": "Sync server state with clients using Charm", "description": "Sync server state with clients using Charm",
"repository": "littensy/charm", "repository": "littensy/charm",
"license": "MIT", "license": "MIT",
"main": "init.luau", "main": "src/init.luau",
"types": "index.d.ts", "types": "src/index.d.ts",
"scripts": { "scripts": {
"prepare": "cp ../../LICENSE.md . && cp ../../README.md .", "prepare": "cp ../../LICENSE.md . && cp ../../README.md .",
"publish:wally": "wally publish" "publish:wally": "wally publish"

View file

@ -1,4 +1,4 @@
local Charm = require(script.Parent.Parent.Parent.charm) local Charm = require(script.Parent.Parent.Charm)
local patch = require(script.Parent.patch) local patch = require(script.Parent.patch)
local types = require(script.Parent.types) local types = require(script.Parent.types)
type AtomMap = types.AtomMap type AtomMap = types.AtomMap

View file

@ -1,6 +1,6 @@
local Players = game:GetService("Players") local Players = game:GetService("Players")
local Charm = require(script.Parent.Parent.Parent.charm) local Charm = require(script.Parent.Parent.Charm)
local interval = require(script.Parent.interval) local interval = require(script.Parent.interval)
local patch = require(script.Parent.patch) local patch = require(script.Parent.patch)
local types = require(script.Parent.types) local types = require(script.Parent.types)

View file

@ -1,4 +1,4 @@
local Charm = require(script.Parent.Parent.Parent.charm) local Charm = require(script.Parent.Parent.Charm)
type Atom<T> = Charm.Atom<T> type Atom<T> = Charm.Atom<T>
--[=[ --[=[

View file

@ -3,8 +3,6 @@ name = "littensy/charm-sync"
version = "0.3.0" version = "0.3.0"
registry = "https://github.com/UpliftGames/wally-index" registry = "https://github.com/UpliftGames/wally-index"
realm = "shared" realm = "shared"
exclude = ["package.json", "node_modules"]
include = ["LICENSE.md"]
[dependencies] [dependencies]
charm = "littensy/charm@^0.10" charm = "littensy/charm@^0.10"

View file

@ -0,0 +1,6 @@
{
"name": "Charm",
"tree": {
"$path": "src"
}
}

View file

@ -1,7 +0,0 @@
local src = require(script.src)
export type Atom<State> = src.Atom<State>
export type Selector<State> = src.Selector<State>
export type Molecule<State> = src.Selector<State>
return src

View file

@ -4,8 +4,8 @@
"description": "An atomic state management library for Roblox", "description": "An atomic state management library for Roblox",
"repository": "littensy/charm", "repository": "littensy/charm",
"license": "MIT", "license": "MIT",
"main": "init.luau", "main": "src/init.luau",
"types": "index.d.ts", "types": "src/index.d.ts",
"scripts": { "scripts": {
"prepare": "cp ../../LICENSE.md . && cp ../../README.md .", "prepare": "cp ../../LICENSE.md . && cp ../../README.md .",
"publish:wally": "wally publish" "publish:wally": "wally publish"

View file

@ -10,6 +10,7 @@ local types = require(script.types)
export type Atom<State> = types.Atom<State> export type Atom<State> = types.Atom<State>
export type Selector<State> = types.Selector<State> export type Selector<State> = types.Selector<State>
export type Molecule<State> = types.Selector<State> export type Molecule<State> = types.Selector<State>
export type SyncPayload = types.SyncPayload
return { return {
atom = atom, atom = atom,

View file

@ -31,4 +31,13 @@ export type AtomOptions<T> = {
equals: (prev: T, next: T) -> boolean, equals: (prev: T, next: T) -> boolean,
} }
--[=[
A payload that can be sent from the server to the client to synchronize
state between the two.
]=]
export type SyncPayload = {
type: "patch" | "init",
data: { [any]: any },
}
return nil return nil

View file

@ -3,7 +3,5 @@ name = "littensy/charm"
version = "0.10.0" version = "0.10.0"
registry = "https://github.com/UpliftGames/wally-index" registry = "https://github.com/UpliftGames/wally-index"
realm = "shared" realm = "shared"
exclude = ["package.json", "node_modules"]
include = ["LICENSE.md"]
[dependencies] [dependencies]

View file

@ -0,0 +1,6 @@
{
"name": "ReactCharm",
"tree": {
"$path": "src"
}
}

View file

@ -1 +0,0 @@
return require(script.src)

View file

@ -4,8 +4,8 @@
"description": "React bindings for Charm", "description": "React bindings for Charm",
"repository": "littensy/charm", "repository": "littensy/charm",
"license": "MIT", "license": "MIT",
"main": "init.luau", "main": "src/init.luau",
"types": "index.d.ts", "types": "src/index.d.ts",
"scripts": { "scripts": {
"prepare": "cp ../../LICENSE.md . && cp ../../README.md .", "prepare": "cp ../../LICENSE.md . && cp ../../README.md .",
"publish:wally": "wally publish" "publish:wally": "wally publish"

View file

@ -1,7 +1,7 @@
local Charm = require(script.Parent.Parent.charm) local Charm = require(script.Parent.Charm)
local React = if script.Parent.Parent:FindFirstChild("React") local React = if script.Parent:FindFirstChild("react")
then require(script.Parent.Parent.React) then require(script.Parent.react) :: never
else require((script.Parent.Parent :: any).react) :: never else require(script.Parent.React)
--[=[ --[=[
A hook that subscribes to changes in the given atom or selector. The A hook that subscribes to changes in the given atom or selector. The

View file

@ -3,8 +3,6 @@ name = "littensy/react-charm"
version = "0.3.0" version = "0.3.0"
registry = "https://github.com/UpliftGames/wally-index" registry = "https://github.com/UpliftGames/wally-index"
realm = "shared" realm = "shared"
exclude = ["package.json", "node_modules"]
include = ["LICENSE.md"]
[dependencies] [dependencies]
charm = "littensy/charm@^0.10" charm = "littensy/charm@^0.10"

View file

@ -0,0 +1,6 @@
{
"name": "VideCharm",
"tree": {
"$path": "src"
}
}

View file

@ -1 +0,0 @@
return require(script.src)

View file

@ -4,8 +4,8 @@
"description": "Vide bindings for Charm", "description": "Vide bindings for Charm",
"repository": "littensy/charm", "repository": "littensy/charm",
"license": "MIT", "license": "MIT",
"main": "init.luau", "main": "src/init.luau",
"types": "index.d.ts", "types": "src/index.d.ts",
"scripts": { "scripts": {
"prepare": "cp ../../LICENSE.md . && cp ../../README.md .", "prepare": "cp ../../LICENSE.md . && cp ../../README.md .",
"publish:wally": "wally publish" "publish:wally": "wally publish"

View file

@ -1,7 +1,7 @@
local Charm = require(script.Parent.Parent.charm) local Charm = require(script.Parent.Charm)
local Vide = if script.Parent.Parent:FindFirstChild("Vide") local Vide = if script.Parent:FindFirstChild("vide")
then require(script.Parent.Parent.Vide) then require(script.Parent.vide.src) :: never
else require((script.Parent.Parent :: any).vide.src) :: never else require(script.Parent.Vide)
--[=[ --[=[
Subscribes to the state of an atom and returns a Vide source. Subscribes to the state of an atom and returns a Vide source.

View file

@ -3,8 +3,6 @@ name = "littensy/vide-charm"
version = "0.3.0" version = "0.3.0"
registry = "https://github.com/UpliftGames/wally-index" registry = "https://github.com/UpliftGames/wally-index"
realm = "shared" realm = "shared"
exclude = ["package.json", "node_modules"]
include = ["LICENSE.md"]
[dependencies] [dependencies]
charm = "littensy/charm@^0.10" charm = "littensy/charm@^0.10"

View file

@ -1,6 +1,6 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local computed = Charm.computed local computed = Charm.computed
local atom = Charm.atom local atom = Charm.atom

View file

@ -1,6 +1,6 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local patch = require(ReplicatedStorage.DevPackages["charm-sync"].src.patch) local patch = require(ReplicatedStorage.DevPackages.CharmSync.patch)
local USERS = 1000 local USERS = 1000

View file

@ -1,9 +1,9 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local subscribe = Charm.subscribe local subscribe = Charm.subscribe
local CharmSync = require(ReplicatedStorage.DevPackages["charm-sync"]) local CharmSync = require(ReplicatedStorage.DevPackages.CharmSync)
local client = CharmSync.client local client = CharmSync.client
return function() return function()

View file

@ -1,8 +1,8 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local CharmSync = require(ReplicatedStorage.DevPackages["charm-sync"]) local CharmSync = require(ReplicatedStorage.DevPackages.CharmSync)
local flatten = CharmSync.flatten local flatten = CharmSync.flatten
return function() return function()

View file

@ -1,7 +1,7 @@
local HttpService = game:GetService("HttpService") local HttpService = game:GetService("HttpService")
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local patch = require(ReplicatedStorage.DevPackages["charm-sync"].src.patch) local patch = require(ReplicatedStorage.DevPackages.CharmSync.patch)
return function() return function()
local function serdes(value: { [any]: any }) local function serdes(value: { [any]: any })

View file

@ -1,11 +1,11 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local CharmSync = require(ReplicatedStorage.DevPackages["charm-sync"]) local CharmSync = require(ReplicatedStorage.DevPackages.CharmSync)
type SyncPayload = CharmSync.SyncPayload type SyncPayload = CharmSync.SyncPayload
local server = CharmSync.server local server = CharmSync.server
local patch = require(ReplicatedStorage.DevPackages["charm-sync"].src.patch) local patch = require(ReplicatedStorage.DevPackages.CharmSync.patch)
return function() return function()
local target: Player = {} :: any local target: Player = {} :: any

View file

@ -1,8 +1,8 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local validate = require(ReplicatedStorage.DevPackages["charm-sync"].src.validate) local validate = require(ReplicatedStorage.DevPackages.CharmSync.validate)
return function() return function()
it("validates inputs", function() it("validates inputs", function()

View file

@ -1,8 +1,8 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local store = require(ReplicatedStorage.DevPackages.charm.src.store) local store = require(ReplicatedStorage.DevPackages.Charm.store)
return function() return function()
it("updates state", function() it("updates state", function()

View file

@ -1,11 +1,11 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local computed = Charm.computed local computed = Charm.computed
local subscribe = Charm.subscribe local subscribe = Charm.subscribe
local effect = Charm.effect local effect = Charm.effect
local store = require(ReplicatedStorage.DevPackages.charm.src.store) local store = require(ReplicatedStorage.DevPackages.Charm.store)
return function() return function()
it("batches updates", function() it("batches updates", function()

View file

@ -1,9 +1,9 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local subscribe = Charm.subscribe local subscribe = Charm.subscribe
local store = require(ReplicatedStorage.DevPackages.charm.src.store) local store = require(ReplicatedStorage.DevPackages.Charm.store)
return function() return function()
it("gracefully handles yielding", function() it("gracefully handles yielding", function()

View file

@ -1,9 +1,9 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local computed = Charm.computed local computed = Charm.computed
local store = require(ReplicatedStorage.DevPackages.charm.src.store) local store = require(ReplicatedStorage.DevPackages.Charm.store)
local collect = require(script.Parent.Parent.utils.collect) local collect = require(script.Parent.Parent.utils.collect)
local count = require(script.Parent.Parent.utils.count) local count = require(script.Parent.Parent.utils.count)

View file

@ -1,6 +1,6 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local effect = Charm.effect local effect = Charm.effect

View file

@ -1,10 +1,10 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local mapped = Charm.mapped local mapped = Charm.mapped
local observe = Charm.observe local observe = Charm.observe
local store = require(ReplicatedStorage.DevPackages.charm.src.store) local store = require(ReplicatedStorage.DevPackages.Charm.store)
return function() return function()
it("returns mapped atoms", function() it("returns mapped atoms", function()

View file

@ -1,6 +1,6 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local observe = Charm.observe local observe = Charm.observe

View file

@ -1,6 +1,6 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local capture = Charm.capture local capture = Charm.capture
local peek = Charm.peek local peek = Charm.peek

View file

@ -1,10 +1,10 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local computed = Charm.computed local computed = Charm.computed
local subscribe = Charm.subscribe local subscribe = Charm.subscribe
local store = require(ReplicatedStorage.DevPackages.charm.src.store) local store = require(ReplicatedStorage.DevPackages.Charm.store)
local collect = require(script.Parent.Parent.utils.collect) local collect = require(script.Parent.Parent.utils.collect)
local count = require(script.Parent.Parent.utils.count) local count = require(script.Parent.Parent.utils.count)

View file

@ -6,8 +6,8 @@ local TestEZ = require(ReplicatedStorage.DevPackages.TestEZ)
-- Start Charm in debug mode -- Start Charm in debug mode
_G.__DEV__ = true _G.__DEV__ = true
require(ReplicatedStorage.DevPackages.charm) require(ReplicatedStorage.DevPackages.Charm)
require(ReplicatedStorage.DevPackages["charm-sync"]) require(ReplicatedStorage.DevPackages.CharmSync)
_G.__DEV__ = false _G.__DEV__ = false
TestEZ.TestBootstrap:run({ script.Parent }, TestEZ.Reporters.TextReporter) TestEZ.TestBootstrap:run({ script.Parent }, TestEZ.Reporters.TextReporter)

View file

@ -1,6 +1,6 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local store = require(ReplicatedStorage.DevPackages.charm.src.store) local store = require(ReplicatedStorage.DevPackages.Charm.store)
return function() return function()
afterEach(function() afterEach(function()

View file

@ -1,8 +1,8 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local ReactCharm = require(ReplicatedStorage.DevPackages["react-charm"]) local ReactCharm = require(ReplicatedStorage.DevPackages.ReactCharm)
local useAtom = ReactCharm.useAtom local useAtom = ReactCharm.useAtom
local renderHook = require(script.Parent.Parent.utils.renderHook) local renderHook = require(script.Parent.Parent.utils.renderHook)

View file

@ -1,10 +1,10 @@
local ReplicatedStorage = game:GetService("ReplicatedStorage") local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Charm = require(ReplicatedStorage.DevPackages.charm) local Charm = require(ReplicatedStorage.DevPackages.Charm)
local atom = Charm.atom local atom = Charm.atom
local Vide = require(ReplicatedStorage.DevPackages.Vide) local Vide = require(ReplicatedStorage.DevPackages.Vide)
local root = Vide.root local root = Vide.root
local VideCharm = require(ReplicatedStorage.DevPackages["vide-charm"]) local VideCharm = require(ReplicatedStorage.DevPackages.VideCharm)
local useAtom = VideCharm.useAtom local useAtom = VideCharm.useAtom
return function() return function()