Skip to content

Commit

Permalink
type version as SemVer
Browse files Browse the repository at this point in the history
  • Loading branch information
Primajin committed Feb 17, 2022
1 parent bcede72 commit eff519d
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
11 changes: 6 additions & 5 deletions src/lib/filterAndReject.ts
@@ -1,7 +1,8 @@
import _ from 'lodash'
import { and } from 'fp-and-or'
import minimatch from 'minimatch'
import { FilterFunction, FilterRejectPattern, Maybe, Version, VersionSpec } from '../types'
import { SemVer } from 'semver-utils'
import { FilterFunction, FilterRejectPattern, Maybe, VersionSpec } from '../types'

/**
* Creates a filter function from a given filter string. Supports
Expand Down Expand Up @@ -33,7 +34,7 @@ function composeFilter(filterPattern: FilterRejectPattern): FilterFunction {
}
// array
else if (Array.isArray(filterPattern)) {
predicate = (dependencyName: string, version:string) => filterPattern.some(
predicate = (dependencyName: string, version: SemVer) => filterPattern.some(
(subpattern: string | RegExp) => composeFilter(subpattern)(dependencyName, version)
)
}
Expand All @@ -43,7 +44,7 @@ function composeFilter(filterPattern: FilterRejectPattern): FilterFunction {
}
// function
else if (typeof filterPattern === 'function') {
predicate = (dependencyName:string, version:string) => filterPattern?.(dependencyName, version)
predicate = (dependencyName: string, version: SemVer) => filterPattern?.(dependencyName, version)
}
else {
throw new TypeError('Invalid filter. Must be a RegExp, array, or comma-or-space-delimited list.')
Expand All @@ -63,12 +64,12 @@ function composeFilter(filterPattern: FilterRejectPattern): FilterFunction {
function filterAndReject(filter: Maybe<FilterRejectPattern>, reject: Maybe<FilterRejectPattern>, filterVersion: Maybe<FilterRejectPattern>, rejectVersion: Maybe<FilterRejectPattern>) {
return and(
// filter dep
(dep: VersionSpec, version: Version) => and(
(dep: VersionSpec, version: SemVer) => and(
filter ? composeFilter(filter) : _.identity,
reject ? _.negate(composeFilter(reject)) : _.identity
)(dep, version),
// filter version
(dep: VersionSpec, version: Version) => and(
(dep: VersionSpec, version: SemVer) => and(
filterVersion ? composeFilter(filterVersion) : _.identity,
rejectVersion ? _.negate(composeFilter(rejectVersion)) : _.identity
)(version)
Expand Down
4 changes: 3 additions & 1 deletion src/types.ts
@@ -1,3 +1,5 @@
import { SemVer } from 'semver-utils'

/** A very generic object. */
export type Index<T = any> = {[key: string]: T}

Expand All @@ -23,7 +25,7 @@ export type Version = string
export type VersionSpec = string
export type VersionLevel = 'major' | 'minor' | 'patch'

export type FilterFunction = (dependencyName: string, version: string) => boolean
export type FilterFunction = (dependencyName: string, version: SemVer) => boolean
export type FilterRejectPattern = string | string[] | RegExp | RegExp[] | FilterFunction

export interface Packument {
Expand Down

0 comments on commit eff519d

Please sign in to comment.