UNPKG

onnxruntime-web

Version:

A Javascript library for running ONNX models on browsers

31 lines (26 loc) 865 B
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. class AttributeWithCacheKeyImpl { constructor(attribute: Record<string, unknown>) { Object.assign(this, attribute); } private key: string; public get cacheKey(): string { if (!this.key) { this.key = Object.getOwnPropertyNames(this) .sort() .map((name) => `${(this as Record<string, unknown>)[name]}`) .join(';'); } return this.key; } } export interface AttributeWithCacheKey { readonly cacheKey: string; } /** * create a new object from the given attribute, and add a cacheKey property to it */ export const createAttributeWithCacheKey = <T extends Record<string, unknown>>( attribute: T, ): T & AttributeWithCacheKey => new AttributeWithCacheKeyImpl(attribute) as unknown as T & AttributeWithCacheKey;