You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

periscopic

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

periscopic

periscopic


Version published
Weekly downloads
1.8M
increased by4.97%
Maintainers
1
Install size
57.4 kB
Created
Weekly downloads
 

Package description

What is periscopic?

The 'periscopic' npm package is primarily used for calculating the potential life expectancy of individuals based on statistical data. It provides a way to estimate how many years of life are lost due to premature death, which can be a powerful tool for research and analysis in public health and social sciences.

What are periscopic's main functionalities?

Calculate Life Expectancy Loss

This feature allows the calculation of lost years of life by providing the age at death and the average life expectancy for the gender. The code sample demonstrates how to use the package to estimate how many years a male who died at age 47 has lost, given the average life expectancy.

const periscopic = require('periscopic');
const lifeExpectancyData = { male: 76, female: 81 };
const person = { gender: 'male', ageAtDeath: 47 };
const yearsLost = periscopic(person, lifeExpectancyData);
console.log(yearsLost);

Other packages similar to periscopic

Changelog

Source

3.1.0

  • Add types export (#19)
  • Promote @types/estree to dependencies (#19)
  • Update dependencies

Readme

Source

periscopic

Utility for analyzing scopes belonging to an ESTree-compliant AST.

API

import { analyze } from 'periscopic';

const ast = acorn.parse(`
const a = b;
console.log(a);
`);

const { map, globals, scope } = analyze(ast);
  • map is a WeakMap<Node, Scope>, where the keys are the nodes of your AST that create a scope
  • globals is a Map<string, Node> of all the identifiers that are referenced without being declared anywhere in the program (in this case, b and console)
  • scope is the top-level Scope belonging to the program

Scope

Each Scope instance has the following properties:

  • scope.block — true if the scope is created by a block statement (i.e. let, const and class are contained to it), false otherwise
  • scope.parent — the parent scope object
  • scope.declarations — a Map<string, Node> of all the variables declared in this scope, the node value referes to the declaration statement
  • scope.initialised_declarations — a Set<string> of all the variables declared and initialised in this scope
  • scope.references — a Set<string> of all the names referenced in this scope (or child scopes)

It also has two methods:

  • scope.has(name) — returns true if name is declared in this scope or an ancestor scope
  • scope.find_owner(name) — returns the scope object in which name is declared (or null if it is not declared)

extract_identifiers and extract_names

This package also exposes utilities for extracting the identifiers contained in a declaration or a function parameter:

import { extract_identifiers, extract_names } from 'periscopic';

const ast = acorn.parse(`
const { a, b: [c, d] = e } = opts;
`);

const lhs = ast.body[0].declarations[0].id;

extract_identifiers(lhs);
/*
[
	{ type: 'Identifier', name: 'a', start: 9, end: 10 },
	{ type: 'Identifier', name: 'c', start: 16, end: 17 },
	{ type: 'Identifier', name: 'd', start: 19, end: 20 }
]
*/

extract_names(lhs);
/*
['a', 'c', 'd']
*/

License

MIT

FAQs

Package last updated on 26 Jan 2023

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc