New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

smalltalk

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

smalltalk

Promise-based Alert, Confirm and Prompt replacement

latest
Source
npmnpm
Version
5.0.1
Version published
Weekly downloads
4.5K
8.56%
Maintainers
1
Weekly downloads
 
Created
Source

Smalltalk License NPM version Build Status Coverage

Simple Promise-based replacement of native Alert, Confirm and Prompt.

Install

npm i smalltalk

API

First things first, require smalltalk with:

import * as smalltalk from 'smalltalk';

You can also use native version with:

import * as smalltalk from 'smalltalk/native';

When you need a bundled verseion use

import smalltalk from 'smalltalk/bundle';

In every method of smalltalk last parameter options is optional and could be used to prevent handling of cancel event and to specify custom button label.

({
    cancel: true, /* default */
});

smalltalk.alert(title, message [, options])

Alert

smalltalk
    .alert('Error', 'There was an error!')
    .then(() => {
        console.log('ok');
    });

smalltalk.confirm(title, message [, options])

Confirm

smalltalk
    .confirm('Question', 'Are you sure?')
    .then(() => {
        console.log('yes');
    })
    .catch(() => {
        console.log('no');
    });

smalltalk.prompt(title, message, value [, options])

Prompt

smalltalk
    .prompt('Question', 'How old are you?', '10')
    .then((value) => {
        console.log(value);
    })
    .catch(() => {
        console.log('cancel');
    });

Use type='password' for password fields:

smalltalk
    .prompt('Question', 'How old are you?', '10', {
        type: 'password',
    })
    .then((value) => {
        console.log(value);
    })
    .catch(() => {
        console.log('cancel');
    });

smalltalk.progress(title, message)

Progress

const progress = smalltalk.progress('Cloud Commander', 'Copy /home/coderaiser -> /home/coderaiser/2');

progress
    .setProgress(41)
    .catch(() => {
        console.log('abort');
    });

Custom label

You can use custom label passing into options param the buttons specification. For example :

const {tryToCatch} = require('try-to-catch');
const OK = 2;

const result = await tryToCatch(smalltalk.confirm, 'Question', 'Are you sure?', {
    buttons: {
        ok: 'Ok Label',
        cancel: 'Cancel Label',
    },
});

if (result.length === OK)
    console.log('yes');
else
    console.log('no');

License

MIT

Keywords

modal

FAQs

Package last updated on 19 Mar 2026

Did you know?

Socket

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.

Install

Related posts