0.0.2 ā€¢ Published 1 year ago

cpp-npm-package-boilerplate v0.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Getting started

Vulnerabilities

Reliability Rating codecov

Lines of Code Code Smells

Node.js build and publish package

Running Code Coverage Bugs

TypeScript Nodejs C++

NPM Free. Built on open source. Runs everywhere. GitHub Actions

Installation(Example purposes)

Install with yarn or npm: yarn or npm:

# yarn
yarn add cpp-npm-package-boilerplate
# npm
npm i cpp-npm-package-boilerplate --save

Usage example

import { helloNative } from 'cpp-npm-package-boilerplate';

helloNative('World'); // Hello World

Note: This is example is a binding of the C++ function helloNative to the JavaScript function helloNative.

C++ function

#include <napi.h>

Napi::String hello(const Napi::CallbackInfo& info) {
    Napi::Env env = info.Env();
    Napi::String name = info[0].As<Napi::String>();
    return Napi::String::New(env, "Hello " + name.Utf8Value());
}

Napi::Object Init(Napi::Env env, Napi::Object exports) {
    exports.Set(Napi::String::New(env, "hello"), Napi::Function::New(env, hello));
    return exports;
}

NODE_API_MODULE(hello, Init)

JavaScript function

import bindings from 'bindings';
export const helloNative = bindings('hello.node').hello;

TypeScript implementation

import bindings from 'bindings';

type THelloNative = (string: string) => string;

export const helloNative: THelloNative = bindings('hello.node').hello;

šŸ¤ Contributing

Contributions, issues and feature requests are welcome!Feel free to check issues page.

Show your support

Give a ā­ļø if this project helped you!

Or buy me a coffee šŸ™ŒšŸ¾

šŸ“ License

Copyright Ā© 2022 Hebert F Barros. This project is MIT licensed.