chore: refactor

This commit is contained in:
Thomas Nordquist
2024-05-22 14:44:06 +02:00
parent 1ecb53b397
commit b3a37e4794
20 changed files with 1037 additions and 524 deletions

View File

@@ -20,13 +20,6 @@ export type TopicDataType =
| 'float'
| 'double'
function findDecoder<T extends Destroyable>(node: TreeNode<T>): IDecoder | undefined {
return decoders.find(
decoder =>
decoder.canDecodeTopic?.(node.path()) || (node.message?.payload && decoder.canDecodeData?.(node.message?.payload))
)
}
export class TreeNode<ViewModel extends Destroyable> {
public sourceEdge?: Edge<ViewModel>
public message?: Message
@@ -44,30 +37,6 @@ export class TreeNode<ViewModel extends Destroyable> {
public isTree = false
public type: TopicDataType = 'json'
private _decoder?: IDecoder
public decoderFormat?: string
get decoder(): IDecoder | undefined {
if (!this._decoder) {
this._decoder = findDecoder(this)
}
return this._decoder
}
set decoder(override: IDecoder | undefined) {
this._decoder = override
// Hack to force frontend to update
this.message && this.onMessage.dispatch(this.message)
}
decodeMessage(message: Message): Base64Message | null {
const decoder = this.decoder
return this.decoder && message.payload ? this.decoder.decode(message.payload, this.decoderFormat) : message.payload
}
private cachedPath?: string
private cachedChildTopics?: Array<TreeNode<ViewModel>>
private cachedLeafMessageCount?: number

View File

@@ -12,11 +12,6 @@ export interface IDecoder<T = string> {
canDecodeTopic?(topic: string): boolean
canDecodeData?(data: Base64Message): boolean
decode(input: Base64Message, format: T | string | undefined): Base64Message
/**
* If this is just an intermediate decoder, next-decoder can be defined
*/
nextDecoder?: IDecoder
}
export const SparkplugDecoder: IDecoder = {