chore: refactor
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user