Move globals interfaces into browser project to share. API needs design
This commit is contained in:
parent
02f9c21a18
commit
59afb15a10
|
@ -0,0 +1,16 @@
|
||||||
|
interface SequenceState {
|
||||||
|
hash : string,
|
||||||
|
name : string,
|
||||||
|
progress : number
|
||||||
|
}
|
||||||
|
|
||||||
|
interface State {
|
||||||
|
width? : number,
|
||||||
|
height? : number,
|
||||||
|
sequence? : SequenceState
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Message {
|
||||||
|
cmd? : string;
|
||||||
|
state? : State;
|
||||||
|
}
|
|
@ -1,15 +1,3 @@
|
||||||
interface SequenceState {
|
|
||||||
name : string,
|
|
||||||
hash : string,
|
|
||||||
progress : number
|
|
||||||
}
|
|
||||||
|
|
||||||
interface State {
|
|
||||||
width? : number,
|
|
||||||
height? : number,
|
|
||||||
sequence? : SequenceState
|
|
||||||
}
|
|
||||||
|
|
||||||
class Client {
|
class Client {
|
||||||
private client : WebSocket;
|
private client : WebSocket;
|
||||||
private connected : boolean = false;
|
private connected : boolean = false;
|
||||||
|
@ -24,9 +12,11 @@ class Client {
|
||||||
}
|
}
|
||||||
|
|
||||||
private onMessage (event : any) {
|
private onMessage (event : any) {
|
||||||
const state : State = JSON.parse(event.data) as State;
|
const msg : Message = JSON.parse(event.data) as Message;
|
||||||
if (typeof state.sequence !== 'undefined' && state.sequence !== null) {
|
if (typeof msg.state !== 'undefined' && msg.state.sequence !== null) {
|
||||||
this.setSequence(state.sequence);
|
this.setSequence(msg.state.sequence);
|
||||||
|
} else if (typeof msg.cmd !== 'undefined' && msg.cmd !== null) {
|
||||||
|
this.cmd(msg.cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,10 +31,25 @@ class Client {
|
||||||
this.progress.innerText = `${Math.floor(percent)}%`;
|
this.progress.innerText = `${Math.floor(percent)}%`;
|
||||||
}
|
}
|
||||||
|
|
||||||
public cameraOpen () {
|
private cmd (id : string) {
|
||||||
console.log('camera open');
|
switch (id) {
|
||||||
|
case 'open' :
|
||||||
|
this.receiveCameraOpen();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.warn(`No command ${id}`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public sendCameraOpen () {
|
||||||
|
console.log('send camera open');
|
||||||
this.client.send(JSON.stringify({ cmd : 'open' }));
|
this.client.send(JSON.stringify({ cmd : 'open' }));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private receiveCameraOpen () {
|
||||||
|
console.log('got camera open');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const client : Client = new Client();
|
const client : Client = new Client();
|
File diff suppressed because one or more lines are too long
|
@ -1,8 +1,3 @@
|
||||||
interface SequenceState {
|
|
||||||
hash: string;
|
|
||||||
name: string;
|
|
||||||
progress: number;
|
|
||||||
}
|
|
||||||
export declare class Sequence {
|
export declare class Sequence {
|
||||||
private current;
|
private current;
|
||||||
private running;
|
private running;
|
||||||
|
@ -14,4 +9,3 @@ export declare class Sequence {
|
||||||
isRunning(): boolean;
|
isRunning(): boolean;
|
||||||
getState(): SequenceState;
|
getState(): SequenceState;
|
||||||
}
|
}
|
||||||
export type { SequenceState };
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequence/index.ts"],"names":[],"mappings":";;;AAQA,MAAa,QAAQ;IAMpB;QALQ,YAAO,GAAoB,IAAI,CAAC;IAKxB,CAAC;IAEV,KAAK;QACX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,IAAI;QACV,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,SAAS;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAEM,QAAQ;QACd,OAAO;YACN,IAAI,EAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YACxB,IAAI,EAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YACxB,QAAQ,EAAG,IAAI,CAAC,QAAQ;SACxB,CAAA;IACF,CAAC;CACD;AA3BD,4BA2BC"}
|
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequence/index.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAQ;IAMpB;QALQ,YAAO,GAAoB,IAAI,CAAC;IAKxB,CAAC;IAEV,KAAK;QACX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,IAAI;QACV,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,SAAS;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAEM,QAAQ;QACd,OAAO;YACN,IAAI,EAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YACxB,IAAI,EAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YACxB,QAAQ,EAAG,IAAI,CAAC,QAAQ;SACxB,CAAA;IACF,CAAC;CACD;AA3BD,4BA2BC"}
|
|
@ -5,7 +5,7 @@
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
"compile": "npm run compile_node && npm run compile_browser",
|
"compile": "bash ./scripts/compile.sh",
|
||||||
"compile_node": "./node_modules/.bin/tsc -p tsconfig.json",
|
"compile_node": "./node_modules/.bin/tsc -p tsconfig.json",
|
||||||
"compile_browser": "./node_modules/.bin/tsc -p tsconfig-browser.json"
|
"compile_browser": "./node_modules/.bin/tsc -p tsconfig-browser.json"
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cp src/globals.d.ts browser/globals.d.ts
|
||||||
|
npm run compile_node
|
||||||
|
npm run compile_browser
|
|
@ -0,0 +1,16 @@
|
||||||
|
interface SequenceState {
|
||||||
|
hash : string,
|
||||||
|
name : string,
|
||||||
|
progress : number
|
||||||
|
}
|
||||||
|
|
||||||
|
interface State {
|
||||||
|
width? : number,
|
||||||
|
height? : number,
|
||||||
|
sequence? : SequenceState
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Message {
|
||||||
|
cmd? : string;
|
||||||
|
state? : State;
|
||||||
|
}
|
|
@ -51,10 +51,6 @@ interface WebSocketExtended extends WebSocket {
|
||||||
session? : string
|
session? : string
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Message {
|
|
||||||
cmd? : string;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function createTemplate (filePath : string) : Promise<HandlebarsTemplateDelegate<any>> {
|
async function createTemplate (filePath : string) : Promise<HandlebarsTemplateDelegate<any>> {
|
||||||
let tmpl : string;
|
let tmpl : string;
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -1,11 +1,5 @@
|
||||||
import type { SequenceObject } from '../files';
|
import type { SequenceObject } from '../files';
|
||||||
|
|
||||||
interface SequenceState {
|
|
||||||
hash : string,
|
|
||||||
name : string,
|
|
||||||
progress : number
|
|
||||||
}
|
|
||||||
|
|
||||||
export class Sequence {
|
export class Sequence {
|
||||||
private current : SequenceObject = null;
|
private current : SequenceObject = null;
|
||||||
private running : boolean;
|
private running : boolean;
|
||||||
|
@ -34,5 +28,3 @@ export class Sequence {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export type { SequenceState };
|
|
|
@ -1,13 +1,3 @@
|
||||||
interface SequenceState {
|
|
||||||
name: string;
|
|
||||||
hash: string;
|
|
||||||
progress: number;
|
|
||||||
}
|
|
||||||
interface State {
|
|
||||||
width?: number;
|
|
||||||
height?: number;
|
|
||||||
sequence?: SequenceState;
|
|
||||||
}
|
|
||||||
declare class Client {
|
declare class Client {
|
||||||
private client;
|
private client;
|
||||||
private connected;
|
private connected;
|
||||||
|
@ -16,6 +6,8 @@ declare class Client {
|
||||||
private onMessage;
|
private onMessage;
|
||||||
private onOpen;
|
private onOpen;
|
||||||
private setSequence;
|
private setSequence;
|
||||||
cameraOpen(): void;
|
private cmd;
|
||||||
|
sendCameraOpen(): void;
|
||||||
|
private receiveCameraOpen;
|
||||||
}
|
}
|
||||||
declare const client: Client;
|
declare const client: Client;
|
||||||
|
|
|
@ -8,9 +8,12 @@ class Client {
|
||||||
this.client.onmessage = this.onMessage.bind(this);
|
this.client.onmessage = this.onMessage.bind(this);
|
||||||
}
|
}
|
||||||
onMessage(event) {
|
onMessage(event) {
|
||||||
const state = JSON.parse(event.data);
|
const msg = JSON.parse(event.data);
|
||||||
if (typeof state.sequence !== 'undefined' && state.sequence !== null) {
|
if (typeof msg.state !== 'undefined' && msg.state.sequence !== null) {
|
||||||
this.setSequence(state.sequence);
|
this.setSequence(msg.state.sequence);
|
||||||
|
}
|
||||||
|
else if (typeof msg.cmd !== 'undefined' && msg.cmd !== null) {
|
||||||
|
this.cmd(msg.cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onOpen(event) {
|
onOpen(event) {
|
||||||
|
@ -22,10 +25,23 @@ class Client {
|
||||||
this.progress.value = percent;
|
this.progress.value = percent;
|
||||||
this.progress.innerText = `${Math.floor(percent)}%`;
|
this.progress.innerText = `${Math.floor(percent)}%`;
|
||||||
}
|
}
|
||||||
cameraOpen() {
|
cmd(id) {
|
||||||
console.log('camera open');
|
switch (id) {
|
||||||
|
case 'open':
|
||||||
|
this.receiveCameraOpen();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.warn(`No command ${id}`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sendCameraOpen() {
|
||||||
|
console.log('send camera open');
|
||||||
this.client.send(JSON.stringify({ cmd: 'open' }));
|
this.client.send(JSON.stringify({ cmd: 'open' }));
|
||||||
}
|
}
|
||||||
|
receiveCameraOpen() {
|
||||||
|
console.log('got camera open');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const client = new Client();
|
const client = new Client();
|
||||||
//# sourceMappingURL=index.js.map
|
//# sourceMappingURL=index.js.map
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../browser/index.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM;IAKV;QAHQ,cAAS,GAAa,KAAK,CAAC;QAIlC,IAAI,GAAG,GAAY,qBAAqB,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAwB,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAEO,SAAS,CAAE,KAAW;QAC5B,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAU,CAAC;QACtD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACrE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,MAAM,CAAE,KAAW;QACzB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEO,WAAW,CAAC,QAAwB;QAC1C,MAAM,OAAO,GAAY,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IACtD,CAAC;IAEM,UAAU;QACf,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;CACF;AAED,MAAM,MAAM,GAAY,IAAI,MAAM,EAAE,CAAC"}
|
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../browser/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM;IAKV;QAHQ,cAAS,GAAa,KAAK,CAAC;QAIlC,IAAI,GAAG,GAAY,qBAAqB,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAwB,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAEO,SAAS,CAAE,KAAW;QAC5B,MAAM,GAAG,GAAa,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QACxD,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,WAAW,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,MAAM,CAAE,KAAW;QACzB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEO,WAAW,CAAC,QAAwB;QAC1C,MAAM,OAAO,GAAY,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IACtD,CAAC;IAEO,GAAG,CAAE,EAAW;QACtB,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,MAAM;gBACT,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM;YACR;gBACE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBACjC,MAAM;QACV,CAAC;IACH,CAAC;IAEM,cAAc;QACnB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAEO,iBAAiB;QACvB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;CACF;AAED,MAAM,MAAM,GAAY,IAAI,MAAM,EAAE,CAAC"}
|
Loading…
Reference in New Issue