@wasm-gaming/engine-specs 0.3.0 → 0.3.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.
- package/demo/demo.sdk.js +12 -12
- package/dist/engine-specs.d.ts +8 -1
- package/dist/engine-specs.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/engine-specs.ts +8 -1
package/demo/demo.sdk.js
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* The demo engine, written against the contract in `src/engine-specs.ts`.
|
|
4
4
|
*
|
|
5
5
|
* It is a real implementation, not a mock: the four payloads are closed with named
|
|
6
|
-
* types, every getter returns descriptors, every setter chains, and
|
|
7
|
-
*
|
|
8
|
-
* conforms" is verified rather than claimed.
|
|
6
|
+
* types, every getter returns descriptors, every setter chains, and a factory
|
|
7
|
+
* governs at most one live engine. `demo/tsconfig.json` checks it against the
|
|
8
|
+
* contract, so "the demo conforms" is verified rather than claimed.
|
|
9
9
|
*
|
|
10
10
|
* What used to live in a manifest lives here now:
|
|
11
11
|
* `id`/`version`/`name`/`description` are static on the class, the video geometry is
|
|
@@ -305,7 +305,7 @@ export class DemoEngineSDK {
|
|
|
305
305
|
if (init) this.#init = { ...init }
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
/**
|
|
308
|
+
/** Answers a read before there is an engine: the settings the next one will use. */
|
|
309
309
|
#pending() {
|
|
310
310
|
return this.#play ?? new DemoPlay(this.#init)
|
|
311
311
|
}
|
|
@@ -386,23 +386,23 @@ export class DemoEngineSDK {
|
|
|
386
386
|
}
|
|
387
387
|
|
|
388
388
|
/**
|
|
389
|
-
*
|
|
390
|
-
*
|
|
391
|
-
* @returns {
|
|
389
|
+
* Bringing the engine up is this engine's own business, not a step the contract
|
|
390
|
+
* exposes — so it stays private. A factory governs at most one live engine.
|
|
391
|
+
* @returns {DemoPlay}
|
|
392
392
|
*/
|
|
393
|
-
boot(
|
|
394
|
-
if (init) this.#init = { ...this.#init, ...init }
|
|
393
|
+
#boot() {
|
|
395
394
|
this.#play ??= new DemoPlay(this.#init)
|
|
396
|
-
return
|
|
395
|
+
return this.#play
|
|
397
396
|
}
|
|
398
397
|
|
|
399
398
|
/**
|
|
400
|
-
*
|
|
399
|
+
* The only way in. On a live engine it reopens the session rather than
|
|
400
|
+
* rebuilding one.
|
|
401
401
|
* @param {Partial<DemoOptions>} [options]
|
|
402
402
|
* @returns {DemoPromisePlay}
|
|
403
403
|
*/
|
|
404
404
|
start(options) {
|
|
405
|
-
return this
|
|
405
|
+
return hydrate(Promise.resolve(this.#boot())).restart(options)
|
|
406
406
|
}
|
|
407
407
|
}
|
|
408
408
|
|
package/dist/engine-specs.d.ts
CHANGED
|
@@ -79,7 +79,14 @@ export interface PromisePlay<P extends EnginePayloads = DefaultPayloads> extends
|
|
|
79
79
|
destroy(): Promise<void>;
|
|
80
80
|
}
|
|
81
81
|
export interface EngineSDK<P extends EnginePayloads = DefaultPayloads> extends EngineSurface<EngineSDK<P>, P> {
|
|
82
|
-
|
|
82
|
+
/**
|
|
83
|
+
* Bring the engine up and open a session — the only way in.
|
|
84
|
+
*
|
|
85
|
+
* A factory governs at most one live engine, so calling it again on a live one
|
|
86
|
+
* reopens the session rather than building a second engine; that is exactly
|
|
87
|
+
* {@link EnginePlay.restart}. Whatever an engine has to do before a session can
|
|
88
|
+
* exist is its own business, done here.
|
|
89
|
+
*/
|
|
83
90
|
start(options?: Partial<P['options']>): PromisePlay<P>;
|
|
84
91
|
}
|
|
85
92
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-specs.d.ts","sourceRoot":"","sources":["../src/engine-specs.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB,CAAC,KAAK,GAAG,OAAO;IACjD,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAIrF,MAAM,WAAW,YAAY;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AACxD,MAAM,WAAW,aAAa;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AACzD,MAAM,WAAW,YAAY;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AACxD,MAAM,WAAW,aAAa;IAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,cAAc,GAAG,eAAe;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAID,MAAM,WAAW,aAAa,CAAC,KAAK,EAAE,CAAC,SAAS,cAAc,GAAG,eAAe;IAC9E,MAAM,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;IAC3C,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC;IAC7C,MAAM,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;IAC3C,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC;IAC7C,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAAC;CACnC;AAID,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,cAAc,GAAG,eAAe,CACpE,SAAQ,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,cAAc,GAAG,eAAe,CACrE,SAAQ,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,cAAc,GAAG,eAAe,CACnE,SAAQ,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC
|
|
1
|
+
{"version":3,"file":"engine-specs.d.ts","sourceRoot":"","sources":["../src/engine-specs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wasm-gaming/engine-specs",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "The wasm-gaming engine contract: the single shared JS API every WASM game/emulator engine and the host app conform to. TypeScript types, no runtime dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/engine-specs.d.ts",
|
package/src/engine-specs.ts
CHANGED
|
@@ -89,7 +89,14 @@ export interface PromisePlay<P extends EnginePayloads = DefaultPayloads>
|
|
|
89
89
|
|
|
90
90
|
export interface EngineSDK<P extends EnginePayloads = DefaultPayloads>
|
|
91
91
|
extends EngineSurface<EngineSDK<P>, P> {
|
|
92
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Bring the engine up and open a session — the only way in.
|
|
94
|
+
*
|
|
95
|
+
* A factory governs at most one live engine, so calling it again on a live one
|
|
96
|
+
* reopens the session rather than building a second engine; that is exactly
|
|
97
|
+
* {@link EnginePlay.restart}. Whatever an engine has to do before a session can
|
|
98
|
+
* exist is its own business, done here.
|
|
99
|
+
*/
|
|
93
100
|
start(options?: Partial<P['options']>): PromisePlay<P>;
|
|
94
101
|
}
|
|
95
102
|
|