Détail du package

elevated

cedrictailly1.4kMIT1.2.1

Check if script is executed with elevated permissions: using sudo on Linux or administrator rights on Windows

elevated, admin, administrator, sudo

readme

elevated

npm version License Downloads

Check if a script is executed with elevated permissions:

  • Using SUDO on Linux
  • From an administrator account on Windows

A lightweight utility to verify and enforce elevated privileges for Node.js applications when you need to perform operations that require administrative rights.

Compatibility

Platform Support
Windows
Linux
macOS

Installation

# NPM
npm install elevated

# Yarn
yarn add elevated

# PNPM
pnpm add elevated

Usage examples

CommonJS (Node.js)

Functions

The check method returns a boolean indicating if we are elevated or not.

console.log(
  require('elevated').check() ? 'elevated' : 'unelevated'
);

Using required function, an exception is thrown with a platform specific message if the runtime is not elevated.

require('elevated').required();

Custom error message

Customize the error message thrown by required() when the script is not running with elevated permissions...

require('elevated').required('Please run as administrator');

...or by setting-up the default one.

require('elevated').defaultMessage = 'Please run as administrator';

ESM (ECMAScript Modules)

Using named imports

import { check, required } from 'elevated';

// Check if elevated
console.log(check() ? 'elevated' : 'unelevated');

// Require elevated permissions
try {
  required();
  console.log('Script is running with elevated permissions');
} catch (error) {
  console.error('Error:', error.message);
}

Using default import

import elevated from 'elevated';

console.log(elevated.check() ? 'elevated' : 'unelevated');

(...)

Testing

This package includes tests for both standard and elevated permission contexts:

npm test

Contributing

Contributions, issues and feature requests are welcome. Feel free to check the issues page if you want to contribute.

Pull requests for macOS support would be particularly appreciated!