> For the complete documentation index, see [llms.txt](https://docs.specifyapp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.specifyapp.com/reference/sdtf-engine/sdtf-queryresult.md).

# SDTF QueryResult

The QueryResult class provides an abstraction to work with the tree node returned by a SDTF query.

## Properties

### isContinuous

Indicates whether the selected nodes are part of the same resulting JSON tree.

```typescript
get isContinuous(): boolean;
```

## Methods

### merge

Produces a new tree state with the resulting nodes.

```typescript
merge(dedupeFn?: MergeDedupeFn): {
    treeState: TreeState;
};
```

### hasNodeType

Check if the result contains some nodes of the specified type.

```typescript
hasNodeType(nodeType: 'collection' | 'group' | 'token'): boolean;
```

### hasOnlyNodeType

Check if the result contains only nodes of the specified type.

```typescript
hasOnlyNodeType(nodeType: 'collection' | 'group' | 'token'): boolean;
```

### render

Produces an analysis of the resulting nodes.

```typescript
type QueryResultDetail = {
  isRoot: boolean;
  parentPath: Array<string>;
  isComplete: boolean;
  nodes: Array<SDTFNodeState>;
  sdtf: SpecifyDesignTokenFormat;
};
render(): Array<QueryResultDetail>;
```

{% hint style="info" %}
When the result is continuous, the render function returns an array of length 1
{% endhint %}

### getPaths

Get the token tree path of the resulting nodes.

```typescript
getPaths(type: 'string'): Array<string>;
getPaths(type: 'array'): Array<Array<string>>;
getPaths(type?: undefined): Array<string>;
```

### toJSON

Renders the resulting nodes as a JSON object using the QueryResultDetail structure.

```typescript
toJSON(): {
    isContinuous: boolean;
    graphs: {
        isRoot: boolean;
        parentPath: string[];
        isComplete: boolean;
        sdtf: SpecifyDesignTokenFormat;
    }[];
};
```
