def-game 3.0.0 → 3.0.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/dist/example.d.ts +2 -0
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +96 -0
- package/dist/helper.d.ts +6 -0
- package/dist/helper.d.ts.map +1 -0
- package/dist/helper.js +34 -0
- package/dist/types.d.ts +9 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":""}
|
package/dist/example.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const helper_1 = require("./helper");
|
|
4
|
+
const customEventHander = (r) => {
|
|
5
|
+
switch (r.type) {
|
|
6
|
+
case "login":
|
|
7
|
+
return [
|
|
8
|
+
{
|
|
9
|
+
type: "authorize",
|
|
10
|
+
payload: {
|
|
11
|
+
name: "a",
|
|
12
|
+
password: "b",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
type: "authenticate",
|
|
17
|
+
payload: {
|
|
18
|
+
name: "a",
|
|
19
|
+
level: 1,
|
|
20
|
+
},
|
|
21
|
+
}
|
|
22
|
+
];
|
|
23
|
+
case "complicatedReq":
|
|
24
|
+
return [
|
|
25
|
+
{
|
|
26
|
+
type: "task1",
|
|
27
|
+
payload: {
|
|
28
|
+
name: "a",
|
|
29
|
+
password: "b",
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
type: "task2",
|
|
34
|
+
payload: {
|
|
35
|
+
name: "a",
|
|
36
|
+
level: 1,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
type: "task3",
|
|
41
|
+
payload: {
|
|
42
|
+
name: "a",
|
|
43
|
+
level: 1,
|
|
44
|
+
},
|
|
45
|
+
}
|
|
46
|
+
];
|
|
47
|
+
default:
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
// no need to write process that handles simple requests
|
|
52
|
+
const _sampleGenerateTasks = (0, helper_1.simplify)(customEventHander);
|
|
53
|
+
// ------------------------------------------------------------
|
|
54
|
+
// this is how you handle tasks
|
|
55
|
+
// task cases are composed
|
|
56
|
+
// - keyof SimpleOnlyPayload<Req>
|
|
57
|
+
// - keyof Tasks
|
|
58
|
+
const _switchTask = (task) => {
|
|
59
|
+
switch (task.type) {
|
|
60
|
+
case "move":
|
|
61
|
+
return moveTaskHandler(task.payload);
|
|
62
|
+
// login is a custom request, so we need to handle it differently
|
|
63
|
+
case "authorize":
|
|
64
|
+
return authorizeTaskHandler(task.payload);
|
|
65
|
+
case "authenticate":
|
|
66
|
+
return authenticateTaskHandler(task.payload);
|
|
67
|
+
case "task1":
|
|
68
|
+
return task1Handler(task.payload);
|
|
69
|
+
case "task2":
|
|
70
|
+
return task2Handler(task.payload);
|
|
71
|
+
case "task3":
|
|
72
|
+
return task3Handler(task.payload);
|
|
73
|
+
default:
|
|
74
|
+
const _exhaustiveCheck = task;
|
|
75
|
+
console.log("unknown event", task);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const moveTaskHandler = (payload) => {
|
|
79
|
+
console.log(payload);
|
|
80
|
+
};
|
|
81
|
+
const authorizeTaskHandler = (payload) => {
|
|
82
|
+
console.log(payload);
|
|
83
|
+
};
|
|
84
|
+
const authenticateTaskHandler = (payload) => {
|
|
85
|
+
console.log(payload);
|
|
86
|
+
};
|
|
87
|
+
const task1Handler = (payload) => {
|
|
88
|
+
console.log(payload);
|
|
89
|
+
};
|
|
90
|
+
const task2Handler = (payload) => {
|
|
91
|
+
console.log(payload);
|
|
92
|
+
};
|
|
93
|
+
const task3Handler = (payload) => {
|
|
94
|
+
console.log(payload);
|
|
95
|
+
};
|
|
96
|
+
// ------------------------------------------------------------
|
package/dist/helper.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Custom, CustomOnly, ReqMap, ReqPayload, Simple, Task, ToServer } from "./types";
|
|
2
|
+
export declare const simple: <T extends ReqPayload>(payload: T) => Simple<T>;
|
|
3
|
+
export declare const custom: <T extends ReqPayload>(payload: T) => Custom<T>;
|
|
4
|
+
export type CustomEventHander<A extends ReqMap, B extends Record<string, any>> = (r: ToServer<CustomOnly<A>>) => Task<A, B>[];
|
|
5
|
+
export declare const simplify: <A extends ReqMap, B extends Record<string, any>>(h: CustomEventHander<A, B>) => (a: ToServer<A>) => Task<A, B>[];
|
|
6
|
+
//# sourceMappingURL=helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAqB,IAAI,EAAe,QAAQ,EAAE,MAAM,SAAS,CAAA;AAExH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,UAAU,EAAE,SAAS,CAAC,KAAG,MAAM,CAAC,CAAC,CAKjE,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,UAAU,EAAE,SAAS,CAAC,KAAG,MAAM,CAAC,CAAC,CAKjE,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACvE,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AAGlD,eAAO,MAAM,QAAQ,GAChB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,MACvE,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAe3B,CAAA"}
|
package/dist/helper.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.simplify = exports.custom = exports.simple = void 0;
|
|
4
|
+
const simple = (payload) => {
|
|
5
|
+
return {
|
|
6
|
+
kind: "simple",
|
|
7
|
+
value: payload
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
exports.simple = simple;
|
|
11
|
+
const custom = (payload) => {
|
|
12
|
+
return {
|
|
13
|
+
kind: "custom",
|
|
14
|
+
value: payload
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
exports.custom = custom;
|
|
18
|
+
const simplify = (h) => (a) => {
|
|
19
|
+
switch (a.payload.kind) {
|
|
20
|
+
case "simple":
|
|
21
|
+
const key = a.type;
|
|
22
|
+
const payload = a.payload.value;
|
|
23
|
+
return [
|
|
24
|
+
{
|
|
25
|
+
type: key,
|
|
26
|
+
payload,
|
|
27
|
+
}
|
|
28
|
+
];
|
|
29
|
+
case "custom":
|
|
30
|
+
const b = a;
|
|
31
|
+
return h(b);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.simplify = simplify;
|
package/dist/types.d.ts
CHANGED
|
@@ -18,10 +18,17 @@ export type FromServerMap<T extends Map> = T;
|
|
|
18
18
|
export type ToServerMap<T extends ReqMap> = T;
|
|
19
19
|
export type CustomTaskMap<T extends Map> = T;
|
|
20
20
|
export type ExtractSimplePayload<T> = T extends Simple<infer U> ? U : never;
|
|
21
|
-
export type
|
|
21
|
+
export type ExtractCustomPayload<T> = T extends Custom<infer U> ? U : never;
|
|
22
|
+
export type SimpleOnlyPayload<T extends ReqMap> = {
|
|
22
23
|
[K in keyof T as T[K] extends Simple<any> ? K : never]: ExtractSimplePayload<T[K]>;
|
|
23
24
|
};
|
|
24
|
-
export type
|
|
25
|
+
export type CustomOnlyPayload<T extends ReqMap> = {
|
|
26
|
+
[K in keyof T as T[K] extends Custom<any> ? K : never]: ExtractCustomPayload<T[K]>;
|
|
27
|
+
};
|
|
28
|
+
export type CustomOnly<T extends ReqMap> = {
|
|
29
|
+
[K in keyof T as T[K] extends Custom<any> ? K : never]: T[K];
|
|
30
|
+
};
|
|
31
|
+
export type TaskMapType<A extends ReqMap, B extends Map> = Merge<SimpleOnlyPayload<A>, CustomTaskMap<B>>;
|
|
25
32
|
export type Player = {
|
|
26
33
|
id: PlayerId;
|
|
27
34
|
name: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/B,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI;KACd,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GACzC,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,SAAS,MAAM,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK;CACV,CAAC;AAEF,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,QAAQ,CAAC;CACtB;AACD,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7E,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,UAAU,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AACxE,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,UAAU,IAAI;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AACxE,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AAC7C,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC;AAC9C,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;AAE7C,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5E,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|