9.0.2 • Published 9 months ago

@thinkalpha/fix-client v9.0.2

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

fix-client

  • FixClient - supports JFIX and different FIX versions
  • FixSession - keeps FIX session alive

example of custom Tag extension

import { Instant } from '@js-joda/core';
import { Subject } from 'rxjs';
import { createFixClient, FIX42, FixEncoderMeta, FIX_TYPE } from '../';

// extend message type existing message will be extended and FIX42.AllMessages will hold updated interface
declare module '../' {
    namespace FIX42 {
        export interface Heartbeat extends FIX42.FixMessage {
            MyTag1: string;
        }
    }
}

// add custom tag so Encode/Decode know what to do with a new tag
const coderExtension: Partial<FixEncoderMeta> = {
    name2Field: {
        MyTag1: {
            type: FIX_TYPE.STRING,
            number: '10001',
        },
    },
};

// new tag is required
const msg: FIX42.Heartbeat = {
    MsgType: FIX42.MsgTypeEnum.HEARTBEAT,
    MyTag1: 'test', // if you comment this error will be triggered
};

// header is also typed
const header = {
    SenderCompID: 'sender',
    TargetCompID: 'traget', // if you don't provide required field error will be triggered in client.send call
    SendingTime: Instant.parse('2024-01-01T10:00:00.000Z'),
};

const clientConfig = {
    endpoints: [
        {
            host: 'localhost',
            port: 1234,
        },
    ],
    timeout: 10,
    pause$: new Subject<boolean>(),
};

// improved way to create a FixClient (less template parameters, more typesafety)
const client = createFixClient<FIX42.AllMessages, FIX42.MessageHeader, FIX42.MessageTrailer>(
    clientConfig,
    'FIX.4.2-custom', // begin string
    FIX42.coderMeta, // defaults provided by generated code
    coderExtension, // extensions to make new fields work
);

client.start();
client.send(1, msg, header).catch((e) => console.error(e));

client.messages$.subscribe((msg) => {
    console.log(FIX42.coderMeta.msgType2msgName[msg.MsgType]);

    if (msg.MsgType === FIX42.MsgTypeEnum.HEARTBEAT) {
        console.log(msg.MyTag1);
    }
});
8.15.1

10 months ago

8.15.0

10 months ago

8.12.1

1 year ago

8.16.0

10 months ago

9.0.2

9 months ago

9.0.1

9 months ago

9.0.0

10 months ago

8.13.1

1 year ago

8.13.0

1 year ago

8.14.0

12 months ago

8.14.2

12 months ago

8.14.1

12 months ago

8.14.3

12 months ago

8.11.1

1 year ago

8.11.0

1 year ago

8.11.2

1 year ago

8.12.0

1 year ago

8.10.1

1 year ago

8.10.0

1 year ago

8.6.0

2 years ago

8.7.0

2 years ago

8.8.1

2 years ago

8.8.0

2 years ago

8.8.3

2 years ago

8.8.2

2 years ago

8.9.0

2 years ago

8.9.2

2 years ago

8.9.1

2 years ago

8.9.8

2 years ago

8.9.7

2 years ago

8.9.4

2 years ago

8.9.3

2 years ago

8.9.6

2 years ago

8.9.5

2 years ago

8.5.3

2 years ago

8.5.0

2 years ago

8.5.2

2 years ago

8.5.1

2 years ago

8.4.0

3 years ago

6.3.0

3 years ago

6.3.1

3 years ago

7.1.0

3 years ago

8.1.0

3 years ago

8.3.0

3 years ago

8.1.2

3 years ago

8.1.1

3 years ago

6.2.0

3 years ago

6.4.0

3 years ago

8.3.1

3 years ago

7.0.0

3 years ago

7.0.2

3 years ago

7.0.1

3 years ago

8.0.0

3 years ago

8.2.0

3 years ago

6.1.0

3 years ago

6.0.2

3 years ago

6.0.0

3 years ago

5.1.0

3 years ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.3.0

3 years ago

4.2.1

3 years ago

4.2.0

3 years ago

4.1.0

3 years ago

4.0.9

3 years ago

4.0.6

3 years ago

3.1.2

3 years ago

3.1.1

3 years ago

3.0.7

3 years ago

3.0.5

3 years ago

4.0.5-dev.0

3 years ago

3.0.4

3 years ago

3.0.3

3 years ago

3.0.2

3 years ago

3.0.0-dev.3

3 years ago

3.0.0-dev.2

3 years ago

3.0.0-dev.1

3 years ago

2.1.3-dev.19

3 years ago

2.1.3-dev.18

3 years ago

2.0.3-dev.17

3 years ago

2.0.3-dev.16

3 years ago

2.0.3-dev.15

3 years ago

2.0.3-dev.14

3 years ago

2.0.3-dev.13

3 years ago

2.0.3-dev.12

3 years ago

2.0.3-dev.11

3 years ago

2.0.3-dev.10

3 years ago

2.0.3-dev.9

3 years ago

2.0.3-dev.8

3 years ago

2.0.3-dev.7

3 years ago

2.0.3-dev.6

3 years ago

2.0.3-dev.5

3 years ago

2.0.3-dev.4

3 years ago

2.0.3-dev.3

3 years ago

2.0.3-dev.2

3 years ago

2.0.3-dev.1

3 years ago

2.0.3

3 years ago

2.0.3-dev.0

3 years ago

2.0.2-dev.9

3 years ago

2.0.2-dev.8

3 years ago

2.0.2-dev.7

3 years ago

2.0.2-dev.6

3 years ago

2.0.2-dev.5

3 years ago

2.0.2-dev.4

3 years ago

2.0.2-dev.3

3 years ago

2.0.2-dev.2

3 years ago

1.7.1

3 years ago

2.0.2-dev.1

3 years ago

2.0.2-dev.0

3 years ago

1.7.1-main.1

3 years ago

1.7.1-main.0

3 years ago

1.7.0

4 years ago

1.6.0

4 years ago

1.5.0

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago