diff --git a/.prettierrc.json b/.prettierrc.json index 1339e9b..f3a86ce 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -6,6 +6,5 @@ "singleQuote": true, "trailingComma": "none", "bracketSpacing": false, - "arrowParens": "avoid", - "parser": "typescript" + "arrowParens": "avoid" } diff --git a/__tests__/context.test.ts b/__tests__/context.test.ts index 801696f..34be03d 100644 --- a/__tests__/context.test.ts +++ b/__tests__/context.test.ts @@ -2,7 +2,7 @@ import {beforeEach, describe, expect, test} from 'vitest'; import * as os from 'os'; import * as path from 'path'; -import * as context from '../src/context'; +import * as context from '../src/context.js'; describe('getInputs', () => { beforeEach(() => { diff --git a/eslint.config.js b/eslint.config.js deleted file mode 100644 index f1690e7..0000000 --- a/eslint.config.js +++ /dev/null @@ -1,58 +0,0 @@ -/* eslint-disable @typescript-eslint/no-require-imports */ -const {defineConfig, globalIgnores} = require('eslint/config'); -const {fixupConfigRules, fixupPluginRules} = require('@eslint/compat'); -const typescriptEslint = require('@typescript-eslint/eslint-plugin'); -const vitestPlugin = require('@vitest/eslint-plugin'); -const prettier = require('eslint-plugin-prettier'); -const globals = require('globals'); -const tsParser = require('@typescript-eslint/parser'); -const js = require('@eslint/js'); -const {FlatCompat} = require('@eslint/eslintrc'); - -// __dirname and __filename exist natively in CommonJS -const compat = new FlatCompat({ - baseDirectory: __dirname, - recommendedConfig: js.configs.recommended, - allConfig: js.configs.all -}); - -module.exports = defineConfig([ - globalIgnores(['dist/**/*', 'coverage/**/*', 'node_modules/**/*']), - { - // prettier-ignore - extends: fixupConfigRules( - compat.extends( - 'eslint:recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:@vitest/legacy-recommended', - 'plugin:prettier/recommended' - ) - ), - - plugins: { - '@typescript-eslint': fixupPluginRules(typescriptEslint), - '@vitest': fixupPluginRules(vitestPlugin), - prettier: fixupPluginRules(prettier) - }, - - languageOptions: { - globals: { - ...globals.node, - ...vitestPlugin.environments.env.globals - }, - parser: tsParser, - ecmaVersion: 'latest', - sourceType: 'module' - }, - - rules: { - '@typescript-eslint/no-require-imports': [ - 'error', - { - allowAsImport: true - } - ] - } - } -]); diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..530d49b --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,52 @@ +import {defineConfig} from 'eslint/config'; +import js from '@eslint/js'; +import tseslint from '@typescript-eslint/eslint-plugin'; +import vitest from '@vitest/eslint-plugin'; +import globals from 'globals'; +import eslintConfigPrettier from 'eslint-config-prettier/flat'; +import eslintPluginPrettier from 'eslint-plugin-prettier'; + +export default defineConfig([ + { + ignores: ['.yarn/**/*', 'coverage/**/*', 'dist/**/*'] + }, + js.configs.recommended, + ...tseslint.configs['flat/recommended'], + eslintConfigPrettier, + { + languageOptions: { + globals: { + ...globals.node + } + } + }, + { + files: ['__tests__/**'], + ...vitest.configs.recommended, + languageOptions: { + globals: { + ...globals.node, + ...vitest.environments.env.globals + } + }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/no-conditional-expect': 'error', + 'vitest/no-disabled-tests': 0 + } + }, + { + plugins: { + prettier: eslintPluginPrettier + }, + rules: { + 'prettier/prettier': 'error', + '@typescript-eslint/no-require-imports': [ + 'error', + { + allowAsImport: true + } + ] + } + } +]); diff --git a/package.json b/package.json index a7e5345..3bc21ce 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,12 @@ { "name": "docker-setup-docker", "description": "Set up Docker for use in GitHub Actions by downloading and installing a version of Docker CE", - "main": "lib/main.js", + "type": "module", + "main": "src/main.ts", "scripts": { "build": "ncc build src/main.ts --source-map --minify --license licenses.txt", - "lint": "yarn run prettier && yarn run eslint", - "format": "yarn run prettier:fix && yarn run eslint:fix", - "eslint": "eslint --max-warnings=0 .", - "eslint:fix": "eslint --fix .", - "prettier": "prettier --check \"./**/*.ts\"", - "prettier:fix": "prettier --write \"./**/*.ts\"", + "lint": "eslint --max-warnings=0 .", + "format": "eslint --fix .", "test": "vitest run", "all": "yarn run build && yarn run format && yarn test" }, @@ -30,8 +27,6 @@ "@docker/actions-toolkit": "^0.71.0" }, "devDependencies": { - "@eslint/compat": "^2.0.0", - "@eslint/eslintrc": "^3.3.3", "@eslint/js": "^9.39.2", "@types/node": "^20.19.27", "@typescript-eslint/eslint-plugin": "^8.50.0", @@ -42,8 +37,8 @@ "eslint": "^9.39.2", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.4", + "globals": "^17.3.0", "prettier": "^3.7.4", - "ts-node": "^10.9.2", "typescript": "^5.9.3", "vitest": "^4.0.18" } diff --git a/src/context.ts b/src/context.ts index 38287a6..3ab54fd 100644 --- a/src/context.ts +++ b/src/context.ts @@ -3,8 +3,8 @@ import path from 'path'; import * as core from '@actions/core'; import {parse} from 'csv-parse/sync'; -import {InstallSource} from '@docker/actions-toolkit/lib/docker/install'; -import {Util} from '@docker/actions-toolkit/lib/util'; +import {InstallSource} from '@docker/actions-toolkit/lib/docker/install.js'; +import {Util} from '@docker/actions-toolkit/lib/util.js'; export interface Inputs { source: InstallSource; diff --git a/src/main.ts b/src/main.ts index e945bd4..453011a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,13 +2,13 @@ import * as crypto from 'crypto'; import path from 'path'; import * as core from '@actions/core'; import * as actionsToolkit from '@docker/actions-toolkit'; -import {Install} from '@docker/actions-toolkit/lib/docker/install'; -import {Docker} from '@docker/actions-toolkit/lib/docker/docker'; -import {Install as RegclientInstall} from '@docker/actions-toolkit/lib/regclient/install'; -import {Install as UndockInstall} from '@docker/actions-toolkit/lib/undock/install'; +import {Install} from '@docker/actions-toolkit/lib/docker/install.js'; +import {Docker} from '@docker/actions-toolkit/lib/docker/docker.js'; +import {Install as RegclientInstall} from '@docker/actions-toolkit/lib/regclient/install.js'; +import {Install as UndockInstall} from '@docker/actions-toolkit/lib/undock/install.js'; -import * as context from './context'; -import * as stateHelper from './state-helper'; +import * as context from './context.js'; +import * as stateHelper from './state-helper.js'; const regctlDefaultVersion = 'v0.8.3'; const undockDefaultVersion = 'v0.10.0'; diff --git a/tsconfig.json b/tsconfig.json index c6f30f2..be1cc9f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,8 @@ { "compilerOptions": { + "module": "nodenext", + "moduleResolution": "nodenext", "esModuleInterop": true, - "target": "es6", - "module": "commonjs", "newLine": "lf", "outDir": "./lib", "rootDir": "./src", @@ -11,9 +11,7 @@ "resolveJsonModule": true, "useUnknownInCatchVariables": false, }, - "exclude": [ - "node_modules", - "**/*.test.ts", - "vitest.config.ts" + "include": [ + "src/**/*.ts" ] } diff --git a/yarn.lock b/yarn.lock index 928942c..2c2b03e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -401,15 +401,6 @@ __metadata: languageName: node linkType: hard -"@cspotcode/source-map-support@npm:^0.8.0": - version: 0.8.1 - resolution: "@cspotcode/source-map-support@npm:0.8.1" - dependencies: - "@jridgewell/trace-mapping": 0.3.9 - checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa - languageName: node - linkType: hard - "@docker/actions-toolkit@npm:^0.71.0": version: 0.71.0 resolution: "@docker/actions-toolkit@npm:0.71.0" @@ -654,20 +645,6 @@ __metadata: languageName: node linkType: hard -"@eslint/compat@npm:^2.0.0": - version: 2.0.0 - resolution: "@eslint/compat@npm:2.0.0" - dependencies: - "@eslint/core": ^1.0.0 - peerDependencies: - eslint: ^8.40 || 9 - peerDependenciesMeta: - eslint: - optional: true - checksum: b13e61d2f376744cfa4d2698f50ab12c13f92dbadc853211a8f293b282ab31940c0e7090db33b9be95887b7ebafc8c4f8c497ab39bb830ed5559cf21d079b39e - languageName: node - linkType: hard - "@eslint/config-array@npm:^0.21.1": version: 0.21.1 resolution: "@eslint/config-array@npm:0.21.1" @@ -697,16 +674,7 @@ __metadata: languageName: node linkType: hard -"@eslint/core@npm:^1.0.0": - version: 1.0.0 - resolution: "@eslint/core@npm:1.0.0" - dependencies: - "@types/json-schema": ^7.0.15 - checksum: 9f32f5c813d4336f94de3ed2f95140d89a842d0b3978254b6f5ddacaa1db5a05cf59d65055040242f91fb5a340638cd3b2bcca875c1b82279a6e63700c80c3cc - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^3.3.1, @eslint/eslintrc@npm:^3.3.3": +"@eslint/eslintrc@npm:^3.3.1": version: 3.3.3 resolution: "@eslint/eslintrc@npm:3.3.3" dependencies: @@ -815,20 +783,13 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": +"@jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.1 resolution: "@jridgewell/resolve-uri@npm:3.1.1" checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 - languageName: node - linkType: hard - "@jridgewell/sourcemap-codec@npm:^1.4.14": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" @@ -843,16 +804,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:0.3.9": - version: 0.3.9 - resolution: "@jridgewell/trace-mapping@npm:0.3.9" - dependencies: - "@jridgewell/resolve-uri": ^3.0.3 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef - languageName: node - linkType: hard - "@jridgewell/trace-mapping@npm:^0.3.31": version: 0.3.31 resolution: "@jridgewell/trace-mapping@npm:0.3.31" @@ -1465,34 +1416,6 @@ __metadata: languageName: node linkType: hard -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.8 - resolution: "@tsconfig/node10@npm:1.0.8" - checksum: b8d5fffbc6b17ef64ef74f7fdbccee02a809a063ade785c3648dae59406bc207f70ea2c4296f92749b33019fa36a5ae716e42e49cc7f1bbf0fd147be0d6b970a - languageName: node - linkType: hard - -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.9 - resolution: "@tsconfig/node12@npm:1.0.9" - checksum: a01b2400ab3582b86b589c6d31dcd0c0656f333adecde85d6d7d4086adb059808b82692380bb169546d189bf771ae21d02544a75b57bd6da4a5dd95f8567bec9 - languageName: node - linkType: hard - -"@tsconfig/node14@npm:^1.0.0": - version: 1.0.1 - resolution: "@tsconfig/node14@npm:1.0.1" - checksum: 976345e896c0f059867f94f8d0f6ddb8b1844fb62bf36b727de8a9a68f024857e5db97ed51d3325e23e0616a5e48c034ff51a8d595b3fe7e955f3587540489be - languageName: node - linkType: hard - -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.2 - resolution: "@tsconfig/node16@npm:1.0.2" - checksum: ca94d3639714672bbfd55f03521d3f56bb6a25479bd425da81faf21f13e1e9d15f40f97377dedbbf477a5841c5b0c8f4cd1b391f33553d750b9202c54c2c07aa - languageName: node - linkType: hard - "@tufjs/canonical-json@npm:2.0.0": version: 2.0.0 resolution: "@tufjs/canonical-json@npm:2.0.0" @@ -1938,13 +1861,6 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 - languageName: node - linkType: hard - "acorn@npm:^8.15.0": version: 8.15.0 resolution: "acorn@npm:8.15.0" @@ -1954,15 +1870,6 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.4.1": - version: 8.7.0 - resolution: "acorn@npm:8.7.0" - bin: - acorn: bin/acorn - checksum: e0f79409d68923fbf1aa6d4166f3eedc47955320d25c89a20cc822e6ba7c48c5963d5bc657bc242d68f7a4ac9faf96eef033e8f73656da6c640d4219935fdfd0 - languageName: node - linkType: hard - "agent-base@npm:6, agent-base@npm:^6.0.2": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -2096,13 +2003,6 @@ __metadata: languageName: node linkType: hard -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 - languageName: node - linkType: hard - "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" @@ -2435,13 +2335,6 @@ __metadata: languageName: node linkType: hard -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff - languageName: node - linkType: hard - "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.6": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" @@ -2505,21 +2398,12 @@ __metadata: languageName: node linkType: hard -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d - languageName: node - linkType: hard - "docker-setup-docker@workspace:.": version: 0.0.0-use.local resolution: "docker-setup-docker@workspace:." dependencies: "@actions/core": ^2.0.1 "@docker/actions-toolkit": ^0.71.0 - "@eslint/compat": ^2.0.0 - "@eslint/eslintrc": ^3.3.3 "@eslint/js": ^9.39.2 "@types/node": ^20.19.27 "@typescript-eslint/eslint-plugin": ^8.50.0 @@ -2530,8 +2414,8 @@ __metadata: eslint: ^9.39.2 eslint-config-prettier: ^10.1.8 eslint-plugin-prettier: ^5.5.4 + globals: ^17.3.0 prettier: ^3.7.4 - ts-node: ^10.9.2 typescript: ^5.9.3 vitest: ^4.0.18 languageName: unknown @@ -3145,6 +3029,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^17.3.0": + version: 17.3.0 + resolution: "globals@npm:17.3.0" + checksum: 4316ace3d0890ac3d72d50bfd723df93fd375cb4b328c503e1fae81dd73e4ab9c76051ae28ce02c2a6b049e9a8149e86e8861d185433d3af65c774976802a718 + languageName: node + linkType: hard + "graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" @@ -3691,13 +3582,6 @@ __metadata: languageName: node linkType: hard -"make-error@npm:^1.1.1": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 - languageName: node - linkType: hard - "make-fetch-happen@npm:^11.0.3": version: 11.1.1 resolution: "make-fetch-happen@npm:11.1.1" @@ -4915,44 +4799,6 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.9.2": - version: 10.9.2 - resolution: "ts-node@npm:10.9.2" - dependencies: - "@cspotcode/source-map-support": ^0.8.0 - "@tsconfig/node10": ^1.0.7 - "@tsconfig/node12": ^1.0.7 - "@tsconfig/node14": ^1.0.0 - "@tsconfig/node16": ^1.0.2 - acorn: ^8.4.1 - acorn-walk: ^8.1.1 - arg: ^4.1.0 - create-require: ^1.1.0 - diff: ^4.0.1 - make-error: ^1.1.1 - v8-compile-cache-lib: ^3.0.1 - yn: 3.1.1 - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: fde256c9073969e234526e2cfead42591b9a2aec5222bac154b0de2fa9e4ceb30efcd717ee8bc785a56f3a119bdd5aa27b333d9dbec94ed254bd26f8944c67ac - languageName: node - linkType: hard - "tslib@npm:^2.2.0": version: 2.6.1 resolution: "tslib@npm:2.6.1" @@ -5135,13 +4981,6 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache-lib@npm:^3.0.1": - version: 3.0.1 - resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 - languageName: node - linkType: hard - "vite@npm:^6.0.0 || ^7.0.0": version: 7.3.1 resolution: "vite@npm:7.3.1" @@ -5338,13 +5177,6 @@ __metadata: languageName: node linkType: hard -"yn@npm:3.1.1": - version: 3.1.1 - resolution: "yn@npm:3.1.1" - checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 - languageName: node - linkType: hard - "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0"