npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

google-pubsub-emulator

v7.1.0

Published

Google pubsub emulator to nodejs / javascript

Downloads

1,602

Readme

CI CodeQL

Google Cloud PubSub Emulator

This package helps to start / stop Google Cloud Pub/Sub Emulator with javascript. Perfect to support unit testing when you need the local emulator start in unit / half integration test.

The wrapper sets PUBSUB_EMULATOR_HOST and GCLOUD_PROJECT environment variables.

From 2.0.0 @google-cloud/pubsub moved to the peer dependencies.

#Prerequisites To use the emulator you need to install Google Cloud SDK

#Installation

npm install google-pubsub-emulator --save-dev

#Usage I think the package is the most suitable for unit testing.

const {PubSub} = require('@google-cloud/pubsub');
const Emulator = require('google-pubsub-emulator');

describe('test suit', ()=>{
    process.env.GCLOUD_PROJECT = 'project-id'; // Set the gcloud project Id globally

    let emulator;
    
    before(()=>{
        const options = {
            debug:true, // if you like to see the emulator output
            topics: [
                'projects/project-id/topics/topic-1' // automatically created topic
            ]
        };
        
        emulator = new Emulator(options);
        
        return emulator.start();
    });
    
    after(()=>{
        return emulator.stop();
    });
    
    it('test case', ()=>{
        // your test
    });
})

Options

parameter (type) | default value | description ----------|---------------|------------------- project (string) | empty | This variable is gcloud project Id. If it is empty, GCLOUD_PROJECT environment variable will be used. Either you should set it directly or the environment variable should be set. dataDir (string) | empty | The emulator creates a directory where the project files are stored. If it is empty the emulator default value will be used. You could set relative ./directory or absolute path /tmp/dir1/dir2/. If this directory does not exist, it will be created. clean (boolean) | true | If dataDir value is set and 'clean' value is true then the package deletes the dataDir. The package does not delete the gcloud emulator default directory. host (string) | empty | If it is empty the'localhost' of google default value is used. It can take the form of a single address (hostname, IPv4, or IPv6) port (number) | empty | If it is empty the emulator selects a random free port. debug (boolean) | false | If it is true, it writes the console.logs of the emulator onto the main process console. topics (array) | [] | If it is contains values then the wrapper create the missing topics. You should set the full identifier of the topic 'projects//topics/'

Methods

name | description -----|------------ start | Starts the emulator and returns a Promise. stop | Stops the emulator and returns a Promise.

#License

MIT