Skip to content

Commit 8689d7e

Browse files
feat(dev): use rbxts-build build orchestrator
1 parent ce5a9a3 commit 8689d7e

7 files changed

+139
-11
lines changed

.npmrc

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
strict-peer-dependencies=false
2-
shamefully-hoist=true
1+
enable-pre-post-scripts=true
32
ignore-workspace-root-check=true
3+
save-exact=true
4+
shamefully-hoist=true
45
shell-emulator=true
5-
save-exact=true
6+
strict-peer-dependencies=false

aftman.toml

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[tools]
22
asphalt = "jacktabscode/asphalt@0.8.0"
33
darklua = "seaofvoices/darklua@0.13.1"
4+
lune = "lune-org/lune@0.7.11"
45
mantle = "blake-mealey/mantle@0.11.16"
56
rojo = "rojo-rbx/rojo@7.4.1"

default.project.json

+10
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@
4343
"$className": "Workspace",
4444
"$properties": {
4545
"FilteringEnabled": true
46+
},
47+
"Baseplate": {
48+
"$className": "Part",
49+
"$properties": {
50+
"Anchored": true,
51+
"Color": [0.38823, 0.37254, 0.38823],
52+
"Locked": true,
53+
"Position": [0, -10, 0],
54+
"Size": [50, 2, 50]
55+
}
4656
}
4757
},
4858
"HttpService": {

package.json

+24-7
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,30 @@
33
"version": "1.0.0",
44
"description": "A Roblox game made with React and Roblox-TS",
55
"keywords": [],
6-
"license": "ISC",
6+
"license": "MIT",
77
"author": "",
88
"type": "module",
99
"main": "index.js",
1010
"scripts": {
11-
"build-dev": "NODE_ENV=development && npx rbxtsc",
12-
"build-prod": "npm run clean && NODE_ENV=production && npx rbxtsc --verbose && npm run darklua",
11+
"assets:upload": "asphalt sync",
1312
"clean": "npx rimraf out/ && npx rimraf dist",
1413
"commit": "commit",
1514
"darklua": "darklua process out dist --verbose",
15+
"dev:build": "npx rbxtsc",
16+
"dev:compile": "rbxts-build compile",
17+
"dev:open": "rbxts-build open",
18+
"dev:restart": "pnpm run dev:stop && pnpm run dev:start",
19+
"dev:start": "rbxts-build start",
20+
"dev:stop": "rbxts-build stop",
21+
"dev:sync": "rbxts-build sync",
22+
"dev:watch": "rbxts-build watch",
1623
"eslint-config": "npx @eslint/config-inspector",
1724
"lint": "eslint --max-warnings 0 .",
25+
"postassets:upload": "eslint src/shared/assets.d.ts --fix",
26+
"postdev:sync": "eslint src/types/services.d.ts --fix",
1827
"prepare": "node .husky/install.js",
19-
"sync-dev": "rojo serve",
20-
"sync-prod": "rojo serve ./build.project.json",
21-
"upload-assets": "asphalt sync && eslint src/shared/assets.d.ts --fix",
22-
"watch-dev": "NODE_ENV=development && npx rbxtsc -w"
28+
"prod:build": "npm run clean && NODE_ENV=production && npx rbxtsc --verbose && npm run darklua",
29+
"prod:sync": "rojo serve ./build.project.json"
2330
},
2431
"lint-staged": {
2532
"*": "eslint --fix"
@@ -71,6 +78,7 @@
7178
"git-pull-run": "1.4.0",
7279
"husky": "9.0.11",
7380
"lint-staged": "15.2.7",
81+
"rbxts-build": "2.3.0",
7482
"rbxts-transformer-flamework": "1.2.3",
7583
"rimraf": "6.0.1",
7684
"roblox-ts": "2.3.0-dev-e6e7658",
@@ -82,5 +90,14 @@
8290
"roblox-ts@2.3.0-dev-e6e7658": "patches/roblox-ts@2.3.0-dev-e6e7658.patch",
8391
"rbxts-transform-env@2.2.0": "patches/rbxts-transform-env@2.2.0.patch"
8492
}
93+
},
94+
"rbxts-build": {
95+
"syncLocation": "src/types/services.d.ts",
96+
"names": {
97+
"build": "dev:build",
98+
"compile": "dev:compile",
99+
"open": "dev:open",
100+
"watch": "dev:watch"
101+
}
85102
}
86103
}

pnpm-lock.yaml

+18
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/types/services.d.ts

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
interface ReplicatedStorage {
2+
TS: {
3+
assets: ModuleScript;
4+
constants: ModuleScript;
5+
functions: {
6+
"game-config": ModuleScript;
7+
"setup-logger": ModuleScript;
8+
} & Folder;
9+
modules: {
10+
"3d-sound-system": ModuleScript;
11+
} & Folder;
12+
network: ModuleScript;
13+
store: {
14+
middleware: {
15+
profiler: ModuleScript;
16+
} & Folder;
17+
persistent: {
18+
"persistent-selectors": ModuleScript;
19+
"persistent-slice": {
20+
achievements: ModuleScript;
21+
balance: ModuleScript;
22+
"default-data": ModuleScript;
23+
mtx: ModuleScript;
24+
settings: ModuleScript;
25+
} & ModuleScript;
26+
} & ModuleScript;
27+
} & ModuleScript;
28+
util: {
29+
"core-call": ModuleScript;
30+
"flamework-util": ModuleScript;
31+
"physics-util": ModuleScript;
32+
"player-util": ModuleScript;
33+
} & Folder;
34+
} & Folder;
35+
"TS-types": {
36+
enum: {
37+
badge: ModuleScript;
38+
mtx: ModuleScript;
39+
tag: ModuleScript;
40+
} & Folder;
41+
interfaces: Folder;
42+
util: Folder;
43+
} & Folder;
44+
rbxts_include: {
45+
Promise: ModuleScript;
46+
RuntimeLib: ModuleScript;
47+
} & Folder;
48+
}
49+
50+
interface ServerScriptService {
51+
TS: {
52+
"mtx-service": ModuleScript;
53+
network: ModuleScript;
54+
player: {
55+
character: {
56+
"character-service": ModuleScript;
57+
} & Folder;
58+
data: {
59+
"player-data-service": ModuleScript;
60+
"validate-data": ModuleScript;
61+
} & Folder;
62+
"leaderstats-service": ModuleScript;
63+
"player-badge-service": ModuleScript;
64+
"player-entity": ModuleScript;
65+
"player-removal-service": ModuleScript;
66+
"player-service": ModuleScript;
67+
"with-player-entity": ModuleScript;
68+
} & Folder;
69+
runtime: Script;
70+
store: {
71+
middleware: {
72+
broadcaster: ModuleScript;
73+
} & Folder;
74+
} & ModuleScript;
75+
} & Folder;
76+
}
77+
78+
interface Workspace {
79+
Baseplate: Part;
80+
}

tsconfig.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
},
3434
{
3535
"transform": "rbxts-transform-env",
36-
"shortCircuitNodeEnv": false
36+
"shortCircuitNodeEnv": false,
37+
"defaultEnvironment": "development"
3738
}
3839
]
3940
},

0 commit comments

Comments
 (0)