Skip to content

Commit f29b1e6

Browse files
committed
dist
1 parent 3507a7c commit f29b1e6

20 files changed

+137
-88
lines changed

dist/legacy/index.cjs

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ var $u32 = Symbol.for("bitecs-u32");
5050
var $i32 = Symbol.for("bitecs-i32");
5151
var $f32 = Symbol.for("bitecs-f32");
5252
var $f64 = Symbol.for("bitecs-f64");
53+
var $str = Symbol.for("bitecs-str");
5354
var $arr = Symbol.for("bitecs-arr");
5455
var typeTagForSerialization = (symbol) => (a = []) => Object.defineProperty(a, symbol, { value: true, enumerable: false, writable: false, configurable: false });
5556
var u8 = typeTagForSerialization($u8);
@@ -60,6 +61,7 @@ var u32 = typeTagForSerialization($u32);
6061
var i32 = typeTagForSerialization($i32);
6162
var f32 = typeTagForSerialization($f32);
6263
var f64 = typeTagForSerialization($f64);
64+
var str = typeTagForSerialization($str);
6365
var functionToSymbolMap = /* @__PURE__ */ new Map([
6466
[u8, $u8],
6567
[i8, $i8],
@@ -68,7 +70,8 @@ var functionToSymbolMap = /* @__PURE__ */ new Map([
6870
[u32, $u32],
6971
[i32, $i32],
7072
[f32, $f32],
71-
[f64, $f64]
73+
[f64, $f64],
74+
[str, $str]
7275
]);
7376
var typeSetters = {
7477
[$u8]: (view, offset, value) => {
@@ -102,6 +105,15 @@ var typeSetters = {
102105
[$f64]: (view, offset, value) => {
103106
view.setFloat64(offset, value);
104107
return 8;
108+
},
109+
[$str]: (view, offset, value) => {
110+
const enc = textEncoder;
111+
const bytes = enc.encode(value);
112+
let written = 0;
113+
written += typeSetters[$u32](view, offset + written, bytes.length);
114+
new Uint8Array(view.buffer, view.byteOffset + offset + written, bytes.length).set(bytes);
115+
written += bytes.length;
116+
return written;
105117
}
106118
};
107119
var typeGetters = {
@@ -112,7 +124,14 @@ var typeGetters = {
112124
[$u32]: (view, offset) => ({ value: view.getUint32(offset), size: 4 }),
113125
[$i32]: (view, offset) => ({ value: view.getInt32(offset), size: 4 }),
114126
[$f32]: (view, offset) => ({ value: view.getFloat32(offset), size: 4 }),
115-
[$f64]: (view, offset) => ({ value: view.getFloat64(offset), size: 8 })
127+
[$f64]: (view, offset) => ({ value: view.getFloat64(offset), size: 8 }),
128+
[$str]: (view, offset) => {
129+
const { value: len, size: lenSize } = typeGetters[$u32](view, offset);
130+
const bytes = new Uint8Array(view.buffer, view.byteOffset + offset + lenSize, len);
131+
const dec = textDecoder;
132+
const strValue = dec.decode(bytes);
133+
return { value: strValue, size: lenSize + len };
134+
}
116135
};
117136
function resolveTypeToSymbol(type) {
118137
if (typeof type === "symbol") {
@@ -128,14 +147,16 @@ function resolveTypeToSymbol(type) {
128147
}
129148
return $f32;
130149
}
150+
var textEncoder = new TextEncoder();
151+
var textDecoder = new TextDecoder();
131152
function isTypedArrayOrBranded(arr) {
132153
return arr && (ArrayBuffer.isView(arr) || Array.isArray(arr) && typeof arr === "object");
133154
}
134155
function getTypeForArray(arr) {
135156
if (isArrayType(arr)) {
136157
return resolveTypeToSymbol(arr[$arr]);
137158
}
138-
for (const symbol of [$u8, $i8, $u16, $i16, $u32, $i32, $f32, $f64]) {
159+
for (const symbol of [$u8, $i8, $u16, $i16, $u32, $i32, $f32, $f64, $str]) {
139160
if (symbol in arr) return symbol;
140161
}
141162
if (arr instanceof Int8Array) return $i8;

dist/legacy/index.cjs.map

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

dist/legacy/index.min.cjs

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

dist/legacy/index.min.cjs.map

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

dist/legacy/index.min.mjs

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

dist/legacy/index.min.mjs.map

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

dist/legacy/index.mjs

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ var $u32 = Symbol.for("bitecs-u32");
3333
var $i32 = Symbol.for("bitecs-i32");
3434
var $f32 = Symbol.for("bitecs-f32");
3535
var $f64 = Symbol.for("bitecs-f64");
36+
var $str = Symbol.for("bitecs-str");
3637
var $arr = Symbol.for("bitecs-arr");
3738
var typeTagForSerialization = (symbol) => (a = []) => Object.defineProperty(a, symbol, { value: true, enumerable: false, writable: false, configurable: false });
3839
var u8 = typeTagForSerialization($u8);
@@ -43,6 +44,7 @@ var u32 = typeTagForSerialization($u32);
4344
var i32 = typeTagForSerialization($i32);
4445
var f32 = typeTagForSerialization($f32);
4546
var f64 = typeTagForSerialization($f64);
47+
var str = typeTagForSerialization($str);
4648
var functionToSymbolMap = /* @__PURE__ */ new Map([
4749
[u8, $u8],
4850
[i8, $i8],
@@ -51,7 +53,8 @@ var functionToSymbolMap = /* @__PURE__ */ new Map([
5153
[u32, $u32],
5254
[i32, $i32],
5355
[f32, $f32],
54-
[f64, $f64]
56+
[f64, $f64],
57+
[str, $str]
5558
]);
5659
var typeSetters = {
5760
[$u8]: (view, offset, value) => {
@@ -85,6 +88,15 @@ var typeSetters = {
8588
[$f64]: (view, offset, value) => {
8689
view.setFloat64(offset, value);
8790
return 8;
91+
},
92+
[$str]: (view, offset, value) => {
93+
const enc = textEncoder;
94+
const bytes = enc.encode(value);
95+
let written = 0;
96+
written += typeSetters[$u32](view, offset + written, bytes.length);
97+
new Uint8Array(view.buffer, view.byteOffset + offset + written, bytes.length).set(bytes);
98+
written += bytes.length;
99+
return written;
88100
}
89101
};
90102
var typeGetters = {
@@ -95,7 +107,14 @@ var typeGetters = {
95107
[$u32]: (view, offset) => ({ value: view.getUint32(offset), size: 4 }),
96108
[$i32]: (view, offset) => ({ value: view.getInt32(offset), size: 4 }),
97109
[$f32]: (view, offset) => ({ value: view.getFloat32(offset), size: 4 }),
98-
[$f64]: (view, offset) => ({ value: view.getFloat64(offset), size: 8 })
110+
[$f64]: (view, offset) => ({ value: view.getFloat64(offset), size: 8 }),
111+
[$str]: (view, offset) => {
112+
const { value: len, size: lenSize } = typeGetters[$u32](view, offset);
113+
const bytes = new Uint8Array(view.buffer, view.byteOffset + offset + lenSize, len);
114+
const dec = textDecoder;
115+
const strValue = dec.decode(bytes);
116+
return { value: strValue, size: lenSize + len };
117+
}
99118
};
100119
function resolveTypeToSymbol(type) {
101120
if (typeof type === "symbol") {
@@ -111,14 +130,16 @@ function resolveTypeToSymbol(type) {
111130
}
112131
return $f32;
113132
}
133+
var textEncoder = new TextEncoder();
134+
var textDecoder = new TextDecoder();
114135
function isTypedArrayOrBranded(arr) {
115136
return arr && (ArrayBuffer.isView(arr) || Array.isArray(arr) && typeof arr === "object");
116137
}
117138
function getTypeForArray(arr) {
118139
if (isArrayType(arr)) {
119140
return resolveTypeToSymbol(arr[$arr]);
120141
}
121-
for (const symbol of [$u8, $i8, $u16, $i16, $u32, $i32, $f32, $f64]) {
142+
for (const symbol of [$u8, $i8, $u16, $i16, $u32, $i32, $f32, $f64, $str]) {
122143
if (symbol in arr) return symbol;
123144
}
124145
if (arr instanceof Int8Array) return $i8;

dist/legacy/index.mjs.map

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

dist/serialization/SoASerializer.d.ts

Lines changed: 10 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,20 @@
1-
export declare const $u8: unique symbol, $i8: unique symbol, $u16: unique symbol, $i16: unique symbol, $u32: unique symbol, $i32: unique symbol, $f32: unique symbol, $f64: unique symbol, $arr: unique symbol;
1+
export declare const $u8: unique symbol, $i8: unique symbol, $u16: unique symbol, $i16: unique symbol, $u32: unique symbol, $i32: unique symbol, $f32: unique symbol, $f64: unique symbol, $str: unique symbol, $arr: unique symbol;
22
export type TypedArray = Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array;
3-
export type TypeSymbol = typeof $u8 | typeof $i8 | typeof $u16 | typeof $i16 | typeof $u32 | typeof $i32 | typeof $f32 | typeof $f64;
4-
export type PrimitiveBrand = (number[] & {
3+
export type TypeSymbol = typeof $u8 | typeof $i8 | typeof $u16 | typeof $i16 | typeof $u32 | typeof $i32 | typeof $f32 | typeof $f64 | typeof $str;
4+
export type PrimitiveBrand = ((number[] | string[]) & {
55
[key: symbol]: true;
66
}) | TypedArray;
77
export type ComponentRef = Record<string, PrimitiveBrand | TypedArray | ArrayType<any>>;
88
export type ArrayType<T> = T[] & {
99
[$arr]: TypeSymbol | TypeFunction | ArrayType<any>;
1010
};
11-
export declare const u8: (a?: number[]) => PrimitiveBrand, i8: (a?: number[]) => PrimitiveBrand, u16: (a?: number[]) => PrimitiveBrand, i16: (a?: number[]) => PrimitiveBrand, u32: (a?: number[]) => PrimitiveBrand, i32: (a?: number[]) => PrimitiveBrand, f32: (a?: number[]) => PrimitiveBrand, f64: (a?: number[]) => PrimitiveBrand;
12-
type TypeFunction = typeof u8 | typeof i8 | typeof u16 | typeof i16 | typeof u32 | typeof i32 | typeof f32 | typeof f64;
13-
export declare const typeSetters: {
14-
[$u8]: (view: DataView, offset: number, value: number) => number;
15-
[$i8]: (view: DataView, offset: number, value: number) => number;
16-
[$u16]: (view: DataView, offset: number, value: number) => number;
17-
[$i16]: (view: DataView, offset: number, value: number) => number;
18-
[$u32]: (view: DataView, offset: number, value: number) => number;
19-
[$i32]: (view: DataView, offset: number, value: number) => number;
20-
[$f32]: (view: DataView, offset: number, value: number) => number;
21-
[$f64]: (view: DataView, offset: number, value: number) => number;
22-
};
23-
export declare const typeGetters: {
24-
[$u8]: (view: DataView, offset: number) => {
25-
value: number;
26-
size: number;
27-
};
28-
[$i8]: (view: DataView, offset: number) => {
29-
value: number;
30-
size: number;
31-
};
32-
[$u16]: (view: DataView, offset: number) => {
33-
value: number;
34-
size: number;
35-
};
36-
[$i16]: (view: DataView, offset: number) => {
37-
value: number;
38-
size: number;
39-
};
40-
[$u32]: (view: DataView, offset: number) => {
41-
value: number;
42-
size: number;
43-
};
44-
[$i32]: (view: DataView, offset: number) => {
45-
value: number;
46-
size: number;
47-
};
48-
[$f32]: (view: DataView, offset: number) => {
49-
value: number;
50-
size: number;
51-
};
52-
[$f64]: (view: DataView, offset: number) => {
53-
value: number;
54-
size: number;
55-
};
56-
};
11+
export declare const u8: (a?: any[]) => PrimitiveBrand, i8: (a?: any[]) => PrimitiveBrand, u16: (a?: any[]) => PrimitiveBrand, i16: (a?: any[]) => PrimitiveBrand, u32: (a?: any[]) => PrimitiveBrand, i32: (a?: any[]) => PrimitiveBrand, f32: (a?: any[]) => PrimitiveBrand, f64: (a?: any[]) => PrimitiveBrand, str: (a?: any[]) => PrimitiveBrand;
12+
type TypeFunction = typeof u8 | typeof i8 | typeof u16 | typeof i16 | typeof u32 | typeof i32 | typeof f32 | typeof f64 | typeof str;
13+
export declare const typeSetters: Record<TypeSymbol, (view: DataView, offset: number, value: any) => number>;
14+
export declare const typeGetters: Record<TypeSymbol, (view: DataView, offset: number) => {
15+
value: any;
16+
size: number;
17+
}>;
5718
export declare const array: <T extends any[] = any[]>(type?: TypeSymbol | TypeFunction | ArrayType<any>) => ArrayType<T>;
5819
export declare function getTypeForArray(arr: PrimitiveBrand | TypedArray | ArrayType<any>): TypeSymbol;
5920
export declare function isArrayType(value: any): value is ArrayType<any>;

dist/serialization/SoASerializer.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)