@sockethub/platform-dummy 3.0.0-alpha.9 → 3.0.0-beta.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/README.md CHANGED
@@ -8,7 +8,7 @@ This platform provides basic testing functionality for Sockethub development. It
8
8
  simple verbs that can be used to test ActivityStreams message flow, error handling, and
9
9
  platform communication without requiring external service connections.
10
10
 
11
- ## Implemented Verbs (`@type`)
11
+ ## Implemented Verbs (`type`)
12
12
 
13
13
  * **echo** - Returns the received message unchanged
14
14
  * **fail** - Intentionally fails with an error message
@@ -21,12 +21,18 @@ platform communication without requiring external service connections.
21
21
 
22
22
  ```json
23
23
  {
24
- "@type": "echo",
25
- "context": "dummy",
24
+ "type": "echo",
25
+ "@context": [
26
+ "https://www.w3.org/ns/activitystreams",
27
+ "https://sockethub.org/ns/context/v1.jsonld",
28
+ "https://sockethub.org/ns/context/platform/dummy/v1.jsonld"
29
+ ],
26
30
  "actor": {
27
- "@id": "test-user"
31
+ "id": "test-user",
32
+ "type": "person"
28
33
  },
29
34
  "object": {
35
+ "type": "message",
30
36
  "content": "Hello World"
31
37
  }
32
38
  }
@@ -36,12 +42,22 @@ platform communication without requiring external service connections.
36
42
 
37
43
  ```json
38
44
  {
39
- "@type": "echo",
40
- "context": "dummy",
45
+ "type": "echo",
46
+ "@context": [
47
+ "https://www.w3.org/ns/activitystreams",
48
+ "https://sockethub.org/ns/context/v1.jsonld",
49
+ "https://sockethub.org/ns/context/platform/dummy/v1.jsonld"
50
+ ],
41
51
  "actor": {
42
- "@id": "test-user"
52
+ "id": "dummy",
53
+ "type": "platform"
54
+ },
55
+ "target": {
56
+ "id": "test-user",
57
+ "type": "person"
43
58
  },
44
59
  "object": {
60
+ "type": "message",
45
61
  "content": "Hello World"
46
62
  }
47
63
  }
@@ -0,0 +1,27 @@
1
+ import type { ActivityStream, PlatformCallback, PlatformInterface, PlatformSchemaStruct, PlatformSession, StatelessPlatformConfig } from "@sockethub/schemas";
2
+ interface DummyPlatformConfig extends StatelessPlatformConfig {
3
+ greeting: string;
4
+ }
5
+ export default class Dummy implements PlatformInterface {
6
+ private readonly log;
7
+ config: DummyPlatformConfig;
8
+ constructor(session: PlatformSession);
9
+ get schema(): PlatformSchemaStruct;
10
+ /**
11
+ * Stateless platforms are always ready to handle jobs.
12
+ */
13
+ isInitialized(): boolean;
14
+ echo(job: ActivityStream, cb: PlatformCallback): void;
15
+ fail(job: ActivityStream, cb: PlatformCallback): void;
16
+ throw(job: ActivityStream, cb: PlatformCallback): void;
17
+ exit0(_job: ActivityStream, _cb: PlatformCallback): void;
18
+ exit1(_job: ActivityStream, _cb: PlatformCallback): void;
19
+ throwTypeError(_job: ActivityStream, _cb: PlatformCallback): void;
20
+ throwReferenceError(_job: ActivityStream, _cb: PlatformCallback): void;
21
+ sigterm(_job: ActivityStream, _cb: PlatformCallback): void;
22
+ sigkill(_job: ActivityStream, _cb: PlatformCallback): void;
23
+ hang(_job: ActivityStream, _cb: PlatformCallback): void;
24
+ greet(job: ActivityStream, cb: PlatformCallback): void;
25
+ cleanup(cb: PlatformCallback): void;
26
+ }
27
+ export {};
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  var package_default = {
3
3
  name: "@sockethub/platform-dummy",
4
4
  description: "A sockethub platform dummy module",
5
- version: "3.0.0-alpha.9",
5
+ version: "3.0.0-beta.1",
6
6
  type: "module",
7
7
  private: false,
8
8
  author: "Nick Jennings <nick@silverbucket.net>",
@@ -13,22 +13,27 @@ var package_default = {
13
13
  main: "dist/index.js",
14
14
  exports: {
15
15
  ".": {
16
- bun: "./src/index.ts",
16
+ types: "./dist/index.d.ts",
17
17
  import: "./dist/index.js",
18
18
  default: "./dist/index.js"
19
19
  }
20
20
  },
21
- files: ["src/", "dist/"],
21
+ files: [
22
+ "dist/"
23
+ ],
22
24
  engines: {
23
- bun: ">=1.2"
25
+ node: ">=20"
24
26
  },
25
- keywords: ["sockethub", "dummy"],
27
+ keywords: [
28
+ "sockethub",
29
+ "dummy"
30
+ ],
26
31
  devDependencies: {
27
- "@sockethub/schemas": "^3.0.0-alpha.9",
32
+ "@sockethub/schemas": "^3.0.0-beta.1",
28
33
  "@types/bun": "latest"
29
34
  },
30
35
  peerDependencies: {
31
- "@sockethub/server": "^5.0.0-alpha.9"
36
+ "@sockethub/server": "^5.0.0-beta.1"
32
37
  },
33
38
  peerDependenciesMeta: {
34
39
  "@sockethub/server": {
@@ -37,7 +42,8 @@ var package_default = {
37
42
  },
38
43
  scripts: {
39
44
  build: "bun build src/index.ts --outdir dist --target node --format esm --sourcemap=external",
40
- clean: "rm -rf dist"
45
+ clean: "rm -rf dist",
46
+ "clean:deps": "rm -rf node_modules"
41
47
  },
42
48
  repository: {
43
49
  type: "git",
@@ -45,34 +51,53 @@ var package_default = {
45
51
  directory: "packages/platform-dummy"
46
52
  },
47
53
  homepage: "https://github.com/sockethub/sockethub/tree/master/packages/platform-dummy",
48
- gitHead: "917cd17f403768037a0ee3d251ac720a81f55d86"
54
+ gitHead: "06c9062f1cb5f0c0599fd979e6e91da79f08eda0",
55
+ types: "./dist/index.d.ts"
49
56
  };
50
57
 
51
58
  // src/index.ts
52
59
  class Dummy {
53
- debug;
60
+ log;
54
61
  config = {
55
62
  persist: false,
56
63
  greeting: "Hello"
57
64
  };
58
65
  constructor(session) {
59
- this.debug = session.debug;
66
+ this.log = session.log;
60
67
  }
61
68
  get schema() {
62
69
  return {
63
70
  name: "dummy",
64
71
  version: package_default.version,
72
+ contextUrl: "https://sockethub.org/ns/context/platform/dummy/v1.jsonld",
73
+ contextVersion: "1",
74
+ schemaVersion: "1",
65
75
  messages: {
66
76
  required: ["type"],
67
77
  properties: {
68
78
  type: {
69
- enum: ["echo", "fail", "throw", "greet"]
79
+ enum: [
80
+ "echo",
81
+ "fail",
82
+ "throw",
83
+ "greet",
84
+ "exit0",
85
+ "exit1",
86
+ "throwTypeError",
87
+ "throwReferenceError",
88
+ "sigterm",
89
+ "sigkill",
90
+ "hang"
91
+ ]
70
92
  }
71
93
  }
72
94
  },
73
95
  credentials: {}
74
96
  };
75
97
  }
98
+ isInitialized() {
99
+ return true;
100
+ }
76
101
  echo(job, cb) {
77
102
  job.target = job.actor;
78
103
  job.actor = {
@@ -85,7 +110,34 @@ class Dummy {
85
110
  cb(new Error(job.object.content));
86
111
  }
87
112
  throw(job, cb) {
88
- throw new Error(job.object.content);
113
+ cb(new Error(job.object.content));
114
+ }
115
+ exit0(_job, _cb) {
116
+ process.exit(0);
117
+ }
118
+ exit1(_job, _cb) {
119
+ process.exit(1);
120
+ }
121
+ throwTypeError(_job, _cb) {
122
+ setTimeout(() => {
123
+ throw new TypeError("dummy type error");
124
+ }, 0);
125
+ }
126
+ throwReferenceError(_job, _cb) {
127
+ setTimeout(() => {
128
+ throw new ReferenceError("dummy reference error");
129
+ }, 0);
130
+ }
131
+ sigterm(_job, _cb) {
132
+ process.kill(process.pid, "SIGTERM");
133
+ }
134
+ sigkill(_job, _cb) {
135
+ process.kill(process.pid, "SIGKILL");
136
+ }
137
+ hang(_job, _cb) {
138
+ const buf = new SharedArrayBuffer(4);
139
+ const arr = new Int32Array(buf);
140
+ Atomics.wait(arr, 0, 0, 60000);
89
141
  }
90
142
  greet(job, cb) {
91
143
  job.target = job.actor;
@@ -97,6 +149,7 @@ class Dummy {
97
149
  cb(undefined, job);
98
150
  }
99
151
  cleanup(cb) {
152
+ this.log.debug("cleanup");
100
153
  cb();
101
154
  }
102
155
  }
@@ -104,4 +157,4 @@ export {
104
157
  Dummy as default
105
158
  };
106
159
 
107
- //# debugId=7D3D6A393668FB8F64756E2164756E21
160
+ //# debugId=2501B57E185DD7FE64756E2164756E21
package/dist/index.js.map CHANGED
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
4
  "sourcesContent": [
5
- "import type {\n ActivityStream,\n Logger,\n PlatformCallback,\n PlatformInterface,\n PlatformSchemaStruct,\n PlatformSession,\n StatelessPlatformConfig,\n} from \"@sockethub/schemas\";\n\nimport packageJSON from \"../package.json\" with { type: \"json\" };\n\ninterface DummyPlatformConfig extends StatelessPlatformConfig {\n greeting: string;\n}\n\nexport default class Dummy implements PlatformInterface {\n debug: Logger;\n config: DummyPlatformConfig = {\n persist: false,\n greeting: \"Hello\",\n };\n\n constructor(session: PlatformSession) {\n this.debug = session.debug;\n }\n\n get schema(): PlatformSchemaStruct {\n return {\n name: \"dummy\",\n version: packageJSON.version,\n messages: {\n required: [\"type\"],\n properties: {\n type: {\n enum: [\"echo\", \"fail\", \"throw\", \"greet\"],\n },\n },\n },\n credentials: {},\n };\n }\n\n echo(job: ActivityStream, cb: PlatformCallback) {\n job.target = job.actor;\n job.actor = {\n id: \"dummy\",\n type: \"platform\",\n };\n cb(undefined, job);\n }\n\n fail(job: ActivityStream, cb: PlatformCallback) {\n cb(new Error(job.object.content));\n }\n\n throw(job: ActivityStream, cb: PlatformCallback) {\n throw new Error(job.object.content);\n }\n\n greet(job: ActivityStream, cb: PlatformCallback) {\n job.target = job.actor;\n job.actor = {\n id: \"dummy\",\n type: \"platform\",\n };\n job.object.content = `${this.config.greeting} ${job.object.content}`;\n cb(undefined, job);\n }\n\n cleanup(cb: PlatformCallback) {\n cb();\n }\n}\n"
5
+ "import type {\n ActivityStream,\n Logger,\n PlatformCallback,\n PlatformInterface,\n PlatformSchemaStruct,\n PlatformSession,\n StatelessPlatformConfig,\n} from \"@sockethub/schemas\";\n\nimport packageJSON from \"../package.json\" with { type: \"json\" };\n\ninterface DummyPlatformConfig extends StatelessPlatformConfig {\n greeting: string;\n}\n\nexport default class Dummy implements PlatformInterface {\n private readonly log: Logger;\n config: DummyPlatformConfig = {\n persist: false,\n greeting: \"Hello\",\n };\n\n constructor(session: PlatformSession) {\n this.log = session.log;\n }\n\n get schema(): PlatformSchemaStruct {\n return {\n name: \"dummy\",\n version: packageJSON.version,\n contextUrl:\n \"https://sockethub.org/ns/context/platform/dummy/v1.jsonld\",\n contextVersion: \"1\",\n schemaVersion: \"1\",\n messages: {\n required: [\"type\"],\n properties: {\n type: {\n enum: [\n \"echo\",\n \"fail\",\n \"throw\",\n \"greet\",\n \"exit0\",\n \"exit1\",\n \"throwTypeError\",\n \"throwReferenceError\",\n \"sigterm\",\n \"sigkill\",\n \"hang\",\n ],\n },\n },\n },\n credentials: {},\n };\n }\n\n /**\n * Stateless platforms are always ready to handle jobs.\n */\n isInitialized(): boolean {\n return true;\n }\n\n echo(job: ActivityStream, cb: PlatformCallback) {\n job.target = job.actor;\n job.actor = {\n id: \"dummy\",\n type: \"platform\",\n };\n cb(undefined, job);\n }\n\n fail(job: ActivityStream, cb: PlatformCallback) {\n cb(new Error(job.object.content));\n }\n\n throw(job: ActivityStream, cb: PlatformCallback) {\n cb(new Error(job.object.content));\n }\n\n exit0(_job: ActivityStream, _cb: PlatformCallback) {\n process.exit(0);\n }\n\n exit1(_job: ActivityStream, _cb: PlatformCallback) {\n process.exit(1);\n }\n\n throwTypeError(_job: ActivityStream, _cb: PlatformCallback) {\n setTimeout(() => {\n throw new TypeError(\"dummy type error\");\n }, 0);\n }\n\n throwReferenceError(_job: ActivityStream, _cb: PlatformCallback) {\n setTimeout(() => {\n throw new ReferenceError(\"dummy reference error\");\n }, 0);\n }\n\n sigterm(_job: ActivityStream, _cb: PlatformCallback) {\n process.kill(process.pid, \"SIGTERM\");\n }\n\n sigkill(_job: ActivityStream, _cb: PlatformCallback) {\n process.kill(process.pid, \"SIGKILL\");\n }\n\n hang(_job: ActivityStream, _cb: PlatformCallback) {\n const buf = new SharedArrayBuffer(4);\n const arr = new Int32Array(buf);\n Atomics.wait(arr, 0, 0, 60_000);\n }\n\n greet(job: ActivityStream, cb: PlatformCallback) {\n job.target = job.actor;\n job.actor = {\n id: \"dummy\",\n type: \"platform\",\n };\n job.object.content = `${this.config.greeting} ${job.object.content}`;\n cb(undefined, job);\n }\n\n cleanup(cb: PlatformCallback) {\n this.log.debug(\"cleanup\");\n cb();\n }\n}\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAqB,MAAmC;AAAA,EACpD;AAAA,EACA,SAA8B;AAAA,IAC1B,SAAS;AAAA,IACT,UAAU;AAAA,EACd;AAAA,EAEA,WAAW,CAAC,SAA0B;AAAA,IAClC,KAAK,QAAQ,QAAQ;AAAA;AAAA,MAGrB,MAAM,GAAyB;AAAA,IAC/B,OAAO;AAAA,MACH,MAAM;AAAA,MACN,SAAS,gBAAY;AAAA,MACrB,UAAU;AAAA,QACN,UAAU,CAAC,MAAM;AAAA,QACjB,YAAY;AAAA,UACR,MAAM;AAAA,YACF,MAAM,CAAC,QAAQ,QAAQ,SAAS,OAAO;AAAA,UAC3C;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,aAAa,CAAC;AAAA,IAClB;AAAA;AAAA,EAGJ,IAAI,CAAC,KAAqB,IAAsB;AAAA,IAC5C,IAAI,SAAS,IAAI;AAAA,IACjB,IAAI,QAAQ;AAAA,MACR,IAAI;AAAA,MACJ,MAAM;AAAA,IACV;AAAA,IACA,GAAG,WAAW,GAAG;AAAA;AAAA,EAGrB,IAAI,CAAC,KAAqB,IAAsB;AAAA,IAC5C,GAAG,IAAI,MAAM,IAAI,OAAO,OAAO,CAAC;AAAA;AAAA,EAGpC,KAAK,CAAC,KAAqB,IAAsB;AAAA,IAC7C,MAAM,IAAI,MAAM,IAAI,OAAO,OAAO;AAAA;AAAA,EAGtC,KAAK,CAAC,KAAqB,IAAsB;AAAA,IAC7C,IAAI,SAAS,IAAI;AAAA,IACjB,IAAI,QAAQ;AAAA,MACR,IAAI;AAAA,MACJ,MAAM;AAAA,IACV;AAAA,IACA,IAAI,OAAO,UAAU,GAAG,KAAK,OAAO,YAAY,IAAI,OAAO;AAAA,IAC3D,GAAG,WAAW,GAAG;AAAA;AAAA,EAGrB,OAAO,CAAC,IAAsB;AAAA,IAC1B,GAAG;AAAA;AAEX;",
8
- "debugId": "7D3D6A393668FB8F64756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBe,MAAM,MAAmC;AAAA,EACnC;AAAA,EACjB,SAA8B;AAAA,IAC1B,SAAS;AAAA,IACT,UAAU;AAAA,EACd;AAAA,EAEA,WAAW,CAAC,SAA0B;AAAA,IAClC,KAAK,MAAM,QAAQ;AAAA;AAAA,MAGnB,MAAM,GAAyB;AAAA,IAC/B,OAAO;AAAA,MACH,MAAM;AAAA,MACN,SAAS,gBAAY;AAAA,MACrB,YACI;AAAA,MACJ,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,UAAU;AAAA,QACN,UAAU,CAAC,MAAM;AAAA,QACjB,YAAY;AAAA,UACR,MAAM;AAAA,YACF,MAAM;AAAA,cACF;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,aAAa,CAAC;AAAA,IAClB;AAAA;AAAA,EAMJ,aAAa,GAAY;AAAA,IACrB,OAAO;AAAA;AAAA,EAGX,IAAI,CAAC,KAAqB,IAAsB;AAAA,IAC5C,IAAI,SAAS,IAAI;AAAA,IACjB,IAAI,QAAQ;AAAA,MACR,IAAI;AAAA,MACJ,MAAM;AAAA,IACV;AAAA,IACA,GAAG,WAAW,GAAG;AAAA;AAAA,EAGrB,IAAI,CAAC,KAAqB,IAAsB;AAAA,IAC5C,GAAG,IAAI,MAAM,IAAI,OAAO,OAAO,CAAC;AAAA;AAAA,EAGpC,KAAK,CAAC,KAAqB,IAAsB;AAAA,IAC7C,GAAG,IAAI,MAAM,IAAI,OAAO,OAAO,CAAC;AAAA;AAAA,EAGpC,KAAK,CAAC,MAAsB,KAAuB;AAAA,IAC/C,QAAQ,KAAK,CAAC;AAAA;AAAA,EAGlB,KAAK,CAAC,MAAsB,KAAuB;AAAA,IAC/C,QAAQ,KAAK,CAAC;AAAA;AAAA,EAGlB,cAAc,CAAC,MAAsB,KAAuB;AAAA,IACxD,WAAW,MAAM;AAAA,MACb,MAAM,IAAI,UAAU,kBAAkB;AAAA,OACvC,CAAC;AAAA;AAAA,EAGR,mBAAmB,CAAC,MAAsB,KAAuB;AAAA,IAC7D,WAAW,MAAM;AAAA,MACb,MAAM,IAAI,eAAe,uBAAuB;AAAA,OACjD,CAAC;AAAA;AAAA,EAGR,OAAO,CAAC,MAAsB,KAAuB;AAAA,IACjD,QAAQ,KAAK,QAAQ,KAAK,SAAS;AAAA;AAAA,EAGvC,OAAO,CAAC,MAAsB,KAAuB;AAAA,IACjD,QAAQ,KAAK,QAAQ,KAAK,SAAS;AAAA;AAAA,EAGvC,IAAI,CAAC,MAAsB,KAAuB;AAAA,IAC9C,MAAM,MAAM,IAAI,kBAAkB,CAAC;AAAA,IACnC,MAAM,MAAM,IAAI,WAAW,GAAG;AAAA,IAC9B,QAAQ,KAAK,KAAK,GAAG,GAAG,KAAM;AAAA;AAAA,EAGlC,KAAK,CAAC,KAAqB,IAAsB;AAAA,IAC7C,IAAI,SAAS,IAAI;AAAA,IACjB,IAAI,QAAQ;AAAA,MACR,IAAI;AAAA,MACJ,MAAM;AAAA,IACV;AAAA,IACA,IAAI,OAAO,UAAU,GAAG,KAAK,OAAO,YAAY,IAAI,OAAO;AAAA,IAC3D,GAAG,WAAW,GAAG;AAAA;AAAA,EAGrB,OAAO,CAAC,IAAsB;AAAA,IAC1B,KAAK,IAAI,MAAM,SAAS;AAAA,IACxB,GAAG;AAAA;AAEX;",
8
+ "debugId": "2501B57E185DD7FE64756E2164756E21",
9
9
  "names": []
10
10
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sockethub/platform-dummy",
3
3
  "description": "A sockethub platform dummy module",
4
- "version": "3.0.0-alpha.9",
4
+ "version": "3.0.0-beta.1",
5
5
  "type": "module",
6
6
  "private": false,
7
7
  "author": "Nick Jennings <nick@silverbucket.net>",
@@ -12,28 +12,27 @@
12
12
  "main": "dist/index.js",
13
13
  "exports": {
14
14
  ".": {
15
- "bun": "./src/index.ts",
15
+ "types": "./dist/index.d.ts",
16
16
  "import": "./dist/index.js",
17
17
  "default": "./dist/index.js"
18
18
  }
19
19
  },
20
20
  "files": [
21
- "src/",
22
21
  "dist/"
23
22
  ],
24
23
  "engines": {
25
- "bun": ">=1.2"
24
+ "node": ">=20"
26
25
  },
27
26
  "keywords": [
28
27
  "sockethub",
29
28
  "dummy"
30
29
  ],
31
30
  "devDependencies": {
32
- "@sockethub/schemas": "^3.0.0-alpha.9",
31
+ "@sockethub/schemas": "^3.0.0-beta.1",
33
32
  "@types/bun": "latest"
34
33
  },
35
34
  "peerDependencies": {
36
- "@sockethub/server": "^5.0.0-alpha.9"
35
+ "@sockethub/server": "^5.0.0-beta.1"
37
36
  },
38
37
  "peerDependenciesMeta": {
39
38
  "@sockethub/server": {
@@ -42,7 +41,8 @@
42
41
  },
43
42
  "scripts": {
44
43
  "build": "bun build src/index.ts --outdir dist --target node --format esm --sourcemap=external",
45
- "clean": "rm -rf dist"
44
+ "clean": "rm -rf dist",
45
+ "clean:deps": "rm -rf node_modules"
46
46
  },
47
47
  "repository": {
48
48
  "type": "git",
@@ -50,5 +50,6 @@
50
50
  "directory": "packages/platform-dummy"
51
51
  },
52
52
  "homepage": "https://github.com/sockethub/sockethub/tree/master/packages/platform-dummy",
53
- "gitHead": "b89aac0946735864f3fec3bdc4ea15328b37120e"
53
+ "gitHead": "928f0c480e4828f492fb29a97712474a8f1bcaef",
54
+ "types": "./dist/index.d.ts"
54
55
  }
package/src/index.ts DELETED
@@ -1,74 +0,0 @@
1
- import type {
2
- ActivityStream,
3
- Logger,
4
- PlatformCallback,
5
- PlatformInterface,
6
- PlatformSchemaStruct,
7
- PlatformSession,
8
- StatelessPlatformConfig,
9
- } from "@sockethub/schemas";
10
-
11
- import packageJSON from "../package.json" with { type: "json" };
12
-
13
- interface DummyPlatformConfig extends StatelessPlatformConfig {
14
- greeting: string;
15
- }
16
-
17
- export default class Dummy implements PlatformInterface {
18
- debug: Logger;
19
- config: DummyPlatformConfig = {
20
- persist: false,
21
- greeting: "Hello",
22
- };
23
-
24
- constructor(session: PlatformSession) {
25
- this.debug = session.debug;
26
- }
27
-
28
- get schema(): PlatformSchemaStruct {
29
- return {
30
- name: "dummy",
31
- version: packageJSON.version,
32
- messages: {
33
- required: ["type"],
34
- properties: {
35
- type: {
36
- enum: ["echo", "fail", "throw", "greet"],
37
- },
38
- },
39
- },
40
- credentials: {},
41
- };
42
- }
43
-
44
- echo(job: ActivityStream, cb: PlatformCallback) {
45
- job.target = job.actor;
46
- job.actor = {
47
- id: "dummy",
48
- type: "platform",
49
- };
50
- cb(undefined, job);
51
- }
52
-
53
- fail(job: ActivityStream, cb: PlatformCallback) {
54
- cb(new Error(job.object.content));
55
- }
56
-
57
- throw(job: ActivityStream, cb: PlatformCallback) {
58
- throw new Error(job.object.content);
59
- }
60
-
61
- greet(job: ActivityStream, cb: PlatformCallback) {
62
- job.target = job.actor;
63
- job.actor = {
64
- id: "dummy",
65
- type: "platform",
66
- };
67
- job.object.content = `${this.config.greeting} ${job.object.content}`;
68
- cb(undefined, job);
69
- }
70
-
71
- cleanup(cb: PlatformCallback) {
72
- cb();
73
- }
74
- }