version_utils.ts

view source

Declarations
#

12 declarations

BumpType
#

version_utils.ts view source

BumpType

type "major" | "minor" | "patch"

import type {BumpType} from '@fuzdev/fuz_repos/version_utils.js';

A semver bump kind: major, minor, or patch.

calculate_next_version
#

version_utils.ts view source

(current_version: string, bump_type: BumpType): string import {calculate_next_version} from '@fuzdev/fuz_repos/version_utils.js';

current_version

type string

bump_type

returns

string

compare_bump_types
#

version_utils.ts view source

(a: BumpType, b: BumpType): number import {compare_bump_types} from '@fuzdev/fuz_repos/version_utils.js';

Compares bump types. Returns positive if a > b, negative if a < b, 0 if equal.

a

b

returns

number

detect_bump_type
#

version_utils.ts view source

(old_version: string, new_version: string): BumpType import {detect_bump_type} from '@fuzdev/fuz_repos/version_utils.js';

old_version

type string

new_version

type string

returns

BumpType

get_update_prefix
#

version_utils.ts view source

(current_version: string, default_strategy?: "" | "^" | "~" | ">="): string import {get_update_prefix} from '@fuzdev/fuz_repos/version_utils.js';

Determines version prefix to use when updating dependencies.

Strategy:

  • Wildcard (*): Use caret (^) as default
  • Has existing prefix: Preserve it (^, ~, >=, <=, etc)
  • No prefix: Use default_strategy

This preserves user intent while handling wildcard replacements sensibly.

current_version

type string

default_strategy

prefix to use when no existing prefix found

type "" | "^" | "~" | ">="
default '^'

returns

string

get_version_prefix
#

version_utils.ts view source

(version: string): string import {get_version_prefix} from '@fuzdev/fuz_repos/version_utils.js';

Gets the version prefix (^, ~, >=, <=, or empty string).

version

type string

returns

string

is_breaking_change
#

version_utils.ts view source

(old_version: string, bump_type: BumpType): boolean import {is_breaking_change} from '@fuzdev/fuz_repos/version_utils.js';

Determines if a bump is a breaking change based on semver rules. Pre-1.0: minor bumps are breaking 1.0+: major bumps are breaking

old_version

type string

bump_type

returns

boolean

is_wildcard
#

version_utils.ts view source

(version: string): boolean import {is_wildcard} from '@fuzdev/fuz_repos/version_utils.js';

version

type string

returns

boolean

needs_update
#

version_utils.ts view source

(current: string, new_version: string): boolean import {needs_update} from '@fuzdev/fuz_repos/version_utils.js';

current

type string

new_version

type string

returns

boolean

normalize_version_for_comparison
#

version_utils.ts view source

(version: string): string import {normalize_version_for_comparison} from '@fuzdev/fuz_repos/version_utils.js';

Normalizes version string for comparison.

Strips prefixes (^, ~, >=) to get bare version number. Handles wildcards as-is. Used by needs_update to compare versions.

version

type string

returns

string

examples

normalize_version_for_comparison('^1.2.3') // '1.2.3'
normalize_version_for_comparison('>=2.0.0') // '2.0.0'
normalize_version_for_comparison('*') // '*'

required_bump_for_dependency_update
#

version_utils.ts view source

(current_version: string, has_breaking_deps: boolean): BumpType import {required_bump_for_dependency_update} from '@fuzdev/fuz_repos/version_utils.js';

The bump a package must take when one of its prod/peer dependencies updates. Pre-1.0: minor for a breaking dependency, otherwise patch. 1.0+: major for a breaking dependency, otherwise patch.

Single source of truth for the dependency-driven bump rule, shared by the plan (get_required_bump_for_dependencies) and the auto-changeset generator (calculate_required_bump) so the two never drift.

current_version

the package's current version, used to detect the pre-1.0 regime

type string

has_breaking_deps

whether any updated dependency is a breaking change

type boolean

returns

BumpType

strip_version_prefix
#

version_utils.ts view source

(version: string): string import {strip_version_prefix} from '@fuzdev/fuz_repos/version_utils.js';

Strips version prefix (^, ~, >=, <=, etc) from a version string.

version

type string

returns

string

Imported by
#