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

@types/eslint-scope

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@types/eslint-scope

TypeScript definitions for eslint-scope


Version published
Weekly downloads
16M
decreased by-0.29%
Maintainers
1
Install size
243 kB
Created
Weekly downloads
 

Package description

What is @types/eslint-scope?

@types/eslint-scope provides TypeScript type definitions for the eslint-scope package, which is used to analyze the scope of variables in JavaScript code. This package is particularly useful for developers who are building tools that need to understand variable scoping, such as linters, code analyzers, and compilers.

What are @types/eslint-scope's main functionalities?

Scope Analysis

This feature allows you to analyze the scope of variables in a given piece of JavaScript code. The code sample demonstrates how to parse JavaScript code into an Abstract Syntax Tree (AST) using espree and then analyze the scope using eslint-scope.

const eslintScope = require('eslint-scope');
const espree = require('espree');

const code = 'function foo() { var bar = 1; }';
const ast = espree.parse(code, { ecmaVersion: 6 });
const scopeManager = eslintScope.analyze(ast);

scopeManager.scopes.forEach(scope => {
  console.log(scope.variables);
});

Variable Tracking

This feature allows you to track variables within different scopes. The code sample shows how to parse JavaScript code and then log the names of all variables found in each scope.

const eslintScope = require('eslint-scope');
const espree = require('espree');

const code = 'let x = 10; function test() { let y = 20; }';
const ast = espree.parse(code, { ecmaVersion: 6 });
const scopeManager = eslintScope.analyze(ast);

scopeManager.scopes.forEach(scope => {
  scope.variables.forEach(variable => {
    console.log(variable.name);
  });
});

Reference Tracking

This feature allows you to track references to variables within different scopes. The code sample demonstrates how to parse JavaScript code and then log the names of all references found in each scope.

const eslintScope = require('eslint-scope');
const espree = require('espree');

const code = 'let a = 1; function foo() { console.log(a); }';
const ast = espree.parse(code, { ecmaVersion: 6 });
const scopeManager = eslintScope.analyze(ast);

scopeManager.scopes.forEach(scope => {
  scope.references.forEach(reference => {
    console.log(reference.identifier.name);
  });
});

Other packages similar to @types/eslint-scope

Readme

Source

Installation

npm install --save @types/eslint-scope

Summary

This package contains type definitions for eslint-scope (https://github.com/eslint/eslint-scope).

Details

Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/eslint-scope.

index.d.ts

import * as eslint from "eslint";
import * as estree from "estree";

export const version: string;

export class ScopeManager implements eslint.Scope.ScopeManager {
    scopes: Scope[];
    globalScope: Scope;
    acquire(node: {}, inner?: boolean): Scope | null;
    getDeclaredVariables(node: {}): Variable[];
}

export class Scope implements eslint.Scope.Scope {
    type:
        | "block"
        | "catch"
        | "class"
        | "for"
        | "function"
        | "function-expression-name"
        | "global"
        | "module"
        | "switch"
        | "with"
        | "TDZ";
    isStrict: boolean;
    upper: Scope | null;
    childScopes: Scope[];
    variableScope: Scope;
    block: estree.Node;
    variables: Variable[];
    set: Map<string, Variable>;
    references: Reference[];
    through: Reference[];
    functionExpressionScope: boolean;
}

export class Variable implements eslint.Scope.Variable {
    name: string;
    scope: Scope;
    identifiers: estree.Identifier[];
    references: Reference[];
    defs: eslint.Scope.Definition[];
}

export class Reference implements eslint.Scope.Reference {
    identifier: estree.Identifier;
    from: Scope;
    resolved: Variable | null;
    writeExpr: estree.Node | null;
    init: boolean;

    isWrite(): boolean;
    isRead(): boolean;
    isWriteOnly(): boolean;
    isReadOnly(): boolean;
    isReadWrite(): boolean;
}

export interface AnalysisOptions {
    optimistic?: boolean;
    directive?: boolean;
    ignoreEval?: boolean;
    nodejsScope?: boolean;
    impliedStrict?: boolean;
    fallback?: string | ((node: {}) => string[]);
    sourceType?: "script" | "module";
    ecmaVersion?: number;
}

export function analyze(ast: {}, options?: AnalysisOptions): ScopeManager;

Additional Details

Credits

These definitions were written by Toru Nagashima.

FAQs

Package last updated on 07 Nov 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