3.2.9 • Published 3 months ago

tessio v3.2.9

Weekly downloads
1
License
MIT
Repository
github
Last release
3 months ago

Tesseract

Run unit tests:

npm test

Query

interface Message {
  kind: 'message'
  id: number
  message: string
  status: string
  user: number
}

interface User {
  kind: 'user'
  id: number
  name: string
}

/**
 * Three generic parameters:
 *
 * 1. Type of a main table
 * 2. Union of all types that columns will resolve
 * 3. The discriminant property of the union
 */
let query: Query<Message, User, 'kind'> = {
  id: 'messages_query',
  table: 'message',
  columns:  [{
    name: 'id',
    primaryKey: true
  },{
    name: 'message',
  },{
    name: 'status',
  },{
    name: 'userName',
    resolve: {
      underlyingField: 'user',
      childrenTable: 'user',
      displayField: 'name'
    }
  }],
  filter: [{
      type: 'custom',
      value: 'status == 2',
  }],
  sort: [{ field: 'id', direction: 'desc' }]
}

let complexQuery: Query<Message, User, 'kind'> = {
    id: 'aggregated_subquery',
    table: 'users',
    subSessions: {
        msgPerUser: {
            table: 'message',
            columns:  [{
                name: 'user',
                primaryKey: true,
            }, {
                name: 'count',
                value: 1,
                aggregator: 'sum'
            }],
            groupBy: [{ dataIndex: 'user' }]
        }
    },
    columns: [{
        name: 'id',
        primaryKey: true,
    }, {
        name: 'name',
    }, {
        name: 'msgCount',
        resolve: {
            underlyingField: 'id',
            session: 'msgPerUser',
            displayField: 'count'
        }
    },{
        name: 'halfCount',
        value: x => x.msgCount/2
    }, {
        name: 'templatedName',
        value: '${name} - ${msgCount}'
    }],
    filter: [{
        type: 'custom',
        value: 'msgCount > 1',
    }],
    sort: [  { field: 'name', direction: 'asc' }]
}
3.2.9

3 months ago

3.2.8

1 year ago

3.2.7

1 year ago

3.2.6

2 years ago

3.2.5

2 years ago

3.2.2

2 years ago

3.2.1

2 years ago

3.2.0

2 years ago

3.2.4

2 years ago

3.2.3

2 years ago

3.1.12

2 years ago

3.1.7

2 years ago

3.1.6

2 years ago

3.1.5

2 years ago

3.1.10

2 years ago

3.1.8

2 years ago

3.1.4

3 years ago

3.1.3

3 years ago

3.1.2

3 years ago

3.1.1

3 years ago

3.1.0

4 years ago

2.2.3

5 years ago