javascript

package
v1.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package javascript provides dependency resolution for npm packages.

Overview

This package implements deps.Language for JavaScript/Node.js, supporting:

  • npm registry resolution via npm client
  • package.json manifest parsing

Registry Resolution

Use [Language.Resolver] to fetch dependencies from npm:

resolver, _ := javascript.Language.Resolver()
g, _ := resolver.Resolve(ctx, "express", deps.Options{MaxDepth: 10})

The resolver fetches the "dependencies" field from each package, excluding devDependencies, peerDependencies, and optionalDependencies.

Manifest Parsing

Parse package.json files:

parser, _ := javascript.Language.Manifest("npm", nil)
result, _ := parser.Parse("package.json", deps.Options{})

Note: package.json contains direct dependencies only. The resolver fetches transitive dependencies from npm.

npm: github.com/stacktower-io/stacktower/pkg/integrations/npm deps.Language: github.com/stacktower-io/stacktower/pkg/core/deps.Language

Index

Constants

This section is empty.

Variables

View Source
var Language = &deps.Language{
	Name:                  "javascript",
	DefaultRegistry:       "npm",
	DefaultRuntimeVersion: "22.12.0",
	ManifestTypes:         []string{"package", "package-lock"},
	ManifestAliases: map[string]string{
		"package.json":      "package",
		"package-lock.json": "package-lock",
	},
	NewResolver:     newResolver,
	NewManifest:     newManifest,
	ManifestParsers: manifestParsers,
	NormalizeName: func(name string) string {
		return strings.ToLower(strings.TrimSpace(name))
	},
}

Language provides JavaScript/TypeScript dependency resolution via npm. Supports package.json and package-lock.json manifest files.

Functions

This section is empty.

Types

type PackageJSON

type PackageJSON struct {
	// contains filtered or unexported fields
}

PackageJSON parses package.json files. It extracts dependencies, devDependencies, and peerDependencies.

func (*PackageJSON) IncludesTransitive

func (p *PackageJSON) IncludesTransitive() bool

func (*PackageJSON) Parse

func (p *PackageJSON) Parse(path string, opts deps.Options) (*deps.ManifestResult, error)

func (*PackageJSON) Supports

func (p *PackageJSON) Supports(name string) bool

func (*PackageJSON) Type

func (p *PackageJSON) Type() string

type PackageLock

type PackageLock struct{}

PackageLock parses package-lock.json files. It provides a full transitive closure of the dependency graph without needing to contact a registry. Supports lockfileVersion 2 and 3 formats.

func (*PackageLock) IncludesTransitive

func (p *PackageLock) IncludesTransitive() bool

func (*PackageLock) Parse

func (p *PackageLock) Parse(path string, opts deps.Options) (*deps.ManifestResult, error)

func (*PackageLock) Supports

func (p *PackageLock) Supports(name string) bool

func (*PackageLock) Type

func (p *PackageLock) Type() string

type SemverMatcher

type SemverMatcher struct{}

SemverMatcher implements constraint matching for npm's semver specifiers. It supports common operators: =, !=, <, <=, >, >=, ^, ~, x-range, hyphen range

func (SemverMatcher) ParseConstraint

func (SemverMatcher) ParseConstraint(constraint string) pubgrub.Condition

ParseConstraint converts an npm semver constraint to a PubGrub Condition. Supports: ^, ~, >=, <=, >, <, =, !=, x-ranges, hyphen ranges, and || (or)

func (SemverMatcher) ParseVersion

func (SemverMatcher) ParseVersion(version string) pubgrub.Version

ParseVersion converts a semver string to a PubGrub SemanticVersion.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL