---
title: "TileCache | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Class TileCache

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[data](#data) [max](#max) [onRemove](#onremove) [order](#order)

### Methods[](#methods)

[add](#add) [filter](#filter) [get](#get) [getAndRemove](#getandremove) [getByKey](#getbykey) [has](#has) [remove](#remove) [reset](#reset) [setMaxSize](#setmaxsize)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new TileCache(max: number, onRemove: (element: [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)) \=> void): TileCache[](#constructortilecache)
    
    #### Parameters
    
    -   max: number
        
        number of permitted values
        
    -   onRemove: (element: [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)) \=> void
        
        callback called with items when they expire
        
    
    #### Returns TileCache
    

## Properties[](#properties-1)

### data[](#data)

data: { \[key: string\]: { timeout: [Timeout](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Timeout/); value: [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) }\[\] }

### max[](#max)

max: number

### onRemove[](#onremove)

onRemove: (element: [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)) \=> void

### order[](#order)

order: string\[\]

## Methods[](#methods-1)

### add[](#add)

-   add(tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/), data: [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/), expiryTimeout: number | void): this[](#add-1)
    
    Add a key, value combination to the cache, trimming its size if this pushes it over max length.
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
        
        lookup key for the item
        
    -   data: [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)
        
        tile data
        
    -   expiryTimeout: number | void
    
    #### Returns this
    
    this cache
    

### filter[](#filter)

-   filter(filterFn: (tile: [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)) \=> boolean): void[](#filter-1)
    
    Remove entries that do not pass a filter function. Used for removing stale tiles from the cache.
    
    #### Parameters
    
    -   filterFn: (tile: [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)) \=> boolean
        
        Determines whether the tile is filtered. If the supplied function returns false, the tile will be filtered out.
        
    
    #### Returns void
    

### get[](#get)

-   get(tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)): [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)[](#get-1)
    
    Get the value attached to a specific key without removing data from the cache. If the key is not found, returns `null`
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
        
        the key to look up
        
    
    #### Returns [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)
    
    the tile data, or null if it isn't found
    

### getAndRemove[](#getandremove)

-   getAndRemove(tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)): [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)[](#getandremove-1)
    
    Get the value attached to a specific key and remove data from cache. If the key is not found, returns `null`
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
        
        the key to look up
        
    
    #### Returns [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)
    
    the tile data, or null if it isn't found
    

### getByKey[](#getbykey)

-   getByKey(key: string): [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)[](#getbykey-1)
    
    #### Parameters
    
    -   key: string
    
    #### Returns [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/)
    

### has[](#has)

-   has(tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)): boolean[](#has-1)
    
    Determine whether the value attached to `key` is present
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
        
        the key to be looked-up
        
    
    #### Returns boolean
    
    whether the cache has this value
    

### remove[](#remove)

-   remove(  
        tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/),  
        value?: { timeout: [Timeout](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Timeout/); value: [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) },  
    ): this[](#remove-1)
    
    Remove a key/value combination from the cache.
    
    #### Parameters
    
    -   tileID: [OverscaledTileID](https://docs.maptiler.com/sdk-js/api-reference/classes/OverscaledTileID/)
        
        the key for the pair to delete
        
    -   `Optional`value: { timeout: [Timeout](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.Timeout/); value: [Tile](https://docs.maptiler.com/sdk-js/api-reference/classes/Tile/) }
        
        If a value is provided, remove that exact version of the value.
        
    
    #### Returns this
    
    this cache
    

### reset[](#reset)

-   reset(): this[](#reset-1)
    
    Clear the cache
    
    #### Returns this
    
    this cache
    

### setMaxSize[](#setmaxsize)

-   setMaxSize(max: number): this[](#setmaxsize-1)
    
    Change the max size of the cache.
    
    #### Parameters
    
    -   max: number
        
        the max size of the cache
        
    
    #### Returns this
    
    this cache
