7.0.0 • Published 9 months ago

@rocket.chat/rest-typings v7.0.0

Weekly downloads
-
License
-
Repository
-
Last release
9 months ago

@rocket.chat/rest-typings

Package containing all Rocket.Chat rest endpoint definitions

Contributing

Contributions are always welcome! However we have some recommendations.

  • Check if your implementation matches your definitions, a bad definition is worse than none.
  • Use the generic types we created for paging.
  • Create functions that assert properties (very useful for the backend)
  • Do tests to ensure that your assertions are correct.
  • Avoid incomplete and unknow typings

Good examples of what not to do:

If you have an endpoint that accepts name or id, both are not optional, one of them is required

    
    type EndPointTestGetParams = { name?: string; id?: string; } // WRONG!

    type EndPointTestGetParams = { name: string; } | { id: string; } // Better :)

If you have an endpoint that accepts name or id, both are not optional, one of them is required

    export const isEndPointTestGetParams = (props: any) is EndPointTestGetParams => 'name' in prop || 'id' in prop; // WRONG!

    // .... Better
    
    
    import Ajv from 'ajv';

    const ajv = new Ajv();
    const endPointTestGetParams = {
        oneOf: [
            {
                type: 'object',
                properties: {
                    name: {
                        type: 'string',
                    },
                },
                required: ['name'],
                additionalProperties: false,
            },
            {
                type: 'object',
                properties: {
                    id: {
                        type: 'string',
                    },
                },
                required: ['id'],
                additionalProperties: false,
            },
        ],
    };

    export const isEndPointTestGetParams = ajv.compile<EndPointTestGetParams>(endPointTestGetParams);

Optimizations

we use interfaces to register endpoints, so if you use a custom version, or miss an endpoint, you don't necessarily need to recompile the code, you can do it in your own code

    declare module '@rocket.chat/rest-typings' {
        interface Endpoints {
            'custom/endpoint': {
                GET: (params: PaginatedRequest<{ query: string }>) => PaginatedResult<{
                    some: string[];
                }>;
            };
        }
    }

License

MIT

7.0.0-rc.6

9 months ago

7.0.0-rc.5

9 months ago

7.0.0

9 months ago

7.0.0-rc.4

9 months ago

7.0.0-rc.3

9 months ago

7.0.0-rc.2

9 months ago

7.0.0-rc.1

9 months ago

7.0.0-rc.0

9 months ago

6.13.0

10 months ago

6.13.0-rc.2

10 months ago

6.13.0-rc.3

10 months ago

6.12.2

10 months ago

6.13.0-rc.4

10 months ago

6.13.0-rc.5

10 months ago

6.13.0-rc.6

10 months ago

6.13.0-rc.1

10 months ago

6.13.0-rc.0

10 months ago

6.12.1

11 months ago

6.11.3

11 months ago

6.10.6

11 months ago

6.9.7

11 months ago

6.12.0

11 months ago

6.12.0-rc.6

11 months ago

6.10.5

11 months ago

6.9.6

11 months ago

6.12.0-rc.5

11 months ago

6.12.0-rc.4

11 months ago

6.11.2

11 months ago

6.12.0-rc.3

11 months ago

6.12.0-rc.2

11 months ago

6.9.0-rc.1

1 year ago

6.9.0-rc.2

1 year ago

6.12.0-rc.0

11 months ago

6.11.0-rc.0

1 year ago

6.10.0-rc.0

1 year ago

6.11.0-rc.1

12 months ago

6.12.0-rc.1

11 months ago

6.10.0-rc.7

1 year ago

6.11.0-rc.6

12 months ago

6.10.0-rc.6

1 year ago

6.10.0-rc.5

1 year ago

6.11.0-rc.4

12 months ago

6.10.0-rc.4

1 year ago

6.11.0-rc.5

12 months ago

6.10.0-rc.3

1 year ago

6.11.0-rc.2

12 months ago

6.10.0-rc.2

1 year ago

6.11.0-rc.3

12 months ago

6.10.0-rc.1

1 year ago

6.11.1

12 months ago

6.11.0

12 months ago

6.10.2

12 months ago

6.10.1

1 year ago

6.10.0

1 year ago

6.10.4

11 months ago

6.10.3

12 months ago

6.9.0

1 year ago

6.9.2

1 year ago

6.9.1

1 year ago

6.9.4

1 year ago

6.5.8

1 year ago

6.9.3

1 year ago

6.9.5

12 months ago

6.5.7

1 year ago

6.5.6

1 year ago

6.5.5

1 year ago

6.5.4

1 year ago

6.6.0-rc.7

1 year ago

6.6.0-rc.6

1 year ago

6.6.0-rc.5

1 year ago

6.6.0-rc.2

1 year ago

6.6.0-rc.3

1 year ago

6.6.0-rc.4

1 year ago

6.6.0-rc.0

2 years ago

6.6.0-rc.1

1 year ago

6.5.3

2 years ago

6.4.9

2 years ago

6.5.2

2 years ago

6.6.0

2 years ago

6.5.1

2 years ago

6.5.0

2 years ago

6.5.0-rc.19

2 years ago

6.5.0-rc.18

2 years ago

6.5.0-rc.17

2 years ago

6.5.0-rc.16

2 years ago

6.5.0-rc.15

2 years ago

6.5.0-rc.14

2 years ago

6.5.0-rc.13

2 years ago

6.5.0-rc.12

2 years ago

6.5.0-rc.11

2 years ago

6.5.0-rc.10

2 years ago

6.5.0-rc.9

2 years ago

6.5.0-rc.8

2 years ago

6.4.8

2 years ago

6.5.0-rc.7

2 years ago

6.4.7

2 years ago

6.3.12

2 years ago

6.4.6

2 years ago

6.3.11

2 years ago

6.5.0-rc.6

2 years ago

6.5.0-rc.5

2 years ago

6.5.0-rc.4

2 years ago

6.5.0-rc.3

2 years ago

6.5.0-rc.2

2 years ago

6.5.0-rc.1

2 years ago

6.5.0-rc.0

2 years ago

6.4.5

2 years ago

6.4.4

2 years ago

6.4.3

2 years ago

6.4.2

2 years ago

6.4.1

2 years ago

6.3.10

2 years ago

6.3.9

2 years ago

6.4.0

2 years ago

6.4.0-rc.5

2 years ago

6.3.8

2 years ago

6.4.0-rc.4

2 years ago

6.4.0-rc.3

2 years ago

6.3.7

2 years ago

6.4.0-rc.2

2 years ago

6.4.0-rc.1

2 years ago

6.3.6

2 years ago

6.4.0-rc.0

2 years ago

6.3.5

2 years ago

6.3.4

2 years ago

6.3.3

2 years ago

6.3.2

2 years ago

6.3.1

2 years ago

6.3.0

2 years ago

6.3.0-rc.10

2 years ago

6.3.0-rc.9

2 years ago

6.3.0-rc.8

2 years ago

6.3.0-rc.7

2 years ago

6.3.0-rc.6

2 years ago

6.3.0-rc.5

2 years ago

6.3.0-rc.4

2 years ago

6.3.0-rc.3

2 years ago

6.3.0-rc.2

2 years ago

6.3.0-rc.1

2 years ago

6.3.0-rc.0

2 years ago