diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..185a165
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,24 @@
+name: Test
+
+on:
+ push:
+ branches: [main]
+ pull_request:
+ branches: [main]
+ workflow_dispatch:
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ node: [18, 20, 22]
+ name: Node ${{ matrix.node }} test
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: ${{ matrix.node }}
+ - run: npm ci
+ - run: npm run lint
+ - run: npm test
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 66659c2..64dbaee 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -8,6 +8,7 @@ export default [
globals: {
...globals.browser,
...globals.node,
+ ...globals.jest,
SwaggerUIBundle: 'readonly',
Redoc: 'readonly',
},
diff --git a/index.mjs b/index.mjs
deleted file mode 100755
index ad0ea80..0000000
--- a/index.mjs
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/env node
-import { program } from 'commander'
-import inquirer from 'inquirer'
-import fs from 'fs'
-import yaml from 'js-yaml'
-import ejs from 'ejs'
-import path from 'path'
-import { fileURLToPath } from 'url'
-import $RefParser from '@apidevtools/json-schema-ref-parser'
-
-const UI = ['stoplight', 'swagger', 'redoc']
-const THEME = ['light', 'dark']
-const ENABLE_INPUT_EXTS = ['.json', '.yaml', '.yml']
-
-const __filename = fileURLToPath(import.meta.url)
-const __dirname = path.dirname(__filename)
-
-// Define CLI options
-program
- .option('-i, --input ', 'Input OpenAPI JSON / YAML file')
- .option('-o, --output