@lwc/lwc-dev-server 10.2.1 → 10.3.0

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.
Files changed (61) hide show
  1. package/README.md +0 -6
  2. package/dist/bin.js +31 -0
  3. package/dist/bin.js.map +1 -0
  4. package/dist/server/bundler/lexBundler.spec.d.ts +1 -0
  5. package/dist/server/bundler/lexBundler.spec.js +71 -0
  6. package/dist/server/bundler/lexBundler.spec.js.map +1 -0
  7. package/dist/server/connection/client.d.ts +2 -19
  8. package/dist/server/connection/client.js +3 -40
  9. package/dist/server/connection/client.js.map +1 -1
  10. package/dist/server/connection/client.spec.d.ts +1 -0
  11. package/dist/server/connection/client.spec.js +107 -0
  12. package/dist/server/connection/client.spec.js.map +1 -0
  13. package/dist/server/connection/connection.d.ts +1 -1
  14. package/dist/server/connection/connection.js +4 -12
  15. package/dist/server/connection/connection.js.map +1 -1
  16. package/dist/server/connection/connection.spec.d.ts +1 -0
  17. package/dist/server/connection/connection.spec.js +60 -0
  18. package/dist/server/connection/connection.spec.js.map +1 -0
  19. package/dist/server/connection/web-socket-server.d.ts +10 -8
  20. package/dist/server/connection/web-socket-server.js +80 -51
  21. package/dist/server/connection/web-socket-server.js.map +1 -1
  22. package/dist/server/connection/web-socket-server.spec.d.ts +1 -0
  23. package/dist/server/connection/web-socket-server.spec.js +174 -0
  24. package/dist/server/connection/web-socket-server.spec.js.map +1 -0
  25. package/dist/server/index.d.ts +6 -18
  26. package/dist/server/index.js +33 -111
  27. package/dist/server/index.js.map +1 -1
  28. package/dist/server/index.spec.d.ts +1 -0
  29. package/dist/server/index.spec.js +98 -0
  30. package/dist/server/index.spec.js.map +1 -0
  31. package/dist/server/moduleGraph/index.js +19 -20
  32. package/dist/server/moduleGraph/index.js.map +1 -1
  33. package/dist/server/moduleGraph/index.spec.d.ts +1 -0
  34. package/dist/server/moduleGraph/index.spec.js +70 -0
  35. package/dist/server/moduleGraph/index.spec.js.map +1 -0
  36. package/dist/server/moduleGraph/workspaceScanner/__tests__/sfcli.spec.d.ts +1 -0
  37. package/dist/server/moduleGraph/workspaceScanner/__tests__/sfcli.spec.js +22 -0
  38. package/dist/server/moduleGraph/workspaceScanner/__tests__/sfcli.spec.js.map +1 -0
  39. package/dist/server/util/fileUtil.d.ts +0 -1
  40. package/dist/server/util/fileUtil.js +2 -10
  41. package/dist/server/util/fileUtil.js.map +1 -1
  42. package/dist/server/watcher/index.spec.d.ts +1 -0
  43. package/dist/server/watcher/index.spec.js +33 -0
  44. package/dist/server/watcher/index.spec.js.map +1 -0
  45. package/dist/types/devServer.d.ts +1 -2
  46. package/dist/types/devServer.js +1 -7
  47. package/dist/types/devServer.js.map +1 -1
  48. package/dist/utils/utils.test.d.ts +1 -0
  49. package/dist/utils/utils.test.js +49 -0
  50. package/dist/utils/utils.test.js.map +1 -0
  51. package/package.json +3 -7
  52. package/bin/dev-server.js +0 -2
  53. package/dist/cli/cli.js +0 -4
  54. package/dist/cli/cli.js.map +0 -1
  55. package/dist/cli/commands/devServer.d.ts +0 -2
  56. package/dist/cli/commands/devServer.js +0 -188
  57. package/dist/cli/commands/devServer.js.map +0 -1
  58. package/dist/cli/commands/index.d.ts +0 -2
  59. package/dist/cli/commands/index.js +0 -21
  60. package/dist/cli/commands/index.js.map +0 -1
  61. /package/dist/{cli/cli.d.ts → bin.d.ts} +0 -0
@@ -0,0 +1,98 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
+ import { FSWatcher } from 'chokidar';
3
+ import { LogLevel } from '../types/index.js';
4
+ import { LWCServer } from './index.js';
5
+ import { startWatch } from './watcher/index.js';
6
+ import { AuthenticatedWebSocketServer } from './connection/web-socket-server.js';
7
+ import { ModuleGraph } from './moduleGraph/index.js';
8
+ import ConsoleLogger from './consoleLogger.js';
9
+ import { Client } from './connection/client.js';
10
+ import { Connection } from './connection/connection.js';
11
+ vi.mock('chokidar', () => ({ FSWatcher: vi.fn(() => ({ on: vi.fn(), close: vi.fn() })) }));
12
+ vi.mock('./watcher/index.js', () => ({ startWatch: vi.fn(() => new FSWatcher()) }));
13
+ vi.mock('./connection/web-socket-server.js', () => ({
14
+ AuthenticatedWebSocketServer: vi.fn(() => ({
15
+ onNewConnection: vi.fn(),
16
+ close: vi.fn(),
17
+ })),
18
+ }));
19
+ vi.mock('./moduleGraph/index.js', () => ({ ModuleGraph: vi.fn() }));
20
+ vi.mock('./consoleLogger.js');
21
+ vi.mock('./connection/client.js', () => ({
22
+ Client: vi.fn(() => ({ onClose: vi.fn(), send: vi.fn() })),
23
+ }));
24
+ vi.mock('./connection/connection.js');
25
+ describe('LWCServer', () => {
26
+ let config;
27
+ let logger;
28
+ let wss;
29
+ let lwcServer;
30
+ beforeEach(() => {
31
+ config = {
32
+ paths: ['/some/path'],
33
+ logLevel: LogLevel.info,
34
+ identityToken: 'test-token',
35
+ maxClientCount: 2,
36
+ };
37
+ logger = new ConsoleLogger(config.logLevel);
38
+ wss = new AuthenticatedWebSocketServer(config, logger);
39
+ lwcServer = new LWCServer(config, wss, logger);
40
+ });
41
+ afterEach(() => {
42
+ vi.clearAllMocks();
43
+ });
44
+ it('should initialize the server with correct components', () => {
45
+ expect(startWatch).toHaveBeenCalledWith(config.paths);
46
+ expect(ModuleGraph).toHaveBeenCalledWith(config, logger, lwcServer.watcher, {
47
+ moduleUpdateHandler: lwcServer.moduleUpdateHandler,
48
+ });
49
+ });
50
+ it('should handle new connections and enforce max client limit', () => {
51
+ const mockUrl = 'ws://localhost';
52
+ const onNewConnection = vi.mocked(wss.onNewConnection).mock.calls[0][0];
53
+ // @ts-expect-error
54
+ const connection = new Connection();
55
+ onNewConnection(connection, mockUrl);
56
+ expect(Client).toHaveBeenCalledTimes(1);
57
+ expect(lwcServer.clients.size).toBe(1);
58
+ onNewConnection(connection, mockUrl);
59
+ onNewConnection(connection, mockUrl); // This should exceed max client count
60
+ expect(Client).toHaveBeenCalledTimes(2); // Only two clients allowed
61
+ expect(connection.close).toHaveBeenCalledTimes(1); // Third connection should be closed
62
+ expect(lwcServer.clients.size).toBe(2);
63
+ });
64
+ it('should handle file watcher errors and stop the server', () => {
65
+ const mockErrorEvent = { message: 'File watcher error' };
66
+ const onError = vi
67
+ .mocked(lwcServer.watcher)
68
+ .on.mock.calls.find(([eventName]) => eventName === 'error')[1];
69
+ onError(mockErrorEvent);
70
+ expect(logger.log).toHaveBeenCalledWith(LogLevel.error, '[LWC Dev Server] Encountered error while watching files');
71
+ expect(logger.log).toHaveBeenCalledWith(LogLevel.debug, `[LWC Dev Server] File watcher error: ${mockErrorEvent.message}`);
72
+ expect(wss.close).toHaveBeenCalled();
73
+ });
74
+ it('should stop the server and release resources', () => {
75
+ lwcServer.stopServer();
76
+ expect(logger.log).toHaveBeenCalledWith(LogLevel.info, '[LWC Dev Server] Stopping the dev server');
77
+ expect(lwcServer.watcher.close).toHaveBeenCalled();
78
+ expect(lwcServer.wss.close).toHaveBeenCalled();
79
+ expect(logger.log).toHaveBeenCalledWith(LogLevel.info, '[LWC Dev Server] Succesfully stopped dev server');
80
+ });
81
+ it('should send update messages to all connected clients', () => {
82
+ const mockClient1 = new Client('client1', 'ws://localhost', {}, lwcServer.context);
83
+ const mockClient2 = new Client('client2', 'ws://localhost', {}, lwcServer.context);
84
+ lwcServer.clients.add(mockClient1);
85
+ lwcServer.clients.add(mockClient2);
86
+ const modulePath = '/some/module/path';
87
+ lwcServer.moduleUpdateHandler(modulePath);
88
+ expect(mockClient1.send).toHaveBeenCalledWith({
89
+ type: 'update',
90
+ data: [{ modulePath }],
91
+ });
92
+ expect(mockClient2.send).toHaveBeenCalledWith({
93
+ type: 'update',
94
+ data: [{ modulePath }],
95
+ });
96
+ });
97
+ });
98
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../src/server/index.spec.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  import { LogLevel } from '../../types/index.js';
4
- import { getModuleHash, readModule } from '../util/fileUtil.js';
4
+ import { getModuleHash } from '../util/fileUtil.js';
5
5
  import { getWorkspaceScanner } from './workspaceScanner/index.js';
6
6
  export class ModuleGraph {
7
7
  constructor(config, logger, watcher, moduleChangeCallbacks) {
@@ -30,7 +30,7 @@ export class ModuleGraph {
30
30
  this.logger.log(LogLevel.debug, `[Module Graph] Found ${this.moduleMap.size} LWC components in the current workspace.`);
31
31
  }
32
32
  else {
33
- this.logger.log(LogLevel.debug, `[Module Graph] Found no LWC components in the current workspace, check your settings in lwc.config.json.`);
33
+ this.logger.log(LogLevel.debug, `[Module Graph] Found no LWC components in the current workspace.`);
34
34
  }
35
35
  this.moduleMap.forEach(({ moduleParts }) => {
36
36
  Object.assign(this.modulePathToModuleInfo, moduleParts);
@@ -84,22 +84,21 @@ export class ModuleGraph {
84
84
  }
85
85
  fileChangeHandler(filePath) {
86
86
  const changedFile = path.resolve(filePath);
87
- if (fs.lstatSync(changedFile).isFile()) {
88
- const modulePath = this.getModulePathByFile(changedFile);
89
- if (modulePath) {
90
- const moduleInfo = this.modulePathToModuleInfo[modulePath];
91
- const newModuleHash = getModuleHash(changedFile);
92
- if (moduleInfo.moduleSourceHash === newModuleHash) {
93
- return;
94
- }
95
- this.logger.log(LogLevel.info, `[LWC Dev Server] File '${modulePath}' modified - updating.`);
96
- moduleInfo.moduleSourceHash = newModuleHash;
97
- // Find the nearest boundary for the file that changed
98
- const moduleBoundary = this.getModuleBoundary(modulePath);
99
- // Notify the clients that a module has been updated
100
- this.moduleChangeCallbacks.moduleUpdateHandler(moduleBoundary);
101
- }
102
- }
87
+ if (!fs.lstatSync(changedFile).isFile())
88
+ return;
89
+ const modulePath = this.getModulePathByFile(changedFile);
90
+ if (!modulePath)
91
+ return;
92
+ const moduleInfo = this.modulePathToModuleInfo[modulePath];
93
+ const newModuleHash = getModuleHash(changedFile);
94
+ if (moduleInfo.moduleSourceHash === newModuleHash)
95
+ return;
96
+ this.logger.log(LogLevel.info, `[LWC Dev Server] File '${modulePath}' modified - updating.`);
97
+ moduleInfo.moduleSourceHash = newModuleHash;
98
+ // Find the nearest boundary for the file that changed
99
+ const moduleBoundary = this.getModuleBoundary(modulePath);
100
+ // Notify the clients that a module has been updated
101
+ this.moduleChangeCallbacks.moduleUpdateHandler(moduleBoundary);
103
102
  }
104
103
  /**
105
104
  * Identify which modulePath that represents the boundary of the changed module.
@@ -152,7 +151,7 @@ export class ModuleGraph {
152
151
  const moduleFilePath = this.getFileByModulePath(modulePath);
153
152
  const fileEntry = path.relative(moduleDir, modulePath);
154
153
  // It can be assumed that the module file exists and the source can be read
155
- const src = readModule(moduleFilePath);
154
+ const src = fs.readFileSync(moduleFilePath, 'utf-8');
156
155
  return { [fileEntry]: src };
157
156
  }
158
157
  else if (['.js', '.ts'].includes(ext)) {
@@ -160,7 +159,7 @@ export class ModuleGraph {
160
159
  const moduleMapEntry = this.moduleMap.get(ownerModuleId);
161
160
  return Object.keys(moduleMapEntry.moduleParts).reduce((acc, key) => {
162
161
  const part = path.relative(moduleDir, key);
163
- const partSrc = readModule(moduleMapEntry.moduleParts[key].moduleFilePath);
162
+ const partSrc = fs.readFileSync(moduleMapEntry.moduleParts[key].moduleFilePath, 'utf-8');
164
163
  acc[part] = partSrc;
165
164
  return acc;
166
165
  }, {});
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/moduleGraph/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/moduleGraph/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,70 @@
1
+ import path from 'path';
2
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
3
+ import { watch } from 'chokidar';
4
+ import { LogLevel, Workspace } from '../../types/index.js';
5
+ import { getModuleHash } from '../util/fileUtil.js';
6
+ import { ModuleGraph } from './index.js';
7
+ const modulesPath = path.resolve(__dirname, 'workspaceScanner/__tests__/data/mrt/some-path');
8
+ vi.spyOn(path, 'resolve');
9
+ vi.mock('path', async (importOriginal) => {
10
+ return {
11
+ ...(await importOriginal()),
12
+ resolve: vi.fn(),
13
+ };
14
+ });
15
+ vi.mock('chokidar', () => ({
16
+ watch: vi.fn().mockReturnValue({
17
+ on: vi.fn(),
18
+ close: vi.fn(),
19
+ }),
20
+ }));
21
+ vi.mock('../util/fileUtil.js', async (importOriginal) => {
22
+ return {
23
+ ...(await importOriginal()),
24
+ getModuleHash: vi.fn(),
25
+ };
26
+ });
27
+ describe('ModuleGraph', () => {
28
+ let moduleGraph;
29
+ const mockLogger = {
30
+ log: vi.fn(),
31
+ };
32
+ //@ts-expect-error mocked
33
+ const mockWatcher = watch();
34
+ const mockCallbacks = {
35
+ moduleUpdateHandler: vi.fn(),
36
+ };
37
+ beforeEach(() => {
38
+ moduleGraph = new ModuleGraph({
39
+ logLevel: LogLevel.debug,
40
+ paths: [modulesPath],
41
+ port: 50182,
42
+ rootDir: __dirname,
43
+ workspace: Workspace.Mrt,
44
+ }, mockLogger, mockWatcher, mockCallbacks);
45
+ });
46
+ afterEach(() => {
47
+ vi.clearAllMocks();
48
+ });
49
+ it('should return the correct module path by file path', () => {
50
+ const result = moduleGraph.getModulePathByFile(path.resolve(modulesPath, 'ns/comp/comp.html'));
51
+ expect(result).toBe('ns/comp/comp.html');
52
+ });
53
+ it('should handle file changes correctly', () => {
54
+ const mockFilePath = path.resolve(modulesPath, 'ns/comp/comp.js');
55
+ vi.mocked(getModuleHash).mockReturnValueOnce('changed hash');
56
+ vi.mocked(mockWatcher).on.mock.calls[0][1](mockFilePath);
57
+ expect(mockCallbacks.moduleUpdateHandler).toHaveBeenCalled();
58
+ });
59
+ it('should throw an error for unrecognized file types in getModuleBoundary', () => {
60
+ expect(() => {
61
+ moduleGraph.getModuleBoundary('/path/to/file.txt');
62
+ }).toThrowError('[LWC Dev Server] Unrecognized file type or file not part of LWC module: /path/to/file.txt');
63
+ });
64
+ it('should return the correct module boundary for .js files', () => {
65
+ const modulePath = 'ns/comp/x.js';
66
+ const result = moduleGraph.getModuleBoundary(modulePath);
67
+ expect(result).toBe('ns/comp/comp.js');
68
+ });
69
+ });
70
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../src/server/moduleGraph/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,+CAA+C,CAAC,CAAC;AAE7F,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1B,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACrC,OAAO;QACH,GAAG,CAAC,MAAM,cAAc,EAAyB,CAAC;QAClD,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;KACnB,CAAC;AACN,CAAC,CAAC,CAAC;AACH,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACvB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;QAC3B,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;QACX,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;KACjB,CAAC;CACL,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACpD,OAAO;QACH,GAAG,CAAC,MAAM,cAAc,EAAwC,CAAC;QACjE,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;KACzB,CAAC;AACN,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,IAAI,WAAwB,CAAC;IAC7B,MAAM,UAAU,GAAG;QACf,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;KACf,CAAC;IACF,yBAAyB;IACzB,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG;QAClB,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE;KAC/B,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACZ,WAAW,GAAG,IAAI,WAAW,CACzB;YACI,QAAQ,EAAE,QAAQ,CAAC,KAAK;YACxB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,SAAS,CAAC,GAAG;SAC3B,EACD,UAAU,EACV,WAAW,EACX,aAAa,CAChB,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,EAAE,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,mBAAmB,CAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,CACjD,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAClE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC7D,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAC9E,MAAM,CAAC,GAAG,EAAE;YACR,WAAW,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC,YAAY,CACX,2FAA2F,CAC9F,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAC/D,MAAM,UAAU,GAAG,cAAc,CAAC;QAElC,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import path from 'node:path';
2
+ import { Workspace } from '../../../../types/serverConfig';
3
+ import SalesforceCliWorkspaceScanner from '../salesforceCli';
4
+ class MockLogger {
5
+ log(_level, _message) {
6
+ // do nothing;
7
+ }
8
+ }
9
+ describe('SF Cli Workspace Scanner', () => {
10
+ let workspaceScanner;
11
+ beforeAll(() => {
12
+ workspaceScanner = new SalesforceCliWorkspaceScanner(Workspace.SfCli, [path.resolve(__dirname, 'data/sfdx/force-app/main/default')], new MockLogger());
13
+ });
14
+ it('should return correct namespace', () => {
15
+ const dirs = workspaceScanner.findModuleDirs();
16
+ expect(dirs.length).toBe(1);
17
+ dirs.forEach((dir) => {
18
+ expect(workspaceScanner.getNamespace(dir)).toEqual('c');
19
+ });
20
+ });
21
+ });
22
+ //# sourceMappingURL=sfcli.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sfcli.spec.js","sourceRoot":"","sources":["../../../../../src/server/moduleGraph/workspaceScanner/__tests__/sfcli.spec.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAY,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,6BAA6B,MAAM,kBAAkB,CAAC;AAG7D,MAAM,UAAU;IACZ,GAAG,CAAC,MAAgB,EAAE,QAAgB;QAClC,cAAc;IAClB,CAAC;CACJ;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACtC,IAAI,gBAA+C,CAAC;IACpD,SAAS,CAAC,GAAG,EAAE;QACX,gBAAgB,GAAG,IAAI,6BAA6B,CAChD,SAAS,CAAC,KAAK,EACf,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC,EAC7D,IAAI,UAAU,EAAE,CACnB,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC;QAE/C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -8,4 +8,3 @@ export declare function getChildDirPaths(entryDir: string): string[];
8
8
  * TODO: move this to a util that @lwc/dev-server-plugin-lex can reuse
9
9
  */
10
10
  export declare function getModuleHash(moduleFilePath: string): string;
11
- export declare function readModule(moduleFilePath: string): undefined | string;
@@ -1,4 +1,4 @@
1
- import { readdirSync, existsSync, readFileSync } from 'node:fs';
1
+ import { readdirSync, readFileSync } from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { createHash } from 'node:crypto';
4
4
  /**
@@ -24,15 +24,7 @@ export function getChildDirPaths(entryDir) {
24
24
  * TODO: move this to a util that @lwc/dev-server-plugin-lex can reuse
25
25
  */
26
26
  export function getModuleHash(moduleFilePath) {
27
- const content = readModule(moduleFilePath);
28
- if (!content)
29
- return '';
27
+ const content = readFileSync(moduleFilePath, 'utf-8');
30
28
  return createHash('md5').update(content, 'utf8').digest('hex');
31
29
  }
32
- export function readModule(moduleFilePath) {
33
- if (!existsSync(moduleFilePath)) {
34
- return;
35
- }
36
- return readFileSync(moduleFilePath, 'utf8');
37
- }
38
30
  //# sourceMappingURL=fileUtil.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fileUtil.js","sourceRoot":"","sources":["../../../src/server/util/fileUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAChD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;aACxC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;QAC3C,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,cAAsB;IAChD,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,cAAsB;IAC7C,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9B,OAAO;IACX,CAAC;IACD,OAAO,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"fileUtil.js","sourceRoot":"","sources":["../../../src/server/util/fileUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAChD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;aACxC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;QAC3C,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,cAAsB;IAChD,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
+ import { watch } from 'chokidar';
3
+ import { startWatch, stopWatch } from './index.js'; // Adjust the path accordingly
4
+ vi.mock('chokidar', () => ({
5
+ watch: vi.fn().mockReturnValue({
6
+ close: vi.fn(),
7
+ }),
8
+ }));
9
+ describe('File Watcher Module', () => {
10
+ let mockWatcher;
11
+ beforeEach(() => {
12
+ //@ts-expect-error mocked
13
+ mockWatcher = watch();
14
+ });
15
+ afterEach(() => {
16
+ vi.clearAllMocks();
17
+ });
18
+ it('should start watching directories with correct glob patterns', () => {
19
+ const dirPaths = ['/path/to/dir1', '/path/to/dir2/'];
20
+ const result = startWatch(dirPaths);
21
+ expect(watch).toHaveBeenCalledWith(['/path/to/dir1/**/*.{html,css,js,ts}', '/path/to/dir2/**/*.{html,css,js,ts}'], {});
22
+ expect(result).toBe(mockWatcher);
23
+ });
24
+ it('should stop watching when stopWatch is called', () => {
25
+ startWatch(['/path/to/dir']);
26
+ stopWatch();
27
+ expect(mockWatcher.close).toHaveBeenCalled();
28
+ });
29
+ it('should not throw if stopWatch is called before startWatch', () => {
30
+ expect(() => stopWatch()).not.toThrow();
31
+ });
32
+ });
33
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../src/server/watcher/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC,CAAC,8BAA8B;AAElF,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACvB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;QAC3B,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;KACjB,CAAC;CACL,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,IAAI,WAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACZ,yBAAyB;QACzB,WAAW,GAAG,KAAK,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,EAAE,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACpE,MAAM,QAAQ,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEpC,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAC9B,CAAC,qCAAqC,EAAE,qCAAqC,CAAC,EAC9E,EAAE,CACL,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;QAC7B,SAAS,EAAE,CAAC;QAEZ,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -3,9 +3,8 @@ import { LogLevel, ServerConfig } from './serverConfig.js';
3
3
  export interface Logger {
4
4
  log(level: LogLevel, message: string): void;
5
5
  }
6
- export declare class DevServerContext {
6
+ export interface DevServerContext {
7
7
  config: ServerConfig;
8
8
  logger: Logger;
9
9
  moduleGraph: ModuleGraph;
10
- constructor(config: ServerConfig, logger: Logger, moduleGraph: ModuleGraph);
11
10
  }
@@ -1,8 +1,2 @@
1
- export class DevServerContext {
2
- constructor(config, logger, moduleGraph) {
3
- this.config = config;
4
- this.logger = logger;
5
- this.moduleGraph = moduleGraph;
6
- }
7
- }
1
+ export {};
8
2
  //# sourceMappingURL=devServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devServer.js","sourceRoot":"","sources":["../../src/types/devServer.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,gBAAgB;IAIzB,YAAY,MAAoB,EAAE,MAAc,EAAE,WAAwB;QACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;CACJ"}
1
+ {"version":3,"file":"devServer.js","sourceRoot":"","sources":["../../src/types/devServer.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,49 @@
1
+ import { templateString } from './utils';
2
+ describe('templateString', () => {
3
+ it('should replace placeholders with corresponding arguments', () => {
4
+ const template = 'Hello, {0}!';
5
+ const args = ['world'];
6
+ expect(templateString(template, args)).toBe('Hello, world!');
7
+ });
8
+ it('should replace multiple placeholders with corresponding arguments', () => {
9
+ const template = 'Hello, {0} {1}!';
10
+ const args = ['John', 'Doe'];
11
+ expect(templateString(template, args)).toBe('Hello, John Doe!');
12
+ });
13
+ it('should handle placeholders in any order', () => {
14
+ const template = '{1}, {0}';
15
+ const args = ['first', 'second'];
16
+ expect(templateString(template, args)).toBe('second, first');
17
+ });
18
+ it('should handle placeholders appearing more than once', () => {
19
+ const template = '{0} and {0} again';
20
+ const args = ['repeat'];
21
+ expect(templateString(template, args)).toBe('repeat and repeat again');
22
+ });
23
+ it('should return the original string if no placeholders are present', () => {
24
+ const template = 'Hello, world!';
25
+ const args = [];
26
+ expect(templateString(template, args)).toBe('Hello, world!');
27
+ });
28
+ it('should handle missing arguments by replacing with undefined', () => {
29
+ const template = 'Hello, {0} {1}!';
30
+ const args = ['John'];
31
+ expect(templateString(template, args)).toBe('Hello, John undefined!');
32
+ });
33
+ it('should handle non-numeric placeholders as literals', () => {
34
+ const template = 'This is not a placeholder: {foo}';
35
+ const args = [];
36
+ expect(templateString(template, args)).toBe('This is not a placeholder: {foo}');
37
+ });
38
+ it('should ignore extra arguments that do not have placeholders', () => {
39
+ const template = 'Hello, {0}!';
40
+ const args = ['world', 'extra'];
41
+ expect(templateString(template, args)).toBe('Hello, world!');
42
+ });
43
+ it('should handle a large number of placeholders', () => {
44
+ const template = '{0} {1} {2} {3} {4}';
45
+ const args = ['a', 'b', 'c', 'd', 'e'];
46
+ expect(templateString(template, args)).toBe('a b c d e');
47
+ });
48
+ });
49
+ //# sourceMappingURL=utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/utils/utils.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,19 +1,15 @@
1
1
  {
2
2
  "name": "@lwc/lwc-dev-server",
3
3
  "description": "A development server to get quick feedback on your LWC component development.",
4
- "version": "10.2.1",
4
+ "version": "10.3.0",
5
5
  "keywords": [
6
6
  "lwc dev server"
7
7
  ],
8
- "bin": {
9
- "lwc-dev-server": "./bin/dev-server.js"
10
- },
11
8
  "type": "module",
12
9
  "main": "dist/index.js",
13
10
  "typings": "dist/index.d.ts",
14
11
  "files": [
15
12
  "dist",
16
- "bin",
17
13
  "LICENSE.txt"
18
14
  ],
19
15
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -23,7 +19,7 @@
23
19
  "start": "node ./bin/dev-server.js start"
24
20
  },
25
21
  "dependencies": {
26
- "@lwc/sfdc-lwc-compiler": "10.2.1",
22
+ "@lwc/sfdc-lwc-compiler": "10.3.0",
27
23
  "chalk": "~5.3.0",
28
24
  "chokidar": "~3.6.0",
29
25
  "commander": "~10.0.0",
@@ -31,7 +27,7 @@
31
27
  "ws": "^8.18.0"
32
28
  },
33
29
  "devDependencies": {
34
- "@lwc/lwc-dev-server-types": "10.2.1",
30
+ "@lwc/lwc-dev-server-types": "10.3.0",
35
31
  "@salesforce/core": "~8.3.0",
36
32
  "@types/ws": "^8.5.10"
37
33
  },
package/bin/dev-server.js DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import '../dist/cli/cli.js';
package/dist/cli/cli.js DELETED
@@ -1,4 +0,0 @@
1
- import { createCLI } from './commands/index.js';
2
- const cli = createCLI();
3
- cli.parse();
4
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AACxB,GAAG,CAAC,KAAK,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createDevServer(): Command;