mirror of
https://github.com/littensy/charm.git
synced 2026-10-20 17:51:37 +00:00
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
This commit is contained in:
parent
e7fe400fa8
commit
e9d8dffb02
49 changed files with 95 additions and 100 deletions
17
bin/build.sh
17
bin/build.sh
|
|
@ -1,5 +1,14 @@
|
|||
mkdir build
|
||||
rojo build packages/charm -o build/charm.rbxm
|
||||
rojo build packages/charm-sync -o build/charm-sync.rbxm
|
||||
rojo build packages/react -o build/react-charm.rbxm
|
||||
rojo build packages/vide -o build/vide-charm.rbxm
|
||||
|
||||
build() {
|
||||
cat > packages/default.project.json <<EOF
|
||||
{"name":"$1","globIgnorePaths":["**/node_modules","**/package.json","**/wally.toml"],"tree":{"\$path":"$1"}}
|
||||
EOF
|
||||
rojo build packages -o build/$1.rbxm
|
||||
rm -rf packages/default.project.json
|
||||
}
|
||||
|
||||
build charm
|
||||
build charm-sync
|
||||
build react
|
||||
build vide
|
||||
|
|
|
|||
|
|
@ -3,25 +3,23 @@
|
|||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"$className": "ReplicatedStorage",
|
||||
"DevPackages": {
|
||||
"$path": "modules/DevPackages",
|
||||
"Charm": {
|
||||
"charm": {
|
||||
"$path": "packages/charm"
|
||||
},
|
||||
"CharmSync": {
|
||||
"charm-sync": {
|
||||
"$path": "packages/charm-sync"
|
||||
},
|
||||
"ReactCharm": {
|
||||
"react-charm": {
|
||||
"$path": "packages/react"
|
||||
},
|
||||
"VideCharm": {
|
||||
"vide-charm": {
|
||||
"$path": "packages/vide"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ServerScriptService": {
|
||||
"$className": "ServerScriptService",
|
||||
"Tests": {
|
||||
"$path": "tests"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"name": "CharmSync",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
5
packages/charm-sync/init.luau
Normal file
5
packages/charm-sync/init.luau
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
local src = require(script.src)
|
||||
|
||||
export type SyncPayload = src.SyncPayload
|
||||
|
||||
return src
|
||||
|
|
@ -4,8 +4,8 @@
|
|||
"description": "Sync server state with clients using Charm",
|
||||
"repository": "littensy/charm",
|
||||
"license": "MIT",
|
||||
"main": "src/init.luau",
|
||||
"types": "src/index.d.ts",
|
||||
"main": "init.luau",
|
||||
"types": "index.d.ts",
|
||||
"scripts": {
|
||||
"prepare": "cp ../../LICENSE.md . && cp ../../README.md .",
|
||||
"publish:wally": "wally publish"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
local Charm = require(script.Parent.Parent.Charm)
|
||||
local Charm = require(script.Parent.Parent.Parent.charm)
|
||||
local patch = require(script.Parent.patch)
|
||||
local types = require(script.Parent.types)
|
||||
type AtomMap = types.AtomMap
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
local Players = game:GetService("Players")
|
||||
|
||||
local Charm = require(script.Parent.Parent.Charm)
|
||||
local Charm = require(script.Parent.Parent.Parent.charm)
|
||||
local interval = require(script.Parent.interval)
|
||||
local patch = require(script.Parent.patch)
|
||||
local types = require(script.Parent.types)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
local Charm = require(script.Parent.Parent.Charm)
|
||||
local Charm = require(script.Parent.Parent.Parent.charm)
|
||||
type Atom<T> = Charm.Atom<T>
|
||||
|
||||
--[=[
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ name = "littensy/charm-sync"
|
|||
version = "0.2.0"
|
||||
registry = "https://github.com/UpliftGames/wally-index"
|
||||
realm = "shared"
|
||||
exclude = ["package.json", "node_modules"]
|
||||
include = ["LICENSE.md"]
|
||||
|
||||
[dependencies]
|
||||
Charm = "littensy/charm@^0.9"
|
||||
charm = "littensy/charm@^0.9"
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"name": "Charm",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
7
packages/charm/init.luau
Normal file
7
packages/charm/init.luau
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
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
|
||||
|
|
@ -4,8 +4,8 @@
|
|||
"description": "An atomic state management library for Roblox",
|
||||
"repository": "littensy/charm",
|
||||
"license": "MIT",
|
||||
"main": "src/init.luau",
|
||||
"types": "src/index.d.ts",
|
||||
"main": "init.luau",
|
||||
"types": "index.d.ts",
|
||||
"scripts": {
|
||||
"prepare": "cp ../../LICENSE.md . && cp ../../README.md .",
|
||||
"publish:wally": "wally publish"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ local types = require(script.types)
|
|||
export type Atom<State> = types.Atom<State>
|
||||
export type Selector<State> = types.Selector<State>
|
||||
export type Molecule<State> = types.Selector<State>
|
||||
export type SyncPayload = types.SyncPayload
|
||||
|
||||
return {
|
||||
atom = atom,
|
||||
|
|
|
|||
|
|
@ -31,13 +31,4 @@ export type AtomOptions<T> = {
|
|||
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
|
||||
|
|
|
|||
|
|
@ -3,5 +3,7 @@ name = "littensy/charm"
|
|||
version = "0.9.0"
|
||||
registry = "https://github.com/UpliftGames/wally-index"
|
||||
realm = "shared"
|
||||
exclude = ["package.json", "node_modules"]
|
||||
include = ["LICENSE.md"]
|
||||
|
||||
[dependencies]
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"name": "ReactCharm",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
1
packages/react/init.luau
Normal file
1
packages/react/init.luau
Normal file
|
|
@ -0,0 +1 @@
|
|||
return require(script.src)
|
||||
|
|
@ -4,8 +4,8 @@
|
|||
"description": "React bindings for Charm",
|
||||
"repository": "littensy/charm",
|
||||
"license": "MIT",
|
||||
"main": "src/init.luau",
|
||||
"types": "src/index.d.ts",
|
||||
"main": "init.luau",
|
||||
"types": "index.d.ts",
|
||||
"scripts": {
|
||||
"prepare": "cp ../../LICENSE.md . && cp ../../README.md .",
|
||||
"publish:wally": "wally publish"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
local Charm = require(script.Parent.Charm)
|
||||
local React = if script.Parent:FindFirstChild("react")
|
||||
then require(script.Parent.react) :: never
|
||||
else require(script.Parent.React)
|
||||
local Charm = require(script.Parent.Parent.charm)
|
||||
local React = if script.Parent.Parent:FindFirstChild("React")
|
||||
then require(script.Parent.Parent.React)
|
||||
else require((script.Parent.Parent :: any).react) :: never
|
||||
|
||||
--[=[
|
||||
A hook that subscribes to changes in the given atom or selector. The
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@ name = "littensy/react-charm"
|
|||
version = "0.2.0"
|
||||
registry = "https://github.com/UpliftGames/wally-index"
|
||||
realm = "shared"
|
||||
exclude = ["package.json", "node_modules"]
|
||||
include = ["LICENSE.md"]
|
||||
|
||||
[dependencies]
|
||||
Charm = "littensy/charm@^0.9"
|
||||
charm = "littensy/charm@^0.9"
|
||||
React = "jsdotlua/react@^17"
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"name": "VideCharm",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
1
packages/vide/init.luau
Normal file
1
packages/vide/init.luau
Normal file
|
|
@ -0,0 +1 @@
|
|||
return require(script.src)
|
||||
|
|
@ -4,8 +4,8 @@
|
|||
"description": "Vide bindings for Charm",
|
||||
"repository": "littensy/charm",
|
||||
"license": "MIT",
|
||||
"main": "src/init.luau",
|
||||
"types": "src/index.d.ts",
|
||||
"main": "init.luau",
|
||||
"types": "index.d.ts",
|
||||
"scripts": {
|
||||
"prepare": "cp ../../LICENSE.md . && cp ../../README.md .",
|
||||
"publish:wally": "wally publish"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
local Charm = require(script.Parent.Charm)
|
||||
local Vide = if script.Parent:FindFirstChild("vide")
|
||||
then require(script.Parent.vide.src) :: never
|
||||
else require(script.Parent.Vide)
|
||||
local Charm = require(script.Parent.Parent.charm)
|
||||
local Vide = if script.Parent.Parent:FindFirstChild("Vide")
|
||||
then require(script.Parent.Parent.Vide)
|
||||
else require((script.Parent.Parent :: any).vide.src) :: never
|
||||
|
||||
--[=[
|
||||
Subscribes to the state of an atom and returns a Vide source.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@ name = "littensy/vide-charm"
|
|||
version = "0.2.0"
|
||||
registry = "https://github.com/UpliftGames/wally-index"
|
||||
realm = "shared"
|
||||
exclude = ["package.json", "node_modules"]
|
||||
include = ["LICENSE.md"]
|
||||
|
||||
[dependencies]
|
||||
Charm = "littensy/charm@^0.9"
|
||||
charm = "littensy/charm@^0.9"
|
||||
Vide = "centau/vide@^0.3"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local computed = Charm.computed
|
||||
local atom = Charm.atom
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local patch = require(ReplicatedStorage.DevPackages.CharmSync.patch)
|
||||
local patch = require(ReplicatedStorage.DevPackages["charm-sync"].src.patch)
|
||||
|
||||
local USERS = 1000
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local subscribe = Charm.subscribe
|
||||
local CharmSync = require(ReplicatedStorage.DevPackages.CharmSync)
|
||||
local CharmSync = require(ReplicatedStorage.DevPackages["charm-sync"])
|
||||
local client = CharmSync.client
|
||||
|
||||
return function()
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local CharmSync = require(ReplicatedStorage.DevPackages.CharmSync)
|
||||
local CharmSync = require(ReplicatedStorage.DevPackages["charm-sync"])
|
||||
local flatten = CharmSync.flatten
|
||||
|
||||
return function()
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
local HttpService = game:GetService("HttpService")
|
||||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local patch = require(ReplicatedStorage.DevPackages.CharmSync.patch)
|
||||
local patch = require(ReplicatedStorage.DevPackages["charm-sync"].src.patch)
|
||||
|
||||
return function()
|
||||
local function serdes(value: { [any]: any })
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local CharmSync = require(ReplicatedStorage.DevPackages.CharmSync)
|
||||
local CharmSync = require(ReplicatedStorage.DevPackages["charm-sync"])
|
||||
type SyncPayload = CharmSync.SyncPayload
|
||||
local server = CharmSync.server
|
||||
local patch = require(ReplicatedStorage.DevPackages.CharmSync.patch)
|
||||
local patch = require(ReplicatedStorage.DevPackages["charm-sync"].src.patch)
|
||||
|
||||
return function()
|
||||
local target: Player = {} :: any
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local validate = require(ReplicatedStorage.DevPackages.CharmSync.validate)
|
||||
local validate = require(ReplicatedStorage.DevPackages["charm-sync"].src.validate)
|
||||
|
||||
return function()
|
||||
it("validates inputs", function()
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local store = require(ReplicatedStorage.DevPackages.Charm.store)
|
||||
local store = require(ReplicatedStorage.DevPackages.charm.src.store)
|
||||
|
||||
return function()
|
||||
it("updates state", function()
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local computed = Charm.computed
|
||||
local subscribe = Charm.subscribe
|
||||
local effect = Charm.effect
|
||||
local store = require(ReplicatedStorage.DevPackages.Charm.store)
|
||||
local store = require(ReplicatedStorage.DevPackages.charm.src.store)
|
||||
|
||||
return function()
|
||||
it("batches updates", function()
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local subscribe = Charm.subscribe
|
||||
local store = require(ReplicatedStorage.DevPackages.Charm.store)
|
||||
local store = require(ReplicatedStorage.DevPackages.charm.src.store)
|
||||
|
||||
return function()
|
||||
it("gracefully handles yielding", function()
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local computed = Charm.computed
|
||||
local store = require(ReplicatedStorage.DevPackages.Charm.store)
|
||||
local store = require(ReplicatedStorage.DevPackages.charm.src.store)
|
||||
local collect = require(script.Parent.Parent.utils.collect)
|
||||
local count = require(script.Parent.Parent.utils.count)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local effect = Charm.effect
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local mapped = Charm.mapped
|
||||
local observe = Charm.observe
|
||||
local store = require(ReplicatedStorage.DevPackages.Charm.store)
|
||||
local store = require(ReplicatedStorage.DevPackages.charm.src.store)
|
||||
|
||||
return function()
|
||||
it("returns mapped atoms", function()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local observe = Charm.observe
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local capture = Charm.capture
|
||||
local peek = Charm.peek
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local computed = Charm.computed
|
||||
local subscribe = Charm.subscribe
|
||||
local store = require(ReplicatedStorage.DevPackages.Charm.store)
|
||||
local store = require(ReplicatedStorage.DevPackages.charm.src.store)
|
||||
local collect = require(script.Parent.Parent.utils.collect)
|
||||
local count = require(script.Parent.Parent.utils.count)
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ local TestEZ = require(ReplicatedStorage.DevPackages.TestEZ)
|
|||
|
||||
-- Start Charm in debug mode
|
||||
_G.__DEV__ = true
|
||||
require(ReplicatedStorage.DevPackages.Charm)
|
||||
require(ReplicatedStorage.DevPackages.CharmSync)
|
||||
require(ReplicatedStorage.DevPackages.charm)
|
||||
require(ReplicatedStorage.DevPackages["charm-sync"])
|
||||
_G.__DEV__ = false
|
||||
|
||||
TestEZ.TestBootstrap:run({ script.Parent }, TestEZ.Reporters.TextReporter)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local store = require(ReplicatedStorage.DevPackages.Charm.store)
|
||||
local store = require(ReplicatedStorage.DevPackages.charm.src.store)
|
||||
|
||||
return function()
|
||||
afterEach(function()
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local ReactCharm = require(ReplicatedStorage.DevPackages.ReactCharm)
|
||||
local ReactCharm = require(ReplicatedStorage.DevPackages["react-charm"])
|
||||
local useAtom = ReactCharm.useAtom
|
||||
local renderHook = require(script.Parent.Parent.utils.renderHook)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Charm = require(ReplicatedStorage.DevPackages.Charm)
|
||||
local Charm = require(ReplicatedStorage.DevPackages.charm)
|
||||
local atom = Charm.atom
|
||||
local Vide = require(ReplicatedStorage.DevPackages.Vide)
|
||||
local root = Vide.root
|
||||
local VideCharm = require(ReplicatedStorage.DevPackages.VideCharm)
|
||||
local VideCharm = require(ReplicatedStorage.DevPackages["vide-charm"])
|
||||
local useAtom = VideCharm.useAtom
|
||||
|
||||
return function()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue