Skip to content

Commit

Permalink
feat(demo/signal2): add demo
Browse files Browse the repository at this point in the history
  • Loading branch information
AliMD committed Jun 5, 2023
1 parent cff2626 commit ddf083e
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 0 deletions.
1 change: 1 addition & 0 deletions demo/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<li><a href="./logger/">Logger</a></li>
<li><a href="./fetch/">Fetch</a></li>
<li><a href="./signal/">Signal</a></li>
<li><a href="./signal2/">Signal 2</a></li>
<li><a href="./router/">Router</a></li>
<li><a href="./font/">Font</a></li>
<li><a href="./math/">Math</a></li>
Expand Down
19 changes: 19 additions & 0 deletions demo/signal2/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@alwatr/signal</title>
<script type="module" src="./index.js"></script>
<style>
html {
color-scheme: light dark;
}
</style>
</head>

<body>
<h3>Check the console</h3>
<button id="changeContext">Set new value</button>
</body>
</html>
6 changes: 6 additions & 0 deletions demo/signal2/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import {AlwatrContext} from '@alwatr/signal2';

import './main.js';

const worker = new Worker('./worker.js', {type: 'module'});
AlwatrContext.setupChannel(worker);
16 changes: 16 additions & 0 deletions demo/signal2/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import {createLogger} from '@alwatr/logger';

import {messageContext} from './share-context.js';

const logger = createLogger('demo/signal2', true);

let i = 0;

document.getElementById('changeContext')?.addEventListener('click', () => {
logger.logMethod?.('main/setValue');
messageContext.setValue({type: 'demo.signal', payload: {i: ++i}});
});

messageContext.subscribe((message) => {
logger.logMethodArgs?.('main/subscribe', message);
});
9 changes: 9 additions & 0 deletions demo/signal2/share-context.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import {AlwatrContext} from '@alwatr/signal2';

import type {Stringifyable} from '@alwatr/type';

type Message = {
type: string;
payload: Stringifyable
}
export const messageContext = new AlwatrContext<Message>('demo.message');
24 changes: 24 additions & 0 deletions demo/signal2/worker.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import {createLogger} from '@alwatr/logger';
import {AlwatrContext} from '@alwatr/signal2';

AlwatrContext.setupChannel();

import {messageContext} from './share-context.js';

const logger = createLogger('demo/signal2', true);

let i = 0;

messageContext.subscribe((message) => {
logger.logMethodArgs?.('worker/subscribe', message);
});

setInterval(() => {
logger.logMethod?.('worker/setValue');
messageContext.setValue({type: 'demo.signal', payload: {i: ++i}});
}, 5000);

globalThis.addEventListener('message', (event) => {
logger.logMethodArgs?.('onMessage', event.data);
globalThis.postMessage('aleyk ' + event.data);
});
1 change: 1 addition & 0 deletions demo/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
{"path": "../core/logger"},
{"path": "../core/fetch"},
{"path": "../core/signal"},
{"path": "../core/signal2"},
{"path": "../core/router"},
{"path": "../core/type"},
{"path": "../core/storage-client"},
Expand Down

0 comments on commit ddf083e

Please sign in to comment.