0.13.0 • Published 2 days ago

@sidewinder/contract v0.13.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 days ago

Overview

Sidewinder Contracts are JSON Schema interface schematics that describe callable methods on remote services. This package extends the Sidewinder Types package. It includes an additional Contract type that can be used to define a strict Service contract. Contracts are used both for data validation, as well as TypeScript type inference. They can also be published as machine readable documentation to remote systems.

Licence MIT

Contents

Install

$ npm install @sidewinder/contract

Contracts

The following creates a contract where the server exposes a foo function, and the client exposes a bar function. Servers and Clients are responsible for implementing these functions, with the client functions only implementable on WebSocketClient instances.

import { Type } from '@sidewinder/contract'

const Contract = Type.Contract({
  format: 'json',
  server: {
    foo: Type.Function([Type.String()], Type.String()),
  },
  client: {
    bar: Type.Function([Type.String()], Type.String()),
  },
})

Formats

Contracts can specify a format option to inform Client and Server the message encoding format that should be used to exchange messages. Sidewinder provides encoding options for json and msgpack with json being the default. By setting the format to msgpack, Sidewinder can exchange binary buffers of type Uint8Array. The following uses the msgpack format.

import { Type } from '@sidewinder/contract'

const Contract = Type.Contract({
  format: 'msgpack',
  server: {
    test: Type.Function([Type.String()], Type.String()),
  },
})
0.13.0

2 days ago

0.12.10

11 months ago

0.12.11

10 months ago

0.12.12

10 months ago

0.12.14

10 months ago

0.12.15

10 months ago

0.12.8

11 months ago

0.12.9

11 months ago

0.12.7

11 months ago

0.12.6

11 months ago

0.12.5

1 year ago

0.10.9

2 years ago

0.10.1

2 years ago

0.10.2

2 years ago

0.10.3

2 years ago

0.10.4

2 years ago

0.10.5

2 years ago

0.10.6

2 years ago

0.10.7

2 years ago

0.10.8

2 years ago

0.10.0

2 years ago

0.11.0

2 years ago

0.10.14

2 years ago

0.11.1

2 years ago

0.10.15

2 years ago

0.11.2

2 years ago

0.11.3

2 years ago

0.11.4

2 years ago

0.10.10

2 years ago

0.11.5

2 years ago

0.10.11

2 years ago

0.11.6

1 year ago

0.10.12

2 years ago

0.10.13

2 years ago

0.12.0

1 year ago

0.12.1

1 year ago

0.12.2

1 year ago

0.12.3

1 year ago

0.12.4

1 year ago

0.9.2

2 years ago

0.9.1

2 years ago

0.8.85

2 years ago

0.8.84

2 years ago

0.8.81

2 years ago

0.8.80

2 years ago

0.8.83

2 years ago

0.8.82

2 years ago

0.8.78

2 years ago

0.8.79

2 years ago

0.9.0

2 years ago

0.8.77

2 years ago

0.8.74

2 years ago

0.8.73

2 years ago

0.8.76

2 years ago

0.8.75

2 years ago

0.8.70

2 years ago

0.8.72

2 years ago

0.8.71

2 years ago

0.8.67

2 years ago

0.8.66

2 years ago

0.8.69

2 years ago

0.8.68

2 years ago

0.8.63

2 years ago

0.8.62

2 years ago

0.8.65

2 years ago

0.8.64

2 years ago

0.8.61

2 years ago

0.8.60

2 years ago

0.8.59

2 years ago

0.8.56

2 years ago

0.8.58

2 years ago

0.8.57

2 years ago

0.8.45

2 years ago

0.8.44

2 years ago

0.8.47

2 years ago

0.8.46

2 years ago

0.8.49

2 years ago

0.8.48

2 years ago

0.8.55

2 years ago

0.8.52

2 years ago

0.8.51

2 years ago

0.8.54

2 years ago

0.8.53

2 years ago

0.8.50

2 years ago

0.8.43

2 years ago

0.8.42

2 years ago

0.8.41

2 years ago

0.8.40

2 years ago

0.8.39

2 years ago

0.8.38

2 years ago

0.8.37

2 years ago

0.8.36

2 years ago

0.8.35

2 years ago

0.8.34

2 years ago

0.8.33

2 years ago

0.8.32

2 years ago

0.8.31

2 years ago

0.8.30

2 years ago

0.8.29

2 years ago

0.8.28

2 years ago

0.8.27

2 years ago

0.8.26

2 years ago

0.8.25

2 years ago

0.8.24

2 years ago

0.8.23

2 years ago

0.8.22

2 years ago

0.8.21

2 years ago

0.8.20

2 years ago

0.8.19

2 years ago

0.8.18

2 years ago

0.8.17

2 years ago

0.8.16

2 years ago

0.8.15

2 years ago

0.8.14

2 years ago

0.8.13

2 years ago

0.8.12

2 years ago

0.8.11

2 years ago

0.8.10

2 years ago

0.8.9

2 years ago

0.8.8

2 years ago

0.8.7

2 years ago

0.8.6

2 years ago

0.8.5

2 years ago

0.8.4

2 years ago

0.8.3

2 years ago

0.8.2

2 years ago

0.8.1

2 years ago

0.8.0

2 years ago