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

@ronatilabs/narango

v1.1.0

Published

A NestJS wrapper service for ArangoDB NodeJS driver

Downloads

61

Readme

Commitizen friendly

Installation

npm i @ronatilabs/narango

This package has multiple peer dependencies and expects your project to have them installed:

  1. @nestjs/common
  2. @nestjs/core
  3. arangojs

Check the package.json to know the version range.

Usage

Import NarangoModule

This package exports a NestJS module for you to import in your application:

import { Module } from "@nestjs/common";
import { NarangoModule } from "@ronatilabs/narango";

import { MyService } from "./my-service.service";

@Module({
  imports: [
    NarangoModule.register({
      database: {
        url: "http://localhost:8529",
        databaseName: "MyDatabase",
        auth: {
          username: "userDB",
          password: "secretPassword",
        },
      },
    }),
  ],
  providers: [MyService],
})
export class MyAppModule {}

For sake of simplicity the database credentials are passed directly to the register function in the example but in a production environment you'd want to use @nestjs/config instead.

NarangoModule can be registered as a global module through the global option:

  imports: [
    NarangoModule.register({
      global: true,
      database: {
        url: "http://localhost:8529",
        databaseName: "MyDatabase",
        auth: {
          username: "userDB",
          password: "secretPassword",
        },
      },
    }),
  ],

Async registration

If you need to use providers to provide the options to Narango module, you can use NarangoModule.registerAsync:

import { Module } from "@nestjs/common";
import { NarangoModule } from "@ronatilabs/narango";
import { ConfigModule, ConfigService } from "@nestjs/config";

@Module({
  imports: [
    ConfigModule.forRoot(),
    NarangoModule.registerAsync({
      useFactory: (config: ConfigService) => ({
        database: {
          url: config.get<string>("url"),
          databaseName: config.get<string>("databaseName"),
          auth: {
            username: config.get<string>("username"),
            password: config.get<string>("password"),
          },
        },
      }),
      inject: [ConfigService],
    }),
  ],
})
export class MyAppModule {}

Inject NarangoService

Now you can access the NarangoService everywhere you need it in your application:

import { Injectable } from "@nestjs/common";
import { NarangoService } from "@ronatilabs/narango";

@Injectable()
export class MyService {
  constructor(private narango: NarangoService) {}

  async myMethod() {
    const collections = await this.narango.db._collections();
    // do whatever you want
  }
}

Contribute

All contributions are welcome!

Local setup

There is a .nvmrc file at the project root which indicates the current version used to develop. It works with nvm which is a tool to help you manage the different node versions you're using. If you don't already use it, we highly recommend you to give it a try.

Commit format

This project is setup with automatic semver versioning based on your commit semantic. It uses commitizen to enforce the format and help contributors format their commit message. We follow the conventional commit format. Once you want to commit your work, you need to:

  1. git add the changes you want to commit.
  2. Run npx cz to start the commitizen CLI.
  3. Follow along the wizard to create your commit.
  4. Push your commit on the branch.
  5. Create your PR.

Notes for project's maintainers

When you merge a PR from beta into main and it successfully published a new version on the latest channel, don't forget to create a PR from main to beta. This is mandatory for semantic-release to take it into account for next beta version.