Skip to content

Commit 5cf31b5

Browse files
committed
feat(ecs): add prepending of import to lib ecs
1 parent 11529de commit 5cf31b5

File tree

8 files changed

+22
-15
lines changed

8 files changed

+22
-15
lines changed

packages/ecs/.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,9 @@
8888
# .idea/modules
8989
# *.iml
9090
# *.ipr
91+
!build/
9192

92-
# CMake
93+
# CMakeg
9394
cmake-build-*/
9495

9596
# Mongo Explorer plugin

packages/ecs/.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ bun.lock
66

77
*.js
88
*.d.ts
9+
build

packages/ecs/Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@ $(HTML_NAME): $(OBJ)
4646
$(TS_NAME): LDFLAGS += -s MODULARIZE=1 -s EXPORT_ES6=1 -s ENVIRONMENT=web
4747
$(TS_NAME): $(OBJ)
4848
@mkdir -p $(OUT_DIR)
49-
$(CC) $(OBJ) $(LDFLAGS) --emit-tsd $(TS_NAME) -o $(JS_NAME)
49+
$(CC) $(OBJ) $(LDFLAGS) --emit-tsd libecs-tmp.d.ts -o $(JS_NAME)
50+
cat build/pre.ts > $(OUT_DIR)/$(TS_NAME)
51+
cat lib/libecs-tmp.d.ts >> $(OUT_DIR)/$(TS_NAME)
52+
$(RM) lib/libecs-tmp.d.ts
5053

5154
clean:
5255
$(RM) $(OBJ)

packages/ecs/build/pre.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import { Context } from "@nanoforge/common"

packages/ecs/eslint.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import config from "@nanoforge/utils-eslint-config";
22

3-
export default config;
3+
export default [...config, { ignores: ["build"] }];

packages/ecs/lib/libecs.d.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import { Context } from "@nanoforge/common";
2+
13
// TypeScript bindings for emscripten-generated code. Automatically generated at compile time.
2-
interface WasmModule {
3-
}
4+
interface WasmModule {}
45

56
export interface ClassHandle {
67
isAliasOf(other: ClassHandle): boolean;
@@ -39,15 +40,16 @@ export interface Entity extends ClassHandle {
3940
getId(): number;
4041
}
4142

42-
type Component = {name: string, [key: string]: any};
43+
type Component = { name: string; [key: string]: any };
4344

44-
type System = (registry: Registry, ctx: any) => void;
45+
type System = (registry: Registry, ctx: Context) => void;
4546

4647
export interface Registry extends ClassHandle {
4748
registerComponent(_0: Component): SparseArray;
4849
getComponentsConst(_0: Component): SparseArray;
4950
getComponents(_0: Component): SparseArray;
5051
spawnEntity(): Entity;
52+
getZipper(_0: Component[]): any[];
5153
killEntity(_0: Entity): void;
5254
clearEntities(): void;
5355
removeComponent(_0: Entity, _1: Component): void;
@@ -60,23 +62,22 @@ export interface Registry extends ClassHandle {
6062
getEntityComponent(_0: Entity, _1: Component): any | undefined;
6163
addComponent(_0: Entity, _1: Component): any | undefined;
6264
runSystems(_0: any): void;
63-
getZipper(_0: Component[]): any;
6465
}
6566

6667
interface EmbindModule {
6768
container: {
68-
new(): container;
69+
new (): container;
6970
};
7071
SparseArray: {
71-
new(): SparseArray;
72+
new (): SparseArray;
7273
};
7374
Entity: {
74-
new(_0: number): Entity;
75+
new (_0: number): Entity;
7576
};
7677
Registry: {
77-
new(): Registry;
78+
new (): Registry;
7879
};
7980
}
8081

8182
export type MainModule = WasmModule & EmbindModule;
82-
export default function MainModuleFactory (options?: unknown): Promise<MainModule>;
83+
export default function MainModuleFactory(options?: unknown): Promise<MainModule>;

packages/ecs/tsconfig.build.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"@nanoforge/asset-manager": ["../asset-manager"]
1010
}
1111
},
12-
"exclude": ["node_modules", "dist", "test/**/*", "*.spec.ts"],
12+
"exclude": ["node_modules", "dist", "test/**/*", "*.spec.ts", "build"],
1313
"references": [
1414
{
1515
"path": "../common/tsconfig.build.json"

packages/ecs/wasm/Registry.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ namespace nfo {
2323
EMSCRIPTEN_BINDINGS(Registry)
2424
{
2525
emscripten::register_type<Component>("Component", "{name: string, [key: string]: any}");
26-
emscripten::register_type<System>("System", "(registry: Registry, ctx: any) => void");
26+
emscripten::register_type<System>("System", "(registry: Registry, ctx: Context) => void");
2727
emscripten::register_type<ZipperInput>("Component[]");
2828
emscripten::register_type<ZipperOutput>("any[]");
2929

0 commit comments

Comments
 (0)