1.0.46 • Published 2 years ago

mqtt-async v1.0.46

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

mqtt-async

A simple way to convert the MQTT.js library to use async/await. No dependecies. Just a simple function. This is a different approach than the async-mqtt library which encapsulates MQTT.

Create an MQTT instance as normal. Then just call MqttAsync().

const Mqtt = require('mqtt');
const MqttAsync = require('mqtt-async');

let mqtt = MqttAsync(Mqtt.connect(...));

await mqtt.subscribe('topic');
await mqtt.publish('topic', 'Hello');

This is the complete source code. Nothing more. Just copy it into your project or use this module.

module.exports = function MqttAsync(client) {

    let subscribe = client.subscribe;
    let publish = client.publish;
    let unsubscribe = client.unsubscribe;
    let end = client.end;

    client.publish = (...args) => {
        return new Promise((resolve, reject) => {
            publish.call(client, ...args, (error) => {
                error ? reject(error) : resolve();
            });
        });
    }

    client.subscribe = (...args) => {
        return new Promise((resolve, reject) => {
            subscribe.call(client, ...args, (error) => {
                error ? reject(error) : resolve();
            });
        });

    }

    client.unsubscribe = (...args) => {
        return new Promise((resolve, reject) => {
            unsubscribe.call(client, ...args, (error) => {
                error ? reject(error) : resolve();
            });
        });

    }

    client.end = (...args) => {
        return new Promise((resolve, reject) => {
            end.call(client, ...args, (error) => {
                error ? reject(error) : resolve();
            });
        });

    }

    return client;
}
1.0.46

2 years ago

1.0.44

2 years ago

1.0.43

2 years ago

1.0.42

2 years ago

1.0.41

2 years ago

1.0.39

2 years ago

1.0.38

2 years ago

1.0.36

2 years ago

1.0.34

2 years ago

1.0.33

2 years ago

1.0.32

2 years ago

1.0.30

2 years ago

1.0.28

2 years ago

1.0.26

2 years ago

1.0.24

2 years ago

1.0.22

2 years ago

1.0.20

2 years ago

1.0.18

2 years ago

1.0.16

2 years ago

1.0.14

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.5

2 years ago

1.0.3

2 years ago

1.0.1

2 years ago