Security News
Introducing the Socket Python SDK
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
@google-cloud/promisify
Advanced tools
@google-cloud/promisify is a utility library that helps convert callback-based functions to promise-based functions. This is particularly useful for modern JavaScript development where promises and async/await syntax are preferred over traditional callback patterns.
Promisify a single function
This feature allows you to convert a single callback-based function to a promise-based function. The code sample demonstrates how to use the `promisify` function to convert a traditional callback function into one that returns a promise.
const {promisify} = require('@google-cloud/promisify');
function callbackFunction(arg1, arg2, callback) {
// Simulate an asynchronous operation
setTimeout(() => {
callback(null, 'result');
}, 1000);
}
const promiseFunction = promisify(callbackFunction);
promiseFunction('arg1', 'arg2').then(result => {
console.log(result); // 'result'
}).catch(err => {
console.error(err);
});
Promisify all functions in an object
This feature allows you to promisify all functions in an object. The code sample demonstrates how to use the `promisifyAll` function to convert all callback-based functions in an object to promise-based functions, appending 'Async' to the function names.
const {promisifyAll} = require('@google-cloud/promisify');
const obj = {
callbackFunction(arg1, arg2, callback) {
setTimeout(() => {
callback(null, 'result');
}, 1000);
}
};
promisifyAll(obj);
obj.callbackFunctionAsync('arg1', 'arg2').then(result => {
console.log(result); // 'result'
}).catch(err => {
console.error(err);
});
The `util.promisify` function is a built-in Node.js utility that converts callback-based functions to promise-based functions. It is similar to @google-cloud/promisify but is part of the Node.js standard library, making it a more straightforward choice for many developers.
Bluebird is a fully-featured promise library that includes a `promisify` function to convert callback-based functions to promise-based ones. It offers more features and better performance compared to @google-cloud/promisify, but it is a larger library and may be overkill for simple use cases.
Pify is a lightweight library that provides a simple way to promisify callback-based functions. It is similar to @google-cloud/promisify but is more minimalistic and has fewer dependencies, making it a good choice for smaller projects.
A simple utility for promisifying functions and classes.
Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in Client Libraries Explained.
Table of contents:
npm install @google-cloud/promisify
const {promisify} = require('@google-cloud/promisify');
/**
* This is a very basic example function that accepts a callback.
*/
function someCallbackFunction(name, callback) {
if (!name) {
callback(new Error('Name is required!'));
} else {
callback(null, `Well hello there, ${name}!`);
}
}
// let's promisify it!
const somePromiseFunction = promisify(someCallbackFunction);
async function quickstart() {
// now we can just `await` the function to use it like a promisified method
const [result] = await somePromiseFunction('nodestronaut');
console.log(result);
}
quickstart();
It's unlikely you will need to install this package directly, as it will be
installed as a dependency when you install other @google-cloud
packages.
Samples are in the samples/
directory. The samples' README.md
has instructions for running the samples.
Sample | Source Code | Try it |
---|---|---|
Quickstart | source code |
The Google Cloud Common Promisify Node.js Client API Reference documentation also contains samples.
This library follows Semantic Versioning.
This library is considered to be General Availability (GA). This means it is stable; the code surface will not change in backwards-incompatible ways unless absolutely necessary (e.g. because of critical security issues) or with an extensive deprecation period. Issues and requests against GA libraries are addressed with the highest priority.
More Information: Google Cloud Platform Launch Stages
Contributions welcome! See the Contributing Guide.
Please note that this README.md
, the samples/README.md
,
and a variety of configuration files in this repository (including .nycrc
and tsconfig.json
)
are generated from a central template. To edit one of these files, make an edit
to its template in this
directory.
Apache Version 2.0
See LICENSE
FAQs
A simple utility for promisifying functions and classes.
The npm package @google-cloud/promisify receives a total of 5,717,441 weekly downloads. As such, @google-cloud/promisify popularity was classified as popular.
We found that @google-cloud/promisify demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
Security News
Floating dependency ranges in npm can introduce instability and security risks into your project by allowing unverified or incompatible versions to be installed automatically, leading to unpredictable behavior and potential conflicts.
Security News
A new Rust RFC proposes "Trusted Publishing" for Crates.io, introducing short-lived access tokens via OIDC to improve security and reduce risks associated with long-lived API tokens.