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:
richard 2025-03-09 15:33:04 -07:00 • committed by GitHub
parent e7fe400fa8
commit e9d8dffb02
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
49 changed files with 95 additions and 100 deletions

View file

@ -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

View file

@ -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"
}

View file

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

View file

@ -0,0 +1,5 @@
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",
"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"

View file

@ -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

View file

@ -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)

View file

@ -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>
--[=[

View file

@ -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"

View file

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

7
packages/charm/init.luau Normal file
View 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

View file

@ -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"

View file

@ -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,

View file

@ -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

View file

@ -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]

View file

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

1
packages/react/init.luau Normal file
View file

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

View file

@ -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"

View file

@ -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

View file

@ -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"

View file

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

1
packages/vide/init.luau Normal file
View file

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

View file

@ -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"

View file

@ -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.

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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()

View file

@ -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()

View file

@ -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 })

View file

@ -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

View file

@ -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()

View file

@ -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()

View file

@ -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()

View file

@ -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()

View file

@ -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)

View file

@ -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

View file

@ -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()

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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()

View file

@ -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)

View file

@ -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()