# InMemoryStore

**Kind**: interface | **Module**: [Apps](https://docs.interop.io/desktop/reference/javascript/apps/index.md) | **Access**: `io.apps.registry.inMemory`

**Source**: https://docs.interop.io/desktop/reference/javascript/apps/inmemorystore/index.html

Object that can be used for handling app definitions dynamically. The described methods operate only on in-memory app definitions.

## Methods

### clear

Clears all app definitions from the in-memory store.

```ts
(options?: ClearAppsOptions) => Promise<void>
```

**Parameters**

- **`options`** (`ClearAppsOptions`, optional)
  Options for clearing app definitions.

**Returns**: `Promise<void>`

### has

Checks if an app definition is available in the in-memory store.

```ts
(name: string) => Promise<boolean>
```

**Parameters**

- **`name`** (`string`, required)
  The name of the app for whose definition to check.

**Returns**: `Promise<boolean>`

### import

Imports the provided collection of app definitions.

```ts
(definitions: Definition[], mode?: "replace" | "merge") => Promise<ImportResult>
```

**Parameters**

- **`definitions`** (`Definition[]`, required)
  Array of app definition objects to be imported in the in-memory store.
- **`mode`** (`"replace" | "merge"`, optional)
  Mode for importing app definitions. Use `"replace"` (default) to replace all existing in-memory app definitions.
  Use `"merge"` to update the existing ones and add new ones.

**Returns**: `Promise<ImportResult>`

### remove

Removes one or more app definitions from the in-memory store.

```ts
(options: RemoveAppOptions) => Promise<void>
```

**Parameters**

- **`options`** (`RemoveAppOptions`, required)
  Options for removing one or more app definitions.

**Returns**: `Promise<void>`

**Example**

```ts
```javascript
// Removing a single app.
await io.apps.registry.inMemory.remove({ name: "my-app" });

// Removing multiple apps at a time.
await io.apps.registry.inMemory.remove({ name: ["my-app", "my-other-app"] })

// Removing multiple apps and stopping all their instances.
await io.apps.registry.inMemory.remove({ name: ["my-app", "my-other-app"], stopInstances: true });
```
```

## Related types

- [ClearAppsOptions](https://docs.interop.io/desktop/reference/javascript/apps/clearappsoptions/index.md)
- [Definition](https://docs.interop.io/desktop/reference/javascript/apps/definition/index.md)
- [ImportResult](https://docs.interop.io/desktop/reference/javascript/apps/importresult/index.md)
- [RemoveAppOptions](https://docs.interop.io/desktop/reference/javascript/apps/removeappoptions/index.md)
