---
title: "BaseSurfaceCommand | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/BaseSurfaceCommand/"
---

# BaseSurfaceCommand

> - [`ModelUpdateCommand`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ModelUpdateCommand.md#abstract-modelupdatecommand)\<`TArgs`, `TResult`\>

## Classes

### `abstract` BaseSurfaceCommand

#### Extends

#### Extended by

- [`AddItemsCommand`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/AddItemsCommand.md#additemscommand)
- [`SetBleedCommand`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/SetBleedCommand.md#setbleedcommand)
- [`SetSlugCommand`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/SetSlugCommand.md#setslugcommand)

#### Type Parameters

| Type Parameter |
| ------ |
| `TArgs` |
| `TResult` |

#### Constructors

##### Constructor

```ts
new BaseSurfaceCommand<TArgs, TResult>(
   surface, 
   historyArgs, 
args?): BaseSurfaceCommand<TArgs, TResult>;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `surface` | `Surface` |
| `historyArgs` | [`IHistoryArgs`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ModelUpdateCommand.md#ihistoryargs) |
| `args?` | `TArgs` |

###### Returns

[`BaseSurfaceCommand`](#abstract-basesurfacecommand)\<`TArgs`, `TResult`\>

###### Overrides

[`ModelUpdateCommand`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ModelUpdateCommand.md#abstract-modelupdatecommand).[`constructor`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ModelUpdateCommand.md#constructor)

#### Methods

##### execute()

```ts
execute(): Promise<TResult>;
```

###### Returns

[`Promise`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/finally.md#promise)\<`TResult`\>

###### Inherited from

[`ModelUpdateCommand`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ModelUpdateCommand.md#abstract-modelupdatecommand).[`execute`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ModelUpdateCommand.md#execute)

##### redo()

```ts
redo(): Promise<void>;
```

###### Returns

[`Promise`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/finally.md#promise)\<`void`\>

###### Inherited from

[`ModelUpdateCommand`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ModelUpdateCommand.md#abstract-modelupdatecommand).[`redo`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ModelUpdateCommand.md#redo)

##### undo()

```ts
undo(): Promise<void>;
```

###### Returns

[`Promise`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/finally.md#promise)\<`void`\>

###### Inherited from

[`ModelUpdateCommand`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ModelUpdateCommand.md#abstract-modelupdatecommand).[`undo`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ModelUpdateCommand.md#undo)
