UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

1 lines 4.01 kB
{"version":3,"sources":["../../../packages/core/shared/gateway-inventory/gateway-inventory-detail-cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE9H;;GAEG;AACH,qBAAa,2BACT,SAAQ,WAAW,CAAC,sBAAsB,EAAE,0BAA0B,EAAE,4BAA4B,CAAC;IAWzF,OAAO,CAAC,UAAU;IAV9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4C;IACnE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAK;IACjC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAa;IAEvC;;;;;OAKG;gBACiB,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAWxE;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAiBjB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAItB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAKvB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAIxB","file":"gateway-inventory-detail-cache.d.ts","sourcesContent":["import { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AppContext } from '../../data/app-context';\r\nimport { SharedCache, SharedCacheOptions } from '../shared-cache';\r\nimport { GatewayInventoryDetail, GatewayInventoryDetailData, GatewayInventoryDetailParams } from './gateway-inventory-detail';\r\n\r\n/**\r\n * Gateway Inventory Detail cache class.\r\n */\r\nexport class GatewayInventoryDetailCache\r\n extends SharedCache<GatewayInventoryDetail, GatewayInventoryDetailData, GatewayInventoryDetailParams> {\r\n private static uniqueId = '@msft-sme/shell:gatewayInventoryDetail';\r\n private static uniqueVersion = 1;\r\n private static gatewayName = 'gateway';\r\n\r\n /**\r\n * Initializes a new instance of the GatewayInventoryCache class.\r\n *\r\n * @param appContext the app context.\r\n * @param options the option of shared cache.\r\n */\r\n constructor(private appContext: AppContext, options?: SharedCacheOptions) {\r\n super(\r\n GatewayInventoryDetailCache.uniqueId,\r\n GatewayInventoryDetailCache.uniqueVersion,\r\n () => this.dataInstanceId(),\r\n (instance) => this.dataSerialize(instance),\r\n (serialized) => this.dataDeserialize(serialized),\r\n () => this.dataQuery(),\r\n options);\r\n }\r\n\r\n /**\r\n * Defines how to collect the gateway inventory detail data.\r\n *\r\n * @return the Observable of GatewayInventoryDetail data.\r\n */\r\n private dataQuery(): Observable<GatewayInventoryDetail> {\r\n return this.appContext.gateway.get('gateway/latestversion')\r\n .pipe(\r\n map((versionDetail: any) => {\r\n const inventoryDetail = new GatewayInventoryDetail();\r\n\r\n if (versionDetail) {\r\n inventoryDetail.latestVersion =\r\n versionDetail.destinationUrl.substring(versionDetail.destinationUrl.lastIndexOf('/') + 1);\r\n } else {\r\n inventoryDetail.latestVersion = null;\r\n }\r\n\r\n return inventoryDetail;\r\n }));\r\n }\r\n\r\n /**\r\n * Defines how to identify the cache entry by params.\r\n *\r\n * @return the id string.\r\n */\r\n private dataInstanceId(): string {\r\n return GatewayInventoryDetailCache.gatewayName;\r\n }\r\n\r\n /**\r\n * Defines how to deserialize the class object from serialized data.\r\n *\r\n * @param serialized the serialized string;\r\n */\r\n private dataDeserialize(serialized: string): GatewayInventoryDetail {\r\n const inventory: GatewayInventoryDetailData = JSON.parse(serialized);\r\n return new GatewayInventoryDetail(inventory);\r\n }\r\n\r\n /**\r\n * Defines how to serialize the class object to seralized data.\r\n *\r\n * @param instance the class instance.\r\n */\r\n private dataSerialize(instance: GatewayInventoryDetail): string {\r\n // automatically strip out class related data.\r\n return JSON.stringify(instance);\r\n }\r\n}\r\n"]}