48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import { MatterServer } from '@project-chip/matter-node.js';
|
|
import {
|
|
StorageBackendDisk,
|
|
StorageManager,
|
|
} from '@project-chip/matter-node.js/storage';
|
|
import {
|
|
getParameter,
|
|
hasParameter,
|
|
} from '@project-chip/matter-node.js/util';
|
|
export { Bridge } from './Bridge';
|
|
import { Bridge } from './Bridge';
|
|
|
|
let MATTER_SERVER: MatterServer;
|
|
let STORAGE: StorageBackendDisk;
|
|
let STORAGE_MANAGER: StorageManager;
|
|
|
|
export function serverSetup(): {
|
|
matterServer: MatterServer;
|
|
storageManager: StorageManager;
|
|
} {
|
|
if (!(MATTER_SERVER && STORAGE && STORAGE_MANAGER)) {
|
|
const storageLocation =
|
|
getParameter('store') || '/config/deviceData';
|
|
|
|
STORAGE = new StorageBackendDisk(
|
|
storageLocation,
|
|
hasParameter('clearstorage'),
|
|
);
|
|
STORAGE_MANAGER = new StorageManager(STORAGE);
|
|
MATTER_SERVER = new MatterServer(STORAGE_MANAGER, {
|
|
mdnsInterface: getParameter('netinterface'),
|
|
});
|
|
}
|
|
return {
|
|
matterServer: MATTER_SERVER,
|
|
storageManager: STORAGE_MANAGER,
|
|
};
|
|
}
|
|
|
|
export function getBridge(): Bridge {
|
|
const serverData = serverSetup();
|
|
const bridge = Bridge.getInstance(
|
|
serverData.matterServer,
|
|
serverData.storageManager,
|
|
);
|
|
return bridge;
|
|
}
|