ugly-game 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  type ArrayKind = 'f32' | 'f64' | 'i32' | 'u32' | 'u16' | 'u8' | 'i8';
2
- export interface ColumnSpec {
2
+ export interface ColumnSpec<K extends ArrayKind = ArrayKind> {
3
3
  readonly _tag: 'field';
4
- readonly kind: ArrayKind;
4
+ readonly kind: K;
5
5
  readonly len: number;
6
6
  }
7
7
  export interface ScalarSpec {
@@ -11,13 +11,13 @@ export interface ScalarSpec {
11
11
  export interface LayoutSpec {
12
12
  readonly [k: string]: ColumnSpec | ScalarSpec | LayoutSpec;
13
13
  }
14
- export declare const f32: (len: number) => ColumnSpec;
15
- export declare const f64: (len: number) => ColumnSpec;
16
- export declare const i32: (len: number) => ColumnSpec;
17
- export declare const u32: (len: number) => ColumnSpec;
18
- export declare const u16: (len: number) => ColumnSpec;
19
- export declare const u8: (len: number) => ColumnSpec;
20
- export declare const i8: (len: number) => ColumnSpec;
14
+ export declare const f32: (len: number) => ColumnSpec<"f32">;
15
+ export declare const f64: (len: number) => ColumnSpec<"f64">;
16
+ export declare const i32: (len: number) => ColumnSpec<"i32">;
17
+ export declare const u32: (len: number) => ColumnSpec<"u32">;
18
+ export declare const u16: (len: number) => ColumnSpec<"u16">;
19
+ export declare const u8: (len: number) => ColumnSpec<"u8">;
20
+ export declare const i8: (len: number) => ColumnSpec<"i8">;
21
21
  export declare const scalarI32: () => ScalarSpec;
22
22
  export declare const scalarF64: () => ScalarSpec;
23
23
  export interface ScalarCell {
@@ -25,7 +25,7 @@ export interface ScalarCell {
25
25
  set(v: number): void;
26
26
  }
27
27
  type ArrayOf<K extends ArrayKind> = K extends 'f32' ? Float32Array : K extends 'f64' ? Float64Array : K extends 'i32' ? Int32Array : K extends 'u32' ? Uint32Array : K extends 'u16' ? Uint16Array : K extends 'u8' ? Uint8Array : Int8Array;
28
- type NodeOf<N> = N extends ColumnSpec ? ArrayOf<N['kind']> : N extends ScalarSpec ? ScalarCell : N extends LayoutSpec ? StateOf<N> : never;
28
+ type NodeOf<N> = N extends ColumnSpec<infer K> ? ArrayOf<K> : N extends ScalarSpec ? ScalarCell : N extends LayoutSpec ? StateOf<N> : never;
29
29
  export type StateOf<Spec extends LayoutSpec> = {
30
30
  [K in keyof Spec]: NodeOf<Spec[K]>;
31
31
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-game",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {