> ## Documentation Index
> Fetch the complete documentation index at: https://omss.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# OMSSServer

> Core server class for OMSS.

## Constructor

```typescript
OMSSServer(config: OMSSConfig): OMSSServer
```

Creates a new OMSSServer instance.

### Parameters

<ResponseField name={"config"} type={"OMSSConfig"} required>
  Immutable server configuration
</ResponseField>

### Returns

`OMSSServer`

## Properties

<ResponseField name={"config"} type={"Readonly<OMSSConfig>"} required>
  Get the OMSS Config from the constructor
</ResponseField>

<ResponseField name={"extractors"} type={"ExtractorService"} required />

<ResponseField name={"hooks"} type={"HookService<OMSSHooks>"} required />

<ResponseField name={"plugins"} type={"PluginService"} required />

<ResponseField name={"providers"} type={"ProviderService"} required />

<ResponseField name={"sources"} type={"SourceService"} required />

## Methods

### decorate()

```typescript
decorate(name: string, value: T, deps?: string[]): Result<string, OMSSServerError>
```

Decorate the OMSSServer instance with a new property.

#### Parameters

<ResponseField name={"name"} type={"string"} required>
  The name of the property to be decorated.
</ResponseField>

<ResponseField name={"value"} type={"T"} required>
  The value to be assigned to the property.
</ResponseField>

<ResponseField name={"deps"} type={"string[]"}>
  An array of dependency names.
</ResponseField>

#### Returns

`Result<string, OMSSServerError>`

The name of the decorated property in the [Result](/sdk-artifacts/types/Result) object.

### getDecorator()

```typescript
getDecorator(name: string): Result<T, OMSSServerError>
```

Get a decorated property by its name.

#### Parameters

<ResponseField name={"name"} type={"string"} required>
  The name of the property to retrieve.
</ResponseField>

#### Returns

`Result<T, OMSSServerError>`

The decorated property value in the [Result](/sdk-artifacts/types/Result) object.

### hasDecorator()

```typescript
hasDecorator(name: string): boolean
```

Check if a decorator with the given name exists.

#### Parameters

<ResponseField name={"name"} type={"string"} required>
  The name of the decorator to check.
</ResponseField>

#### Returns

`boolean`

True if the decorator exists, false otherwise.


## Related topics

- [Architecture](/core/explanation/architecture.md)
- [OMSSServerError](/sdk-artifacts/classes/OMSSServerError.md)
- [Omss server](/core/reference/omss-server.md)
