From a3dd2434f2273a4d141a5fdd10d0aaad18a896a4 Mon Sep 17 00:00:00 2001 From: Daniel Freytag Date: Wed, 24 Jul 2024 09:07:39 +0200 Subject: [PATCH 1/2] feat: add biome config --- biome.json | 34 ++++++++++++++++++++++++++++++++++ openapi.json | 15 ++------------- 2 files changed, 36 insertions(+), 13 deletions(-) create mode 100644 biome.json diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..c206707 --- /dev/null +++ b/biome.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", + "formatter": { + "indentStyle": "tab", + "formatWithErrors": true + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "semicolons": "asNeeded", + "trailingCommas": "es5" + }, + "globals": ["Bun"] + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "all": true, + "noNodejsModules": "off" + }, + "performance": { + "all": true + }, + "security": { + "all": true + } + } + }, + "organizeImports": { + "enabled": true + } +} diff --git a/openapi.json b/openapi.json index bca55c9..502a1c8 100644 --- a/openapi.json +++ b/openapi.json @@ -984,12 +984,7 @@ "role": { "type": "string", "example": "artist", - "enum": [ - "artist", - "author", - "composer", - "performer" - ] + "enum": ["artist", "author", "composer", "performer"] }, "normDb": { "type": "object", @@ -1094,13 +1089,7 @@ "properties": { "type": { "type": "string", - "enum": [ - "cover", - "artist", - "anchor", - "audio", - "video" - ], + "enum": ["cover", "artist", "anchor", "audio", "video"], "example": "cover" }, "url": { From 32b931c0e9fad33ebc50b98b66e6bc16403a99bd Mon Sep 17 00:00:00 2001 From: Daniel Freytag Date: Wed, 24 Jul 2024 10:12:05 +0200 Subject: [PATCH 2/2] feat: add new prettier config --- .vscode/extensions.json | 3 ++ .vscode/settings.json | 19 ++++++++++++ biome.json | 3 ++ bun.lockb | Bin 236272 -> 342008 bytes openapi.yaml | 63 ++++++++++++++++++---------------------- package.json | 5 ++-- 6 files changed, 56 insertions(+), 37 deletions(-) create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..fe6bc7a --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["biomejs.biome", "esbenp.prettier-vscode"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..4883d62 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,19 @@ +{ + "editor.defaultFormatter": "biomejs.biome", + "editor.codeActionsOnSave": { + "quickfix.biome": "explicit", + "source.organizeImports.biome": "explicit" + }, + "[javascript]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[json]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[jsonc]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[yaml]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } +} diff --git a/biome.json b/biome.json index c206707..ec22e05 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,8 @@ { "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", + "files": { + "maxSize": 90485760 + }, "formatter": { "indentStyle": "tab", "formatWithErrors": true diff --git a/bun.lockb b/bun.lockb index 9a31b1ff69c32ccacc28220fc6dfc9dec00c1a85..709d08a599b4842b3504f6454a83f8327a45596b 100755 GIT binary patch delta 90587 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 i;!fO4oH7gc%hSN|X0UfLx9 delta 23404 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 X5S~$N2dMr;)Z)$ArTCWz4dnj;Vg3&o diff --git a/openapi.yaml b/openapi.yaml index a387bfb..f138270 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -4,16 +4,16 @@ info: description: >- ARD system to distribute real-time (live) metadata for primarily radio broadcasts. - termsOfService: 'https://www.ard.de' + termsOfService: https://www.ard.de contact: email: lab@swr.de license: name: European Union Public License 1.2 - url: 'https://spdx.org/licenses/EUPL-1.2.html' + url: https://spdx.org/licenses/EUPL-1.2.html version: 1.8.0 externalDocs: description: ARD Eventhub Documentation - url: 'https://swrlab.github.io/ard-eventhub/' + url: https://swrlab.github.io/ard-eventhub/ servers: - url: / description: Local (domain-relative) environment @@ -131,7 +131,7 @@ paths: application/json: schema: $ref: '#/components/schemas/errorInternalServerError' - '/events/de.ard.eventhub.v1.radio.track.next': + /events/de.ard.eventhub.v1.radio.track.next: post: tags: - events @@ -168,7 +168,7 @@ paths: application/json: schema: $ref: '#/components/schemas/errorInternalServerError' - '/events/de.ard.eventhub.v1.radio.track.playing': + /events/de.ard.eventhub.v1.radio.track.playing: post: tags: - events @@ -289,7 +289,7 @@ paths: application/json: schema: $ref: '#/components/schemas/errorInternalServerError' - '/subscriptions/{name}': + /subscriptions/{name}: get: tags: - subscriptions @@ -413,10 +413,10 @@ components: description: > New event to be distributed to subscribers. - The Eventhub format validation expects only a subset of these - variables as minimum set. All other fields are technically optional, - but **highly encouraged** to be included, so a best-possible metadata - exchange is possible. + The Eventhub format validation expects only a subset of these variables + as minimum set. All other fields are technically optional, but **highly + encouraged** to be included, so a best-possible metadata exchange is + possible. The subset is defined in the list of required fields of Schemas `eventV1PostBody`, resulting in this body: @@ -450,9 +450,9 @@ components: Event created *Note:* The first request of an event for an externalId that is not - registered yet, will return the status `failed: 1`. This indicates - that a new topic for the externalId has been created, and the request - needs to be repeated: + registered yet, will return the status `failed: 1`. This indicates that + a new topic for the externalId has been created, and the request needs + to be repeated: ```json @@ -466,7 +466,6 @@ components: If the request returns the status `blocked: 1`, it indicates that you are not allowed to publish events under the given publisherId. - content: application/json: schema: @@ -593,7 +592,6 @@ components: trace: type: string example: null - services: type: object required: @@ -603,24 +601,26 @@ components: properties: type: type: string - example: 'PermanentLivestream' + example: PermanentLivestream enum: - - 'EventLivestream' - - 'PermanentLivestream' + - EventLivestream + - PermanentLivestream externalId: type: string - example: 'crid://swr.de/123450' + example: crid://swr.de/123450 publisherId: type: string - description: | - External ID or globally unique identifier (Core ID) for the associated publisher. - When no Core ID is provided, the External ID will be converted by Eventhub. + description: > + External ID or globally unique identifier (Core ID) for the + associated publisher. + + When no Core ID is provided, the External ID will be converted by + Eventhub. example: '248000' id: type: string description: Globally unique identifier, created by Eventhub - example: 'urn:ard:permanent-livestream:49267f7d67be180d' - + example: urn:ard:permanent-livestream:49267f7d67be180d reference: type: object additionalProperties: false @@ -656,7 +656,6 @@ components: items: type: string example: https://normdb.ivz.cn.ard.de/sendereihe/427 - eventV1PostBody: additionalProperties: false required: @@ -830,10 +829,10 @@ components: example: cover url: type: string - example: 'https://example.com/cover.jpg' + example: https://example.com/cover.jpg templateUrl: type: string - example: 'https://example.com/cover.jpg?width={width}' + example: https://example.com/cover.jpg?width={width} nullable: true description: type: string @@ -861,7 +860,6 @@ components: be a true string in the future, do not expect this string to remain numbers only! example: '1234567890' - eventV1ResBody: type: object properties: @@ -882,7 +880,6 @@ components: trace: type: string example: null - subscriptionPost: required: - type @@ -905,7 +902,7 @@ components: url: type: string description: Publicly accessible URL that should receive the events - example: 'https://example.com/my/webhook/for/this/subscription' + example: https://example.com/my/webhook/for/this/subscription contact: type: string description: >- @@ -916,13 +913,11 @@ components: type: string description: ID of the topic to subscribe to example: topic-id-to-subscribe-to - subscriptionsList: type: array items: allOf: - $ref: '#/components/schemas/subscriptionResponse' - subscriptionResponse: type: object properties: @@ -969,7 +964,7 @@ components: url: type: string description: Publicly accessible URL that should receive the events - example: 'https://example.com/my/webhook/for/this/subscription' + example: https://example.com/my/webhook/for/this/subscription contact: type: string description: >- @@ -980,7 +975,6 @@ components: type: string description: ID of the institution the current user belongs to example: urn:ard:institution:institution-id - subscriptionDeleted: type: object properties: @@ -990,7 +984,6 @@ components: trace: type: string example: null - topicResponse: type: array items: diff --git a/package.json b/package.json index 6c8c309..632a233 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "docker:run": "docker run --env-file .env -p 8080:8080 --name ard-eventhub swr/ard-eventhub", "docker:scan": "bun docker:build && docker scout quickview", "docker:clean": "docker rm ard-eventhub", + "openapi:format": "bunx biome format openapi.json --write && bunx prettier openapi.yaml -w", "license": "bunx license-compliance", "reinstall": "rm -rf node_modules && rm bun.lockb && bun install" }, @@ -45,7 +46,7 @@ }, "devDependencies": { "@biomejs/biome": "^1.8.2", - "@swrlab/swr-prettier-config": "^0.3.0", + "@swrlab/style-guide": "swrlab/style-guide", "chai": "^4.4.1", "chai-http": "^4.4.0", "docsify-cli": "^4.4.4", @@ -60,5 +61,5 @@ "strip-ansi": "^6.0.1", "update-notifier": "^5.1.0" }, - "prettier": "@swrlab/swr-prettier-config" + "prettier": "@swrlab/style-guide/prettier" }