export class ServerConfig { public configData; constructor(configData: IConfig) { this.configData=configData; } public static load(obj: any) :IConfig{ return { manufacturerName:obj.manufacturerName||"", productName:obj.productName||"", softwareVersion:obj.softwareVersion||"", applicationUri:obj.applicationUri||"", productUri:obj.productUri||"", applicationName:obj.applicationName||"", allowAnonymous:obj.allowAnonymous||false, dynamics:obj.dynamics||[], nodesets:obj.nodesets||[], } as IConfig; } } export interface IMappingEntry { path: string; read: string; write: string; } export interface IComponentEntry { "ident": string, "namespaceUri": string, "nodeClass": string, "typeNodeId": string, "mandatory": IComponentEntry[] "optionals": IComponentEntry[] } export interface IDynamicConfig { "ident": string "namespaceUri": string "parentNodeId": string "checkInterval": number "nodeClass": string "typeNodeId": string "name": string "startIndex": number, "mandatory": IComponentEntry[] "optionals": IComponentEntry[] "nodeVersionId": string } export interface IConfig{ "manufacturerName": string "productName": string "softwareVersion": string "applicationUri": string "productUri": string "applicationName": string "allowAnonymous": boolean, "nodesets": string[], "mapping": IMappingEntry[] "dynamics": IDynamicConfig[] }