Select-JavaScriptVariable

August 3, 2026 ยท View on GitHub

SYNOPSIS

Finds variable declarations and assignment expressions in an Acornima JavaScript AST or JavaScript source.

SYNTAX

Source (Default)

Select-JavaScriptVariable [-Source] <string> [-Name <string[]>] [-Contains] [-StartsWith] [-DeclarationOnly] [-PropertyPath <string[]>] [-Tolerant] [<CommonParameters>]

Ast

Select-JavaScriptVariable [-Ast] <Node> [-Name <string[]>] [-Contains] [-StartsWith] [-DeclarationOnly] [-PropertyPath <string[]>] [<CommonParameters>]

DESCRIPTION

Finds variable declarations and assignment expressions in an Acornima JavaScript AST or JavaScript source.

EXAMPLES

EXAMPLE 1

ConvertFrom-JavaScriptAst -Content 'const token = "abc";' | Select-JavaScriptVariable -Name token

EXAMPLE 2

$script = @'
$Config = {
    "fShowPersistentCookiesWarning": false,
    "urlMsaLogout": "https://example.com/logout",
    "sCtx": "expected-context"
}
'@

Select-JavaScriptVariable -Source $script -Name '$Config' -PropertyPath sCtx

EXAMPLE 3

$script = @'
$Config = { sCtx: "first" };
$Config = { sCtx: "second" };
'@

Select-JavaScriptVariable -Source $script -Name '$Config' -PropertyPath sCtx |
    Select-Object -Last 1

EXAMPLE 4

$script = @'
window.$Config = {
    auth: {
        urls: {
            logout: "https://example.com/logout"
        }
    }
}
'@

Select-JavaScriptVariable -Source $script -Name '$Config' -PropertyPath auth.urls.logout

EXAMPLE 5

$script = @'
$Config += suffix;
$Config = { sCtx: "final" };
'@

Select-JavaScriptVariable -Source $script -Name '$Config' -PropertyPath sCtx

EXAMPLE 6

$script = @'
const cfg = {
    [key]: "dynamic",
    token: "old",
    ...override,
    items: ["first", ...extra, "last"],
    safe: "after"
};

const enabled = !window.disabled;
'@

Select-JavaScriptVariable -Source $script -Name cfg -PropertyPath key,token,items.0,items.2,safe
Select-JavaScriptVariable -Source $script -Name enabled

PARAMETERS

-Ast

Acornima AST node to inspect.

Type: Node
Parameter Sets: Ast
Aliases: InputObject, Node
Possible values:

Required: True
Position: 0
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-Contains

Matches variable names that contain the provided Name values.

Type: SwitchParameter
Parameter Sets: Source, Ast
Aliases: None
Possible values:

Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DeclarationOnly

Returns only variable declarations and skips loose assignment expressions.

Type: SwitchParameter
Parameter Sets: Source, Ast
Aliases: None
Possible values:

Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name

Variable names to return.

Type: String[]
Parameter Sets: Source, Ast
Aliases: None
Possible values:

Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-PropertyPath

Returns a value from a dotted property path inside the matched JavaScript object or array literal.

Type: String[]
Parameter Sets: Source, Ast
Aliases: None
Possible values:

Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Source

JavaScript content to parse and inspect.

Type: String
Parameter Sets: Source
Aliases: Content
Possible values:

Required: True
Position: 0
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False

-StartsWith

Matches variable names that start with the provided Name values.

Type: SwitchParameter
Parameter Sets: Source, Ast
Aliases: None
Possible values:

Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Tolerant

Enables Acornima tolerant parsing for JavaScript source input.

Type: SwitchParameter
Parameter Sets: Source
Aliases: None
Possible values:

Required: False
Position: named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

INPUTS

  • System.String
  • Acornima.Ast.Node

OUTPUTS

  • System.Management.Automation.PSObject
  • None