Skip to content

Commit 050d18a

Browse files
committed
refactor(web): Rename (Default)Worker to WebWorker and NodeWorker
Addresses code review comment: `Worker` is a generic and semi-reserved name that we should not be stepping on. This renames it to `WebWorker` instead of the suggested `LMWorker` or `PredictiveTextWorker`. `WebWorker` is a name that was already used in a few places and seems to better match: there is a corresponding class for running with node. Naming it `WebWorker` makes it clearer that this is the corresponding class when running in the browser. The corresponding class for running under node was renamed to `NodeWorker`. Test-bot: skip
1 parent 3833f19 commit 050d18a

File tree

11 files changed

+29
-25
lines changed

11 files changed

+29
-25
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { KeymanEngine } from './keymanEngine.js'
2-
import { Worker } from '@keymanapp/lexical-model-layer/web'
2+
import { WebWorker } from '@keymanapp/lexical-model-layer/web'
33

44
/**
55
* Determine path and protocol of executing script, setting them as
@@ -9,4 +9,4 @@ const ss = (document.currentScript as HTMLScriptElement)?.src;
99
const sPath = ss ? ss.substring(0, ss.lastIndexOf('/') + 1) : './';
1010

1111
// @ts-ignore
12-
window['keyman'] = new KeymanEngine(Worker, sPath);
12+
window['keyman'] = new KeymanEngine(WebWorker, sPath);
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { KeymanEngine } from './keymanEngine.js'
2-
import { Worker } from '@keymanapp/lexical-model-layer/web'
2+
import { WebWorker } from '@keymanapp/lexical-model-layer/web'
33

44
/**
55
* Determine path and protocol of executing script, setting them as
@@ -9,4 +9,4 @@ const ss = (document.currentScript as HTMLScriptElement)?.src;
99
const sPath = ss ? ss.substring(0, ss.lastIndexOf('/') + 1) : './';
1010

1111
// @ts-ignore
12-
window['keyman'] = new KeymanEngine(Worker, sPath);
12+
window['keyman'] = new KeymanEngine(WebWorker, sPath);

web/src/engine/predictive-text/worker-main/src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
export { default as LMLayer } from './lmlayer.js';
2-
export { default as NodeWorker } from './node/worker.js';
3-
export { default as WebWorker } from './web/worker.js';
1+
export { LMLayer } from './lmlayer.js';
2+
export { NodeWorker } from './node/node-worker.js';
3+
export { WebWorker } from './web/web-worker.js';
44

55
export interface WorkerFactory {
66
constructInstance(): Worker

web/src/engine/predictive-text/worker-main/src/node/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export { LMLayer } from '../lmlayer.js';
2-
export { Worker } from './worker.js';
2+
export { NodeWorker } from './node-worker.js';
33
export { SourcemappedWorker } from './sourcemappedWorker.js';
44

55
export interface WorkerFactory {

web/src/engine/predictive-text/worker-main/src/node/worker.ts renamed to web/src/engine/predictive-text/worker-main/src/node/node-worker.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
/*
2+
* Keyman is copyright (C) SIL Global. MIT License.
3+
*/
14
import { MappedWorker } from "./mappedWorker.js";
25
import { unwrap } from '../unwrap.js';
36

47
import { LMLayerWorkerCode, LMLayerWorkerSourcemapComment } from "@keymanapp/lm-worker/worker-main.wrapped.min.js";
58

6-
export class Worker {
9+
export class NodeWorker {
710
static constructInstance(): Worker {
811
let scriptStr = unwrap(LMLayerWorkerCode);
912
const srcMapUrlIndex = scriptStr.indexOf("//# sourceMappingURL")
@@ -12,8 +15,6 @@ export class Worker {
1215
}
1316

1417
scriptStr += '\n' + LMLayerWorkerSourcemapComment;
15-
let worker = new MappedWorker(scriptStr);
16-
17-
return worker as any as Worker;
18+
return new MappedWorker(scriptStr);
1819
}
1920
}

web/src/engine/predictive-text/worker-main/src/web/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export { LMLayer } from '../lmlayer.js';
2-
export { Worker } from './worker.js';
2+
export { WebWorker } from './web-worker.js';
33
export { SourcemappedWorker } from './sourcemappedWorker.js';
44

55
export interface WorkerFactory {

web/src/engine/predictive-text/worker-main/src/web/sourcemappedWorker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { unwrap } from '../unwrap.js';
22
import { LMLayerWorkerCode, LMLayerWorkerSourcemapComment } from "@keymanapp/lm-worker/worker-main.wrapped.js";
33

44
export class SourcemappedWorker {
5-
// the only difference to DefaultWorker is that this class uses
5+
// the only difference to WebWorker is that this class uses
66
// the unminified LM* blobs
77

88
static constructInstance(): Worker {

web/src/engine/predictive-text/worker-main/src/web/worker.ts renamed to web/src/engine/predictive-text/worker-main/src/web/web-worker.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
/*
2+
* Keyman is copyright (C) SIL Global. MIT License.
3+
*/
14
import { unwrap } from '../unwrap.js';
25
import { LMLayerWorkerCode, LMLayerWorkerSourcemapComment } from "@keymanapp/lm-worker/worker-main.wrapped.min.js";
36

4-
export class Worker {
7+
export class WebWorker {
58
static constructInstance(): Worker {
6-
return new globalThis.Worker(this.asBlobURI(LMLayerWorkerCode));
9+
return new Worker(this.asBlobURI(LMLayerWorkerCode));
710
}
811

912
/**

web/src/engine/predictive-text/worker-main/unit_tests/in_browser/cases/top-level-lmlayer.tests.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { assert } from 'chai';
22

3-
import { LMLayer, Worker as WorkerBuilder } from "@keymanapp/lexical-model-layer/web";
3+
import { LMLayer, WebWorker } from "@keymanapp/lexical-model-layer/web";
44

55
import { DEFAULT_BROWSER_TIMEOUT } from '@keymanapp/common-test-resources/test-timeouts.mjs';
66
import { defaultCapabilities } from '../helpers.mjs';
@@ -10,7 +10,7 @@ describe('LMLayer', function () {
1010

1111
describe('[[constructor]]', function () {
1212
it('should construct with a single argument', function () {
13-
let lmLayer = new LMLayer(defaultCapabilities, WorkerBuilder.constructInstance(), true);
13+
let lmLayer = new LMLayer(defaultCapabilities, WebWorker.constructInstance(), true);
1414
assert.instanceOf(lmLayer, LMLayer);
1515
lmLayer.shutdown();
1616
});
@@ -31,7 +31,7 @@ describe('LMLayer', function () {
3131
// Note: the full declaration exists; the code we want is wrapped within the func.
3232
// So... let's just call the func.
3333
const workerSrc = dummyHandler.toString() + "\ndummyHandler()";
34-
let uri = WorkerBuilder.asBlobURI(workerSrc);
34+
let uri = WebWorker.asBlobURI(workerSrc);
3535
assert.match(uri, /^blob:/);
3636

3737
let worker = new Worker(uri);

web/src/engine/predictive-text/worker-main/unit_tests/in_browser/cases/worker-dummy-integration.tests.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { assert } from 'chai';
22

3-
import { LMLayer, Worker } from "@keymanapp/lexical-model-layer/web";
3+
import { LMLayer, WebWorker } from "@keymanapp/lexical-model-layer/web";
44

55
import { DEFAULT_BROWSER_TIMEOUT } from '@keymanapp/common-test-resources/test-timeouts.mjs';
66
import { defaultCapabilities } from '../helpers.mjs';
@@ -52,7 +52,7 @@ describe('LMLayer using dummy model', function () {
5252

5353
describe('Prediction', function () {
5454
it('will predict future suggestions', function () {
55-
var lmLayer = new LMLayer(defaultCapabilities, Worker.constructInstance(), true);
55+
var lmLayer = new LMLayer(defaultCapabilities, WebWorker.constructInstance(), true);
5656

5757
var stripIDs = function(suggestions) {
5858
suggestions.forEach(function(suggestion) {
@@ -93,7 +93,7 @@ describe('LMLayer using dummy model', function () {
9393

9494
describe('Wordbreaking', function () {
9595
it('will perform (default) wordbreaking and return word at caret', function () {
96-
var lmLayer = new LMLayer(defaultCapabilities, Worker.constructInstance());
96+
var lmLayer = new LMLayer(defaultCapabilities, WebWorker.constructInstance());
9797

9898
// We're testing many as asynchronous messages in a row.
9999
// this would be cleaner using async/await syntax, but

0 commit comments

Comments
 (0)