resolve

package module
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Oct 19, 2025 License: MIT Imports: 9 Imported by: 0

README

node-resolve

import (
	"strings"
	"os"

	resolve "github.com/startracex/node-resolve"
)

func main() {
	resolver := resolve.NewModuleResolver(&resolve.ResolverConfig{
		Extensions: []string{".js", ".ts"},
		ExtensionMap: map[string][]string{
			".js": {".ts", ".js"},
		},
	})
	cwd, _ := os.Getwd()
	resolved := ""
	resolved = resolver.Resolve("./mod-file.js", cwd) // mod-file.ts
	resolved = resolver.Resolve("typescript", cwd) // node_modules/typescript/lib/typescript.js
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	SpecifierRegex = regexp.MustCompile(`^(?:@(\w[\w-.]*)/)?(\w[\w-.]*)(/(.*))?$`)

	ErrInvalidSpecifier = errors.New("resolve: invalid specifier")
)
View Source
var ErrNoUpwardsFound = errors.New("err no upwards found")

Functions

func NormalizeMapping

func NormalizeMapping(m any) map[string]any

Types

type FS

type FS interface {
	Stat(path string) (fs.FileInfo, error)
	ReadFile(path string) ([]byte, error)
}

type ModuleResolver

type ModuleResolver struct {
	Config *ResolverConfig
}

func NewModuleResolver

func NewModuleResolver(config *ResolverConfig) *ModuleResolver

func (*ModuleResolver) FindManifest added in v0.2.0

func (r *ModuleResolver) FindManifest(base string) (map[string]any, any)

func (*ModuleResolver) FindUp added in v0.2.0

func (r *ModuleResolver) FindUp(startDir, target string) (string, error)

func (*ModuleResolver) ModulesPaths

func (r *ModuleResolver) ModulesPaths(start string, name string) []string

func (*ModuleResolver) Resolve

func (r *ModuleResolver) Resolve(path string, base string) string

func (*ModuleResolver) ResolveImports added in v0.2.0

func (r *ModuleResolver) ResolveImports(path, base string) string

func (*ModuleResolver) ResolveModuleSpecifier

func (r *ModuleResolver) ResolveModuleSpecifier(spec *Specifier, base string) string

type Path

type Path interface {
	Dir(path string) string
	Join(elem ...string) string
}

type ResolverConfig

type ResolverConfig struct {
	Extensions           []string
	ExtensionMap         map[string][]string
	IsCoreModule         func(string) bool
	ModulesDirectoryName string
	ManifestFileName     string
	MainFields           []string
	IndexName            string
	Conditions           []string
	FS                   FS
	Path                 Path
}

type Specifier

type Specifier struct {
	Proto string
	Scope string
	Pkg   string
	Name  string
	Path  string
}

func ParseSpecifier

func ParseSpecifier(input string) (*Specifier, error)

type SubpathResolver

type SubpathResolver struct {
	Conditions []string
	Exports    map[string]any
	Imports    map[string]any
}

func NewSubpathResolver

func NewSubpathResolver(config SubpathResolverConfig) *SubpathResolver

func (*SubpathResolver) ResolveExports

func (r *SubpathResolver) ResolveExports(entry string) []string

func (*SubpathResolver) ResolveImports

func (r *SubpathResolver) ResolveImports(entry string) []string

type SubpathResolverConfig

type SubpathResolverConfig struct {
	Exports    any
	Imports    any
	Conditions []string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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