Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
f5e59cc
fix(deps): update dependency @directus/sdk to v15.1.0
renovate[bot] Apr 3, 2024
523d97a
fix(deps): update dependency openapi-typescript to v6.7.6
renovate[bot] Apr 1, 2025
54ef2d0
chore(deps): update dependency typescript to v5.9.3
renovate[bot] Oct 1, 2025
2c88aab
chore(deps): update dependency rollup to v4.59.0
renovate[bot] Feb 22, 2026
bb14f5f
chore(deps): update dependency @typescript-eslint/eslint-plugin to v7…
renovate[bot] Mar 5, 2026
364ca6d
chore(deps): update babel monorepo to v7.29.0
renovate[bot] Mar 13, 2026
6a8c39f
chore(deps): update dependency semantic-release to v23.1.1
renovate[bot] Mar 13, 2026
8037406
chore(deps): update dependency nanoid to v5.1.7
renovate[bot] Mar 15, 2026
572edfd
Merge pull request #102 from nuxtus/renovate/nanoid-5.x-lockfile
craigharman Mar 16, 2026
c51efbe
Merge pull request #93 from nuxtus/renovate/typescript-eslint-monorepo
craigharman Mar 16, 2026
b2b6337
Merge pull request #94 from nuxtus/renovate/babel-monorepo
craigharman Mar 16, 2026
75546d9
Merge pull request #95 from nuxtus/renovate/directus-sdk-15.x-lockfile
craigharman Mar 16, 2026
8a1b203
Merge pull request #96 from nuxtus/renovate/rollup-4.x
craigharman Mar 16, 2026
4fcd4f5
chore(deps): update dependency @rollup/plugin-babel to v6.1.0
renovate[bot] Mar 16, 2026
08a46e9
Merge pull request #100 from nuxtus/renovate/semantic-release-monorepo
craigharman Mar 16, 2026
72e28c6
Merge pull request #98 from nuxtus/renovate/openapi-typescript-6.x-lo…
craigharman Mar 16, 2026
484ce5b
Merge pull request #97 from nuxtus/renovate/typescript-5.x
craigharman Mar 16, 2026
7a7de95
Merge pull request #104 from nuxtus/renovate/rollup-plugin-babel-6.x
craigharman Mar 16, 2026
fac4ab9
chore(deps): update dependency vitest to v1.6.1
renovate[bot] Mar 16, 2026
63c6d73
chore(deps): update dependency @rollup/plugin-node-resolve to v15.3.1
renovate[bot] Mar 16, 2026
d7a0057
chore(deps): update dependency chalk to v5.6.2
renovate[bot] Mar 16, 2026
007555d
chore(deps): update dependency eslint to v8.57.1
renovate[bot] Mar 16, 2026
d0f669e
chore(deps): update dependency tslib to v2.8.1
renovate[bot] Mar 16, 2026
87aef28
chore(deps): update actions/setup-node action to v6
renovate[bot] Mar 16, 2026
4fa921c
chore(deps): update dependency @rollup/plugin-babel to v7
renovate[bot] Mar 16, 2026
04369a0
chore(deps): update node.js to v24
renovate[bot] Mar 16, 2026
b147d0b
Merge pull request #110 from nuxtus/renovate/rollup-plugin-babel-7.x
craigharman Mar 16, 2026
f2cbf0e
Merge pull request #109 from nuxtus/renovate/actions-setup-node-6.x
craigharman Mar 16, 2026
e11c224
Merge pull request #108 from nuxtus/renovate/tslib-2.x
craigharman Mar 16, 2026
c08115e
Merge pull request #107 from nuxtus/renovate/eslint-monorepo
craigharman Mar 16, 2026
e98e997
Merge pull request #106 from nuxtus/renovate/chalk-5.x-lockfile
craigharman Mar 16, 2026
4adaf28
Merge pull request #101 from nuxtus/renovate/vitest-monorepo
craigharman Mar 16, 2026
2fc6a65
Merge pull request #105 from nuxtus/renovate/rollup-plugin-node-resol…
craigharman Mar 16, 2026
d51ed01
chore(deps): update dependency @rollup/plugin-commonjs to v25.0.8
renovate[bot] Mar 16, 2026
4d18ebc
chore(deps): update dependency @rollup/plugin-typescript to v12
renovate[bot] Mar 16, 2026
71a8b04
chore(deps): update dependency @typescript-eslint/eslint-plugin to v8
renovate[bot] Mar 16, 2026
35c8e44
fix(deps): update dependency @directus/sdk to v21
renovate[bot] Mar 16, 2026
5c4d631
fix(deps): update dependency openapi-typescript to v7
renovate[bot] Mar 16, 2026
290294f
Merge pull request #118 from nuxtus/renovate/node-24.x
craigharman Mar 16, 2026
d053bc4
Merge pull request #119 from nuxtus/renovate/directus-sdk-21.x
craigharman Mar 16, 2026
ab11385
Merge pull request #121 from nuxtus/renovate/openapi-typescript-7.x
craigharman Mar 16, 2026
a0e4d40
Merge pull request #103 from nuxtus/renovate/rollup-plugin-commonjs-25.x
craigharman Mar 16, 2026
d7e7bcd
fix(deps): update dependency camelcase to v9
renovate[bot] Mar 16, 2026
9247044
Merge pull request #115 from nuxtus/renovate/major-typescript-eslint-…
craigharman Mar 16, 2026
229b882
Merge pull request #120 from nuxtus/renovate/camelcase-9.x
craigharman Mar 16, 2026
6ea71f5
chore(deps): update dependency eslint to v10
renovate[bot] Mar 16, 2026
7200d5c
Merge pull request #114 from nuxtus/renovate/rollup-plugin-typescript…
craigharman Mar 16, 2026
e7bb0e0
Merge pull request #116 from nuxtus/renovate/major-eslint-monorepo
craigharman Mar 16, 2026
ff0a111
chore(deps): update dependency @rollup/plugin-commonjs to v29
renovate[bot] Mar 16, 2026
6f6ff56
Merge pull request #112 from nuxtus/renovate/rollup-plugin-commonjs-29.x
craigharman Mar 16, 2026
bb55841
chore(deps): update dependency @rollup/plugin-node-resolve to v16
renovate[bot] Mar 16, 2026
81d68f5
chore(deps): update dependency vitest to v4
renovate[bot] Mar 16, 2026
0d00a4c
Merge pull request #113 from nuxtus/renovate/rollup-plugin-node-resol…
craigharman Mar 16, 2026
22aa2ad
Merge pull request #117 from nuxtus/renovate/major-vitest-monorepo
craigharman Mar 16, 2026
c870807
fix: update for openapi-typescript v7 and vitest 4 compatibility
craigharman Mar 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: "20.x"
node-version: "24.x"
- run: npm ci
- run: npm run build --if-present
- run: npm test
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: "20.x"
node-version: "24.x"
- run: npm ci
# - run: npm run build --if-present
- run: npm test
Expand Down
17,979 changes: 9,236 additions & 8,743 deletions package-lock.json

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"module": "dist/generator.es.js",
"type": "module",
"engines": {
"node": "20"
"node": "24"
},
"scripts": {
"test": "vitest",
Expand Down Expand Up @@ -34,33 +34,33 @@
},
"homepage": "https://github.com/nuxtus/generator#readme",
"devDependencies": {
"@babel/core": "7.23.9",
"@babel/preset-env": "7.23.9",
"@rollup/plugin-babel": "6.0.4",
"@rollup/plugin-commonjs": "25.0.7",
"@rollup/plugin-node-resolve": "15.2.3",
"@rollup/plugin-typescript": "11.1.6",
"@babel/core": "7.29.0",
"@babel/preset-env": "7.29.0",
"@rollup/plugin-babel": "7.0.0",
"@rollup/plugin-commonjs": "29.0.2",
"@rollup/plugin-node-resolve": "16.0.3",
"@rollup/plugin-typescript": "12.3.0",
"@semantic-release/changelog": "6.0.3",
"@semantic-release/git": "10.0.1",
"@semantic-release/github": "9.2.6",
"@semantic-release/release-notes-generator": "12.1.0",
"@types/nunjucks": "3.2.6",
"@typescript-eslint/eslint-plugin": "7.0.2",
"eslint": "8.56.0",
"rollup": "4.12.0",
"@typescript-eslint/eslint-plugin": "8.57.0",
"eslint": "10.0.3",
"rollup": "4.59.0",
"rollup-plugin-copy-assets": "2.0.3",
"semantic-release": "23.0.2",
"tslib": "2.6.2",
"typescript": "5.3.3",
"vitest": "1.3.1"
"semantic-release": "23.1.1",
"tslib": "2.8.1",
"typescript": "5.9.3",
"vitest": "4.1.0"
},
"dependencies": {
"@directus/sdk": "^15.0.0",
"camelcase": "^8.0.0",
"@directus/sdk": "^21.0.0",
"camelcase": "^9.0.0",
"chalk": "^5.0.1",
"nanoid": "^5.0.5",
"nunjucks": "^3.2.3",
"openapi-typescript": "^6.0.0"
"openapi-typescript": "^7.0.0"
},
"release": {
"branches": "main",
Expand Down Expand Up @@ -120,6 +120,6 @@
]
},
"volta": {
"node": "20.11.1"
"node": "24.14.0"
}
}
5 changes: 3 additions & 2 deletions src/types.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { OpenApiSpecOutput, readOpenApiSpec } from "@directus/sdk"
import openapiTS, { OpenAPI3 } from "openapi-typescript"
import openapiTS, { astToString, OpenAPI3 } from "openapi-typescript"

import Chalk from "chalk"
import type { Directus } from "."
Expand All @@ -15,7 +15,8 @@ export async function createTypes(
if (chalk === undefined) chalk = Chalk
try {
const openapi: OpenApiSpecOutput = await directus.request(readOpenApiSpec())
const types = await openapiTS(openapi as OpenAPI3)
const ast = await openapiTS(openapi as OpenAPI3)
const types = astToString(ast)
if (!fs.existsSync("interfaces")) {
fs.mkdirSync("interfaces")
}
Expand Down
70 changes: 35 additions & 35 deletions test/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,41 @@ import { afterAll, afterEach, beforeAll, expect, test, vi } from "vitest"
import Generator from "../src/index"
import fs from "node:fs"

vi.mock("@directus/sdk", () => {
const createDirectus = vi.fn().mockImplementation(() => {
return {
with: vi.fn().mockImplementation(() => {
return {
with: vi.fn().mockImplementation(() => {
return {
login: vi.fn(),
request: vi.fn().mockImplementation(() => {
return {
openapi: "3.0.0",
components: {},
}
}),
setToken: vi.fn(),
}
}),
}
}),
}
})

const rest = vi.fn().mockImplementation(() => {
return {}
})

const authentication = vi.fn().mockImplementation(() => {
return {}
})

const readOpenApiSpec = vi.fn()

return { createDirectus, rest, authentication, readOpenApiSpec }
})

let nuxtus: Generator
const envBackup = process.env

Expand All @@ -11,41 +46,6 @@ beforeAll(() => {
vi.stubEnv("NUXTUS_DIRECTUS_ADMIN_EMAIL", "admin@example.com")
vi.stubEnv("NUXTUS_DIRECTUS_ADMIN_PASSWORD", "password")

vi.mock("@directus/sdk", () => {
const createDirectus = vi.fn().mockImplementation(() => {
return {
with: vi.fn().mockImplementation(() => {
return {
with: vi.fn().mockImplementation(() => {
return {
login: vi.fn(),
request: vi.fn().mockImplementation(() => {
return {
openapi: "3.0.0",
components: {},
}
}),
setToken: vi.fn(),
}
}),
}
}),
}
})

const rest = vi.fn().mockImplementation(() => {
return {}
})

const authentication = vi.fn().mockImplementation(() => {
return {}
})

const readOpenApiSpec = vi.fn()

return { createDirectus, rest, authentication, readOpenApiSpec }
})

nuxtus = new Generator()
})

Expand Down
2 changes: 1 addition & 1 deletion test/mocks/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -7201,7 +7201,7 @@
"patch": {
"summary": "Update an Extension",
"description": "Update an existing extension.",
"operationId": "updateExtensions",
"operationId": "updateBundledExtension",
"parameters": [
{
"in": "path",
Expand Down
5 changes: 3 additions & 2 deletions test/types.test.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { afterAll, afterEach, beforeAll, expect, test, vi } from "vitest"

import fs from "node:fs"
import openapiTS from "openapi-typescript"
import openapiTS, { astToString } from "openapi-typescript"

// Test open API to typescript conversion
test("Convert open API to Typescript", async () => {
const openapiJSON = fs.readFileSync("./test/mocks/openapi.json", "utf-8")
const openapi = JSON.parse(openapiJSON)
const types = await openapiTS(openapi)
const ast = await openapiTS(openapi)
const types = astToString(ast)
expect(types).toContain("ItemsTestNuxtus")
})