Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

ganache-core

trufflesuite224.2kMITdeprecated2.13.2TypeScript support: included

ganache-core is now ganache; visit https://trfl.io/g7 for details

npm Version npm Downloads [![Build Status](https://travis-ci.o

readme

npm Version npm Downloads Build Status

Ganache Core

This is the core code that powers the Ganache application and the Ganache command line tool.

Usage | Options | Implemented Methods | Custom Methods | Unsupported Methods | Testing

Installation

ganache-core is written in JavaScript and distributed as a Node.js package via npm. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling npm modules.

macOS Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.

Windows See our Windows install instructions.

Ubuntu/Linux Follow the basic instructions for installing Node.js and make sure that you have npm installed, as well as the build-essential apt package (it supplies make which you will need to compile most things). Use the official Node.js packages, do not use the package supplied by your distribution.

Using npm:

npm install ganache-core

or, if you are using Yarn:

yarn add ganache-core

Usage

As a Web3 provider:

const ganache = require("ganache-core");
const web3 = new Web3(ganache.provider());

If web3 is already initialized:

const ganache = require("ganache-core");
web3.setProvider(ganache.provider());

NOTE: depending on your web3 version, you may need to set a number of confirmation blocks

const web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });

As an ethers.js provider:

const ganache = require("ganache-core");
const provider = new ethers.providers.Web3Provider(ganache.provider());

As a general HTTP and WebSocket server:

const ganache = require("ganache-core");
const server = ganache.server();
const provider = server.provider;
server.listen(port, function(err, blockchain) { ... });

Options

Both .provider() and .server() take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:

  • "accounts": Array of Object's of the following shape: { secretKey: privateKey, balance: HexString }.
    • If secretKey is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.
    • The balance is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.
  • "debug": boolean - Output VM opcodes for debugging
  • "blockTime": number - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the blockTime option is discouraged unless you have tests which require a specific mining interval.
  • "logger": Object - Object, like console, that implements a log() function.
  • "mnemonic": Use a specific HD wallet mnemonic to generate initial addresses.
  • "port": number Port number to listen on when running as a server.
  • "seed": Use arbitrary data to generate the HD wallet mnemonic to be used.
  • "default_balance_ether": number - The default account balance, specified in ether.
  • "total_accounts": number - Number of accounts to generate at startup.
  • "fork": string or object - Fork from another currently running Ethereum client at a given block. When a string, input should be the HTTP location and port of the other client, e.g. http://localhost:8545. You can optionally specify the block to fork from using an @ sign: http://localhost:8545@1599200. Can also be a Web3 Provider object, optionally used in conjunction with the fork_block_number option below.
  • "fork_block_number": string or number - Block number the provider should fork from, when the fork option is specified. If the fork option is specified as a string including the @ sign and a block number, the block number in the fork parameter takes precedence.
  • "forkCacheSize": number - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to 1_073_741_824 bytes (1 gigabyte). You can set this to 0 to disable caching (not recommended), or to -1 for unlimited (will be limited by your node/browser process).
  • "network_id": Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)
  • "_chainId": (temporary option until v3) Specify the chain's chainId. For legacy reasons, this does NOT affect the eth_chainId RPC response! Defaults to 1
  • "_chainIdRpc": (temporary option until v3) Specify the eth_chainId RPC response value. For legacy reasons, this does NOT affect the chain's chainid! Defaults to 1337
  • "time": Date - Date that the first block should start. Use this feature, along with the evm_increaseTime method to test time-dependent code.
  • "locked": boolean - whether or not accounts are locked by default.
  • "unlocked_accounts": Array - array of addresses or address indexes specifying which accounts should be unlocked.
  • "db_path": String - Specify a path to a directory to save the chain database. If a database already exists, ganache-core will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.
  • "db": Object - Specify an alternative database instance, for instance MemDOWN.
  • "ws": boolean Enable a websocket server. This is true by default.
  • "account_keys_path": String - Specifies a file to save accounts and private keys to, for testing.
  • "vmErrorsOnRPCResponse": boolean - Whether or not to transmit transaction failures as RPC errors. Set to false for error reporting behaviour which is compatible with other clients such as geth and Parity. This is true by default to replicate the error reporting behavior of previous versions of ganache.
  • "hdPath": The hierarchical deterministic path to use when generating accounts. Default: "m/44'/60'/0'/0/"
  • "hardfork": String Allows users to specify which hardfork should be used. Supported hardforks are byzantium, constantinople, petersburg, istanbul, and muirGlacier (default).
  • "allowUnlimitedContractSize": boolean - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased gasLimit). By setting this to true, the check within the EVM for contract size limit of 24KB (see EIP-170) is bypassed. Setting this to true will cause ganache-core to behave differently than production environments. (default: false; ONLY set to true during debugging).
  • "gasPrice": String::hex Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex encoded string in wei. Defaults to "0x77359400" (2 gwei).
  • "gasLimit": String::hex | number Sets the block gas limit. Must be specified as a hex string or number(integer). Defaults to "0x6691b7".
  • "callGasLimit": number Sets the transaction gas limit for eth_call and eth_estimateGas calls. Must be specified as a hex string. Defaults to "0x1fffffffffffff" (Number.MAX_SAFE_INTEGER).
  • "keepAliveTimeout": number If using .server() - Sets the HTTP server's keepAliveTimeout in milliseconds. See the NodeJS HTTP docs for details. 5000 by default.

Implemented Methods

The RPC methods currently implemented are:

Management API Methods

Custom Methods

Special non-standard methods that aren’t included within the original RPC specification:

  • evm_snapshot : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful evm_revert, the same snapshot id cannot be used again. Consider creating a new snapshot after each evm_revert if you need to revert to the same point multiple times.
    curl -H "Content-Type: application/json" -X POST --data \
            '{"id":1337,"jsonrpc":"2.0","method":"evm_snapshot","params":[]}' \
            http://localhost:8545
    { "id": 1337, "jsonrpc": "2.0", "result": "0x1" }
  • evm_revert : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id 0x1 will delete snapshots with ids 0x1, 0x2, etc... If no snapshot id is passed it will revert to the latest snapshot. Returns true.
    # Ex: ID "1" (hex encoded string)
    curl -H "Content-Type: application/json" -X POST --data \
            '{"id":1337,"jsonrpc":"2.0","method":"evm_revert","params":["0x1"]}' \
            http://localhost:8545
    { "id": 1337, "jsonrpc": "2.0", "result": true }
  • evm_increaseTime : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.
    # Ex: 1 minute (number)
    curl -H "Content-Type: application/json" -X POST --data \
            '{"id":1337,"jsonrpc":"2.0","method":"evm_increaseTime","params":[60]}' \
            http://localhost:8545
    { "id": 1337, "jsonrpc": "2.0", "result": "060" }
  • evm_mine : Force a block to be mined (independent of mining status: started | stopped). Takes one optional parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in seconds. In JavaScript you would calculate it like this: Math.floor(Date.now() / 1000);

    # Ex: new Date("2009-01-03T18:15:05+00:00").getTime()
    curl -H "Content-Type: application/json" -X POST --data \
            '{"id":1337,"jsonrpc":"2.0","method":"evm_mine","params":[1231006505000]}' \
            http://localhost:8545
    { "id": 1337, "jsonrpc": "2.0", "result": "0x0" }
  • evm_unlockUnknownAccount : Unlocks any unknown account. Accounts known to the personal namespace and accounts returned by eth_accounts cannot be unlocked using this method; use personal_lockAccount instead.

    # Ex: account: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
    curl -H "Content-Type: application/json" -X POST --data \
            '{"id":1337,"jsonrpc":"2.0","method":"evm_unlockUnknownAccount","params":["0x742d35Cc6634C0532925a3b844Bc454e4438f44e"]}' \
            http://localhost:8545
    { "id": 1337, "jsonrpc": "2.0", "result": true }
  • evm_lockUnknownAccount : Locks any unknown account. Accounts known to the personal namespace and accounts returned by eth_accounts cannot be locked using this method; use personal_unlockAccount instead.

    # Ex: account: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
    curl -H "Content-Type: application/json" -X POST --data \
            '{"id":1337,"jsonrpc":"2.0","method":"evm_lockUnknownAccount","params":["0x742d35Cc6634C0532925a3b844Bc454e4438f44e"]}' \
            http://localhost:8545
    { "id": 1337, "jsonrpc": "2.0", "result": true }

Unsupported Methods

  • eth_compileSolidity: If you'd like Solidity compilation in Javascript, please see the solc-js project.

Testing

Run tests via:

$ npm test

License

MIT

changelog

node-addon-api Changelog

2020-07-01 Version 2.0.2, @NickNaso

Notable changes:

API

  • Napi::ObjectWrap: avoid double-free on old Node.js.
  • Napi::ObjectWrap: remove wrap only on failure.
  • Napi::ObjectWrap: gracefully handle constructor exceptions
  • Napi::ObjectWrap: call napi_remove_wrap() in destructor.

TEST

  • Updated Napi::BigInt test for recent change in core.

Commmits

  • [5abf60257d] - Merge pull request #723 from gabrielschulhof/backport-4e885069-pr-475 (Nicola Del Gobbo)
  • [470f130666] - objectwrap: avoid double-free on old Node.js (Gabriel Schulhof)
  • [81e2eac7ba] - test: update BigInt test for recent change in core (Michael Dawson) #649
  • [204f07252c] - objectwrap: remove wrap only on failure (Gabriel Schulhof)
  • [a552a384dd] - src: call napi\_remove\_wrap() in ObjectWrap dtor (Anna Henningsen) #475
  • [1a51067438] - objectwrap: gracefully handle constructor exceptions (Gabriel Schulhof)

2020-06-02 Version 2.0.1, @NickNaso

Notable changes:

API

  • Fix memory corruption vulnerability

Commmits

  • [265fea9edd] - napi: fix memory corruption vulnerability (Tobias Nießen )

2019-11-21 Version 2.0.0, @NickNaso

Notable changes:

API

  • Added Napi::AsyncProgressWorker api.
  • Added error checking on Napi::ThreadSafeFunction::GetContext.
  • Added copy constructor to Napi::ThreadSafeFunction.
  • Added Napi::ThreadSafeFunction::Ref and Napi::ThreadSafeFunction::Unref to Napi::ThreadSafeFunction.
  • Added Napi::Object::AddFinalizer method.
  • Use napi_add_finalizer() to attach data when building against N-API 5.
  • Added Napi::Date api.
  • Added Napi::ObjectWrap::Finalize method.

Documentation

  • Added documentation for Napi::AsyncProgressWorker.
  • Improve Napi::AsyncWorker documentation.
  • Added documentation for Napi::Object::AddFinalizer method.
  • Improved documentation for Napi::ThreadSafeFunction.
  • Improved documentation about the usage of CMake as build tool.
  • Some minor corrections all over the documentation.

TEST

  • Added test cases for Napi::AsyncProgressWorker api.
  • Added test cases for Napi::Date api.
  • Added test cases for new features added to Napi::ThreadSafeFunction.

Commmits

  • [c881168d49] - tsfn: add error checking on GetContext (#583) (Kevin Eady) #583
  • [24d75dd82f] - Merge pull request #588 from NickNaso/add-asyncprogress-worker-readme (Nicola Del Gobbo)
  • [aa79e37b62] - Merge pull request #587 from timrach/patch-1 (Nicola Del Gobbo)
  • [df75e08c2b] - tsfn: support direct calls to underlying napi_tsfn (Kevin Eady) #58
  • [2298dfae58] - doc: Added AsyncProgressWorker to readme (NickNaso)
  • [b3609d33b6] - Fix return type and declaration of setter callback (Tim Rach)
  • [295e560f55] - test: improve guards for experimental features (legendecas)
  • [2e71842f63] - tsfn: Implement copy constructor (Kevin Eady) #546
  • [650562cab9] - src: implement AsyncProgressWorker (legendecas) #529
  • [bdfd14101f] - src: attach data with napi_add_finalizer (Gabriel Schulhof) #577
  • [9e955a802b] - doc: change node.js to Node.js per guideline (#579) (Tobias Nießen) #579
  • [b42e21e3a9] - build: move node/6 to travis allowed failures and add node/13 (#573) (Gabriel Schulhof)
  • [8d6132f609] - doc: improve AsyncWorker docs (#571) (legendecas) #571
  • [bc8fc23627] - test: do not run TSFN tests on NAPI_VERSION < 4 (legendecas) #576
  • [bcc1d58fc4] - implement Object::AddFinalizer (Gabriel Schulhof)
  • [e9a4bcd52a] - doc: updates Make.js doc to current best practices (Jim Schlight) #558
  • [b513d1aa7a] - doc: fix return type of ArrayBuffer::Data (Tobias Nießen) #552
  • [34c11cf0a4] - src: disallow copying, double close of scopes (legendecas) #566
  • [ce139a05e8] - src: make failure of closing scopes fatal (legendecas) #566
  • [740c79823e] - src: add Env() to AsyncContext (Rolf Timmermans) #568
  • [ea9ce1c801] - tsfn: add wrappers for Ref and Unref (Kevin Eady) #561
  • [2e1769e1a3] - error: remove unnecessary if condition (legendecas) #562
  • [828f223a87] - doc: fix spelling in ObjectWrap doc (#563) (Tobias Nießen) #563
  • [dd9fa8a4a8] - doc: move Arunesh and Taylor to Emeritus (#540) (Michael Dawson) #540
  • [cf8b8415df] - doc: add Kevin to the list of collaborators (#539) (Michael Dawson) #539
  • [5d6aeae7b5] - build: enable travis for fast PR check (legendecas)
  • [6192e705cd] - src: add napi_date (Mathias Küsel) #497
  • [7b1ee96d52] - doc: update prebuild_tools.md (Nurbol Alpysbayev) #527
  • [0b4f3a5b8c] - tsfn: fix crash on releasing tsfn (legendecas) #532
  • [c3c8814d2f] - implement virutal ObjectWrap::Finalize (Michael Price) #515

2019-07-23 Version 1.7.1, @NickNaso

Notable changes:

API

  • Fixed compilation problems that happen on Node.js with N-API version less than 4.

Commmits

  • [c20bcbd069] - Merge pull request #518 from NickNaso/master (Nicola Del Gobbo)
  • [6720d57253] - Create the native threadsafe_function for test only for N-API greater than 3. (NickNaso)
  • [37b6c185ad] - Fix compilation breakage on 1.7.0 (NickNaso)

2019-07-23 Version 1.7.0, @NickNaso

Notable changes:

API

  • Added Napi::ThreadSafeFunction api.
  • Added Napi::AsyncWorker::GetResult() method to Napi::AsyncWorker.
  • Added Napi::AsyncWorker::Destroy()() method to Napi::AsyncWorker.
  • Use full namespace on macros that create the errors.

Documentation

  • Added documentation about contribution philosophy.
  • Added documentation for Napi::ThreadSafeFunction.
  • Some minor corrections all over the documentation.

TEST

  • Added test case for bool operator.
  • Fixed test case for Napi::ObjectWrap.

Commmits

  • [717c9ab163] - AsyncWorker: add GetResult() method (Kevin Eady) #512
  • [d9d991bbc9] - doc: add ThreadSafeFunction to main README (#513) (Kevin Eady) #513
  • [ac6000d0fd] - doc: fix minor typo (Yohei Kishimoto) #510
  • [e9fa1eaa86] - doc: document ThreadSafeFunction (#494) (Kevin Eady) #494
  • [cab3b1e2a2] - doc: ClassPropertyDescriptor example (Ross Weir) #507
  • [c32d7dbdcf] - macros: create errors fully namespaced (Gabriel Schulhof) #506
  • [0a90df2fcb] - Implement ThreadSafeFunction class (Jinho Bang)
  • [1fb540eeb5] - Use curly brackets to include node_api.h (NickNaso) #493
  • [b2b08122ea] - AsyncWorker: make callback optional (Kevin Eady) #489
  • [a0cac77c82] - Added test for bool operator (NickNaso) #490
  • [ab7d8fcc48] - src: fix objectwrap test case (Michael Dawson) #495
  • [3b6b9eb88a] - AsyncWorker: introduce Destroy() method (Gabriel Schulhof) #488
  • [f633fbd95d] - string.md: Document existing New(env, value, length) APIs (Tux3) #486
  • [aaea55eda9] - Little fix on code example (Nicola Del Gobbo) #470
  • [e1cf9a35a1] - Use Value::IsEmpty to check for empty value (NickNaso) #478
  • [3ad5dfc7d9] - Fix link (Alba Mendez) #481
  • [a3b4d99c45] - doc: Add contribution philosophy doc (Hitesh Kanwathirtha)
  • [36863f087b] - doc: refer to TypedArray and ArrayBuffer from Array (Gabriel "|Nix|" Schulhof) #465

2019-04-03 Version 1.6.3, @NickNaso

Notable changes:

API

  • Added SuppressDestruct method to Napi::AsyncWorker.
  • Added new build targets for debug.
  • Exposed macros that throw errors.
  • Fixed memory leaks caused by callback data when a napi error occurs.
  • Fixed missing void *data usage in Napi::PropertyDescriptors.

Documentation

  • Some minor corrections all over the documentation.

Commmits

  • [83b41c2fe4] - Document adding -fvisibility=hidden flag for macOS users (Nicola Del Gobbo) #460
  • [1ed7ad8769] - doc: correct return type of Int32Value to int32_t (Bill Gallafent) #459
  • [b0f6b601aa] - src: add AsyncWorker destruction suppression (Gabriel Schulhof) #407
  • [72b1975cff] - doc: fix links to the Property Descriptor docs (Ryuichi Okumura) #458
  • [fcfc612728] - build: new build targets for debug purposes (Jinho Bang) #186
  • [c629553cd7] - doc: minor doc corrections and clarifications (Bruce A. MacNaughton) #426
  • [7b87e0b999] - doc: update number.md (Bernardo Heynemann) #436
  • [fcf173d2a1] - src: expose macros that throw errors (Gabriel Schulhof) #448
  • [b409a2f987] - package: add npm search keywords (Sam Roberts) #452
  • [0bc7987806] - doc: fix references to Weak and Persistent (Jake Barnes) #428
  • [ad6f569f85] - doc: dix typo (Abhishek Kumar Singh) #435
  • [28df833a49] - Merge pull request #441 from jschlight/master (Jim Schlight)
  • [4921e74d83] - Rearranges names to be alphabetical (Jim Schlight)
  • [48220335b0] - Membership review update (Jim Schlight)
  • [44f0695533] - Merge pull request #394 from NickNaso/create_release (Nicola DelGobbo)
  • [fa49d68416] - doc: fix some Finalizer signatures (Philipp Renoth) #414
  • [020ac4a628] - src: make Object::GetPropertyNames() const (Philipp Renoth)#415
  • [91eaa6f4cb] - src: fix callbackData leaks on error napi status (Philipp Renoth) #417
  • [0b40275752] - src: fix noexcept control flow issues (Philipp Renoth) #420
  • [c1ff2936f9] - src: fix missing void*data usage in PropertyDescriptors (Luciano Martorella) #374

2018-11-29 Version 1.6.2, @NickNaso

Notable changes:

API

  • Fixed selection logic for version 6.x.

Commmits

  • [07a0fc4e95] - src: fix selection logic for 6.x (Michael Dawson) #402

2018-11-14 Version 1.6.1, @NickNaso

Notable changes:

Documentation

  • Updated links for examples to point to node-addon-examples repo.
  • Fixed typos on some parts of documentation.

API

  • Removed unused member on Napi::CallbackScope.
  • Enabled Napi::CallbackScope only with N-API v3.

Commmits

  • [e7cd292a74] - src: remove unused CallbackScope member (Gabriel Schulhof) #391
  • [d47399fe25] - src: guard CallbackScope with N-API v3 (Michael Dawson) #395
  • [29a0262ab9] - doc: fix typo (Dongjin Na) #385
  • [b6dc15b88d] - doc: make links point to node-addon-examples repo (Nicola Del Gobbo) #389

2018-11-02 Version 1.6.0, @NickNaso

Notable changes:

Documentation

  • Improved documentation about ABI stability.

API

  • Add Napi::CallbackScope class that help to have the equivalent of the scope associated with a callback in place when making certain N-API calls

TEST

  • Added tests for Napi::Array class.
  • Added tests for Napi::ArrayBuffer class.

Commmits

  • [8ce605c657] - build: avoid using package-lock.json (Jaeseok Yoon) #359
  • [fa3a6150b3] - src: use MakeCallback() -> Call() in AsyncWorker (Jinho Bang) #361
  • [2342415463] - test: create test objects in the stack instead of the heap (Dongjin Na) #371
  • [67b7db0a6f] - test: write tests for Array class (Jaeseok Yoon) #363
  • [729f6dc4ee] - test: add arraybuffer tests (Dongjin Na) #369
  • [405f3e5b5b] - src: implement CallbackScope class (Jinho Bang) #362
  • [015d95312f] - doc: fix Napi::Reference link (Gentilhomme) #365
  • [fd65078e3c] - README.md: link to new ABI stability guide (Gabriel Schulhof) #367
  • [ffebf9ba9a] - Updates for release 1.5.0 (NickNaso)

2018-10-03 Version 1.5.0, @NickNaso

Notable changes:

Documentation

  • Completed the documentation to cover all the API surface.
  • Numerous fixes to make documentation more consistent in all of its parts.

API

  • Add Napi::AsyncContext class to handle asynchronous operation.
  • Add Napi::BigInt class to work with BigInt type.
  • Add Napi::VersionManagement class to retrieve the versions of Node.js and N-API.
  • Fix potential memory leaks.
  • DataView feature is enabled by default
  • Add descriptor for Symbols
  • Add new methods on Napi::FunctionReference.
  • Add the possibility to retrieve the environment on Napi::Promise::Deferred

TOOL

  • Add tool to check if a native add-on is built using N-API

TEST

  • Start to increase the test coverage
  • Fix in the test suite to better handle the experimental features that are not yet backported in the previous Node.js version.

Commits

  • [2009c019af] - Merge pull request #292 from devsnek/feature/bigint (Gus Caplan)
  • [e44aca985e] - add bigint class (Gus Caplan)
  • [a3951ab973] - Add documentation for Env(). (Rolf Timmermans) #318
  • [a6f7a6ad51] - Add Env() to Promise::Deferred. (Rolf Timmermans)
  • [0097e96b92] - Fixed broken links for Symbol and String (NickNaso)
  • [b0ecd38d76] - Fix Code of conduct link properly (#323) (Jake Yoon) #323
  • [223474900f] - doc: update Version management (Dongjin Na) #360
  • [4f76262a10] - doc: some fix on Napi::Boolean documentation (NickNaso) #354
  • [78374f72d2] - doc: number documentation (NickNaso) #356
  • [51ffe453f8] - doc: doc cleanup (NickNaso) #353
  • [fc11c944b2] - doc: major doc cleanup (NickNaso) #335
  • [100d0a7cb2] - doc: first pass on objectwrap documentation (NickNaso) #321
  • [c7d54180ff] - doc: the Napi::ObjectWrap example does not compile (Arnaud Botella) #339
  • [7cdd78726a] - doc: added cpp highlight for string.md (Jaeseok Yoon) #329
  • [8ed29f547c] - doc: add blurb about ABI stability (Gabriel Schulhof) #326
  • [757eb1f5a3] - doc: add function and function reference doc (NickNaso) #299
  • [2885c18591] - doc: Create changelog for release 1.4.0 (Nicola Del Gobbo)
  • [917bd60baa] - src: remove TODOs by fixing memory leaks (Gabriel Schulhof) #343
  • [dfcb93945f] - src: implement AsyncContext class (Jinho Bang) #252
  • [211ed38d0d] - src: make 'nothing' target a static library (Gabriel Schulhof) #348
  • [97c4ab5cf2] - src: add Call and MakeCallback that accept cargs (NickNaso) #344
  • [b6e2d92c09] - src: enable DataView feature by default (Jinho) #331
  • [0a00e7c97b] - src: implement missing descriptor defs for symbols (Philipp Renoth) #280
  • [38e01b7e3b] - src: first pass on adding version management apis (NickNaso) #325
  • [79ee8381d2] - src: fix compile failure in test (Michael Dawson) #345
  • [4d92a6066f] - src: Add ObjectReference test case (Anisha Rohra) #212
  • [779560f397] - test: add operator overloading tests in Number (Your Name) #355
  • [73fed84ceb] - test: add ability to control experimental tests (Michael Dawson) #350
  • [14c69abd46] - test: write tests for Boolean class (Jaeseok Yoon) #328
  • [2ad47a83b1] - test: explicitly cast to uint32_t in test (Gabriel Schulhof) #341
  • [622ffaea76] - test: Tighten up compiler warnings (Mikhail Cheshkov) #315
  • [fd3c37b0f2] - tools: add tool to check for N-API modules (Gabriel Schulhof) #346

2018-07-19 Version 1.4.0, @NickNaso

Notable changes:

Documentation

  • Numerous additions to the documentation, filling out coverage of API surface

API

  • Add resource parameters to AsyncWorker constructor
  • Add memory management feature

Commits

  • [7dc5ac8bc3] - doc: update metadata for release (Nicola Del Gobbo)
  • [d68e86adb4] - doc: Added documentation for PropertyDescriptor (Anisha Rohra) #309
  • [968a5f2000] - doc: Add documentation for ObjectReference.md (Anisha Rohra) #307
  • [908cdc314c] - doc: add TypedArray and TypedArrayOf (Kyle Farnung) #305
  • [2ff776ffe3] - backport node::Persistent (Gabriel Schulhof) #300
  • [98161970c9] - Backport perf, crash and exception handling fixes (Gabriel Schulhof) #295
  • [dd1191e086] - test: fix asyncworker test so it runs on 6.x (Michael Dawson) #298
  • [11697fcecd] - doc: ArrayBuffer and Buffer documentation (Kyle Farnung) #256
  • [605aa2babf] - Add memory management feature (NickNaso) #286
  • [86be13a611] - doc: Fix HandleScope docs (Ben Berman) #287
  • [90f92c4dc0] - doc: Update broken links in README.md (Hitesh Kanwathirtha) #290
  • [c2a620dc11] - doc: Clarify positioning versus N-API (Michael Dawson) #288
  • [6cff890ee5] - doc: Fix typo in docs (Ben Berman) #284
  • [7394bfd154] - doc: Fix typo in docs (Ben Berman) #285
  • [12b2cdeed3] - fix test files (Kyle Farnung) #257
  • [9ab6607242] - doc: Update Doc Version Number (joshgarde) #277
  • [e029a076c6] - doc: First pass at basic Node Addon API docs (Hitesh Kanwathirtha) #268
  • [74ff79717e] - doc: fix link to async_worker.md (Michael Dawson)
  • [5a63f45eda] - doc: First step of error and async doc (NickNaso) #272
  • [9d38f61afb] - doc: New Promise and Reference docs (Jim Schlight) #243
  • [43ff9fa836] - doc: Updated Object documentation (Anisha Rohra) #254
  • [b197f7cc8b] - doc: minor typos (Nick Soggin) #248
  • [4b8918b352] - Add resource parameters to AsyncWorker constructor (Jinho Bang) #253
  • [1ecf7c19b6] - doc: fix wrong link in readme (miloas) #255
  • [a750ed1932] - release: updates to metadata for next release (Michael Dawson)

2018-05-08 Version 1.3.0, @mhdawson

Notable changes:

Documentation

  • Added documentation for Scopes
  • Added documentation for migration from NAN
  • Update documentation to better explain the use of NODE_ADDON_API

API

  • Implement data manipulation methods for dataview
  • Use built-in N-API on Node.js >= 6.14.2
  • Value
    • Added IsExternal()
    • IsObject() allow functions
  • String
    • Fixed initialization of std::string to nullptr

Tests

  • Fix test failures on linuxOne and AIX
  • Added basic tests for Scopes
  • Fix MSVC warning C4244 in tests

Commits