Merge pull request #9 from AurorNZ/upgrade_node_version_and_dependencies

Upgrade node version and dependencies
This commit is contained in:
Daniil Samoylov 2024-01-30 15:21:11 +13:00 committed by GitHub
commit 3b1f3abc33
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 2368 additions and 48875 deletions

View file

@ -1,5 +1,8 @@
# Changelog
## v4.0.0
- [Possibly breaking: Updated dependencies and upgrade to node 20](https://github.com/AurorNZ/paths-filter/pull/9)
## v3.0.1
- [Merged master from upstream](https://github.com/AurorNZ/paths-filter/pull/3) - Thanks @jordanb-afs!
- [Fixed npm security alerts](https://github.com/AurorNZ/paths-filter/pull/5)

View file

@ -48,7 +48,7 @@ outputs:
changes:
description: JSON array with names of all filters matching any of changed files
runs:
using: 'node16'
using: 'node20'
main: 'dist/index.js'
branding:
color: blue

40159
dist/index.js vendored

File diff suppressed because one or more lines are too long

11007
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -10,7 +10,7 @@
"format": "prettier --write **/*.ts",
"format-check": "prettier --check **/*.ts",
"lint": "eslint src/**/*.ts",
"pack": "ncc build",
"pack": "ncc build -m",
"test": "jest",
"all": "npm run build && npm run format && npm run lint && npm run pack && npm test"
},
@ -28,26 +28,27 @@
"dependencies": {
"@actions/core": "^1.10.0",
"@actions/exec": "^1.1.1",
"@actions/github": "^2.2.0",
"@octokit/webhooks": "^7.6.2",
"micromatch": "^4.0.4"
"@actions/github": "^6.0.0",
"js-yaml": "^4.1.0",
"micromatch": "^4.0.5"
},
"devDependencies": {
"@types/jest": "^27.4.0",
"@types/js-yaml": "^3.12.4",
"@octokit/webhooks-types": "^7.3.1",
"@tsconfig/node20": "^20.1.2",
"@types/jest": "^29.5.11",
"@types/js-yaml": "^4.0.9",
"@types/micromatch": "^4.0.2",
"@types/node": "^14.0.5",
"@typescript-eslint/eslint-plugin": "^5.10.2",
"@typescript-eslint/parser": "^5.10.2",
"@vercel/ncc": "^0.33.1",
"eslint": "^8.17.0",
"eslint-plugin-github": "^4.3.6",
"eslint-plugin-jest": "^22.21.0",
"jest": "^27.4.7",
"jest-circus": "^27.4.6",
"js-yaml": "^3.14.0",
"prettier": "^2.0.5",
"ts-jest": "^27.1.3",
"typescript": "^4.2.0"
"@types/node": "^20.0.0",
"@typescript-eslint/eslint-plugin": "^6.20.0",
"@typescript-eslint/parser": "^6.20.0",
"@vercel/ncc": "^0.38.1",
"eslint": "^8.56.0",
"eslint-plugin-github": "^4.10.1",
"eslint-plugin-jest": "^27.6.3",
"jest": "^29.7.0",
"jest-circus": "^29.7.0",
"prettier": "^3.2.4",
"ts-jest": "^29.1.2",
"typescript": "^5.3.3"
}
}

View file

@ -1,6 +1,6 @@
import * as jsyaml from 'js-yaml'
import micromatch from 'micromatch'
import {File, ChangeStatus} from './file'
import {File} from './file'
// Type definition of object we expect to load from YAML
interface FilterYaml {
@ -15,13 +15,6 @@ const MatchOptions: micromatch.Options = {
dot: true
}
// Internal representation of one item in named filter rule
// Created as simplified form of data in FilterItemYaml
interface FilterRuleItem {
/** returns the list of matched files */
matcher: (files: string[]) => string[]
}
export interface FilterResults {
[key: string]: File[]
}
@ -42,7 +35,7 @@ export class Filter {
return
}
const doc = jsyaml.safeLoad(yaml) as FilterYaml
const doc = jsyaml.load(yaml) as FilterYaml
if (typeof doc !== 'object') {
this.throwInvalidFormatError('Root element is not an object')
}

View file

@ -1,7 +1,7 @@
import * as fs from 'fs'
import * as core from '@actions/core'
import * as github from '@actions/github'
import {Webhooks} from '@octokit/webhooks'
import {PullRequest, PushEvent} from '@octokit/webhooks-types'
import {Filter, FilterResults} from './filter'
import {File, ChangeStatus} from './file'
@ -77,7 +77,7 @@ async function getChangedFiles(token: string, base: string, ref: string, initial
if (base) {
core.warning(`'base' input parameter is ignored when action is triggered by pull request event`)
}
const pr = github.context.payload.pull_request as Webhooks.WebhookPayloadPullRequestPullRequest
const pr = github.context.payload.pull_request as PullRequest
if (token) {
return await getChangedFilesFromApi(token, pr)
}
@ -97,8 +97,7 @@ async function getChangedFiles(token: string, base: string, ref: string, initial
async function getChangedFilesFromGit(base: string, head: string, initialFetchDepth: number): Promise<File[]> {
const defaultBranch = github.context.payload.repository?.default_branch
const beforeSha =
github.context.eventName === 'push' ? (github.context.payload as Webhooks.WebhookPayloadPush).before : null
const beforeSha = github.context.eventName === 'push' ? (github.context.payload as PushEvent).before : null
const currentRef = await git.getCurrentRef()
@ -158,13 +157,10 @@ async function getChangedFilesFromGit(base: string, head: string, initialFetchDe
}
// Uses github REST api to get list of files changed in PR
async function getChangedFilesFromApi(
token: string,
prNumber: Webhooks.WebhookPayloadPullRequestPullRequest
): Promise<File[]> {
async function getChangedFilesFromApi(token: string, prNumber: PullRequest): Promise<File[]> {
core.startGroup(`Fetching list of changed files for PR#${prNumber.number} from Github API`)
try {
const client = new github.GitHub(token)
const client = github.getOctokit(token).rest
const per_page = 100
const files: File[] = []

View file

@ -1,12 +1,8 @@
{
"extends": "@tsconfig/node20/tsconfig.json",
"compilerOptions": {
"target": "es2019", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
"outDir": "./lib", /* Redirect output structure to the directory. */
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
"strict": true, /* Enable all strict type-checking options. */
"noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
"rootDir": "./src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
},
"exclude": ["node_modules", "**/*.test.ts"]
}