diff --git a/components.d.ts b/components.d.ts index 3e65c3cc..02aecea3 100644 --- a/components.d.ts +++ b/components.d.ts @@ -131,17 +131,27 @@ declare module '@vue/runtime-core' { MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default'] NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] NCheckbox: typeof import('naive-ui')['NCheckbox'] + NCode: typeof import('naive-ui')['NCode'] NCollapseTransition: typeof import('naive-ui')['NCollapseTransition'] + NColorPicker: typeof import('naive-ui')['NColorPicker'] NConfigProvider: typeof import('naive-ui')['NConfigProvider'] NDivider: typeof import('naive-ui')['NDivider'] NEllipsis: typeof import('naive-ui')['NEllipsis'] + NFormItem: typeof import('naive-ui')['NFormItem'] + NGi: typeof import('naive-ui')['NGi'] + NGrid: typeof import('naive-ui')['NGrid'] NH1: typeof import('naive-ui')['NH1'] NH3: typeof import('naive-ui')['NH3'] NIcon: typeof import('naive-ui')['NIcon'] + NInputNumber: typeof import('naive-ui')['NInputNumber'] NLayout: typeof import('naive-ui')['NLayout'] NLayoutSider: typeof import('naive-ui')['NLayoutSider'] NMenu: typeof import('naive-ui')['NMenu'] + NScrollbar: typeof import('naive-ui')['NScrollbar'] + NSlider: typeof import('naive-ui')['NSlider'] NSpace: typeof import('naive-ui')['NSpace'] + NSpin: typeof import('naive-ui')['NSpin'] + NSwitch: typeof import('naive-ui')['NSwitch'] NTable: typeof import('naive-ui')['NTable'] NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default'] OtpCodeGeneratorAndValidator: typeof import('./src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue')['default'] diff --git a/src/tools/ascii-text-drawer/index.ts b/src/tools/ascii-text-drawer/index.ts index cc1ba86c..a5fbc8d8 100644 --- a/src/tools/ascii-text-drawer/index.ts +++ b/src/tools/ascii-text-drawer/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ component: () => import('./ascii-text-drawer.vue'), icon: Artboard, createdAt: new Date('2024-03-03'), + category: 'Text', }); diff --git a/src/tools/base64-file-converter/index.ts b/src/tools/base64-file-converter/index.ts index 4d94402b..d737f7ae 100644 --- a/src/tools/base64-file-converter/index.ts +++ b/src/tools/base64-file-converter/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['base64', 'converter', 'upload', 'image', 'file', 'conversion', 'web', 'data', 'format'], component: () => import('./base64-file-converter.vue'), icon: FileDigit, + category: 'Converter', }); diff --git a/src/tools/base64-string-converter/index.ts b/src/tools/base64-string-converter/index.ts index e51d54df..521e87e2 100644 --- a/src/tools/base64-string-converter/index.ts +++ b/src/tools/base64-string-converter/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./base64-string-converter.vue'), icon: FileDigit, redirectFrom: ['/file-to-base64', '/base64-converter'], + category: 'Converter', }); diff --git a/src/tools/basic-auth-generator/index.ts b/src/tools/basic-auth-generator/index.ts index eff6eae3..ae3bd90a 100644 --- a/src/tools/basic-auth-generator/index.ts +++ b/src/tools/basic-auth-generator/index.ts @@ -19,4 +19,5 @@ export const tool = defineTool({ ], component: () => import('./basic-auth-generator.vue'), icon: PasswordRound, + category: 'Web', }); diff --git a/src/tools/bcrypt/index.ts b/src/tools/bcrypt/index.ts index 9c80c694..ede82004 100644 --- a/src/tools/bcrypt/index.ts +++ b/src/tools/bcrypt/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['bcrypt', 'hash', 'compare', 'password', 'salt', 'round', 'storage', 'crypto'], component: () => import('./bcrypt.vue'), icon: LockSquare, + category: 'Crypto', }); diff --git a/src/tools/benchmark-builder/index.ts b/src/tools/benchmark-builder/index.ts index 426d287a..1f464701 100644 --- a/src/tools/benchmark-builder/index.ts +++ b/src/tools/benchmark-builder/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./benchmark-builder.vue'), icon: SpeedFilled, createdAt: new Date('2023-04-05'), + category: 'Measurement', }); diff --git a/src/tools/bip39-generator/index.ts b/src/tools/bip39-generator/index.ts index 40582da4..0880d404 100644 --- a/src/tools/bip39-generator/index.ts +++ b/src/tools/bip39-generator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['BIP39', 'passphrase', 'generator', 'mnemonic', 'entropy'], component: () => import('./bip39-generator.vue'), icon: AlignJustified, + category: 'Crypto', }); diff --git a/src/tools/camera-recorder/index.ts b/src/tools/camera-recorder/index.ts index 5cda41f3..6c18a9cb 100644 --- a/src/tools/camera-recorder/index.ts +++ b/src/tools/camera-recorder/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./camera-recorder.vue'), icon: Camera, createdAt: new Date('2023-05-15'), + category: 'Images and videos', }); diff --git a/src/tools/case-converter/index.ts b/src/tools/case-converter/index.ts index 14d7ec12..b0c84135 100644 --- a/src/tools/case-converter/index.ts +++ b/src/tools/case-converter/index.ts @@ -23,4 +23,5 @@ export const tool = defineTool({ ], component: () => import('./case-converter.vue'), icon: LetterCaseToggle, + category: 'Converter', }); diff --git a/src/tools/chmod-calculator/index.ts b/src/tools/chmod-calculator/index.ts index e6b39df8..27ce07e4 100644 --- a/src/tools/chmod-calculator/index.ts +++ b/src/tools/chmod-calculator/index.ts @@ -20,4 +20,5 @@ export const tool = defineTool({ ], component: () => import('./chmod-calculator.vue'), icon: FileInvoice, + category: 'Development', }); diff --git a/src/tools/chronometer/index.ts b/src/tools/chronometer/index.ts index d7d8196a..dea6ffeb 100644 --- a/src/tools/chronometer/index.ts +++ b/src/tools/chronometer/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['chronometer', 'time', 'lap', 'duration', 'measure', 'pause', 'resume', 'stopwatch'], component: () => import('./chronometer.vue'), icon: TimerOutlined, + category: 'Measurement', }); diff --git a/src/tools/color-converter/index.ts b/src/tools/color-converter/index.ts index 9a295e2b..299eee4e 100644 --- a/src/tools/color-converter/index.ts +++ b/src/tools/color-converter/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./color-converter.vue'), icon: Palette, redirectFrom: ['/color-picker-converter'], + category: 'Converter', }); diff --git a/src/tools/crontab-generator/index.ts b/src/tools/crontab-generator/index.ts index 429d6e14..1083f1da 100644 --- a/src/tools/crontab-generator/index.ts +++ b/src/tools/crontab-generator/index.ts @@ -23,4 +23,5 @@ export const tool = defineTool({ ], component: () => import('./crontab-generator.vue'), icon: Alarm, + category: 'Development', }); diff --git a/src/tools/date-time-converter/index.ts b/src/tools/date-time-converter/index.ts index b0413fc0..09eacf86 100644 --- a/src/tools/date-time-converter/index.ts +++ b/src/tools/date-time-converter/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['date', 'time', 'converter', 'iso', 'utc', 'timezone', 'year', 'month', 'day', 'minute', 'seconde'], component: () => import('./date-time-converter.vue'), icon: Calendar, + category: 'Converter', }); diff --git a/src/tools/device-information/index.ts b/src/tools/device-information/index.ts index 44d91598..9f4f1162 100644 --- a/src/tools/device-information/index.ts +++ b/src/tools/device-information/index.ts @@ -21,4 +21,5 @@ export const tool = defineTool({ ], component: () => import('./device-information.vue'), icon: DeviceDesktop, + category: 'Web', }); diff --git a/src/tools/docker-run-to-docker-compose-converter/index.ts b/src/tools/docker-run-to-docker-compose-converter/index.ts index 0ecc4b0b..2e7f4226 100644 --- a/src/tools/docker-run-to-docker-compose-converter/index.ts +++ b/src/tools/docker-run-to-docker-compose-converter/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['docker', 'run', 'compose', 'yaml', 'yml', 'convert', 'deamon'], component: () => import('./docker-run-to-docker-compose-converter.vue'), icon: BrandDocker, + category: 'Development', }); diff --git a/src/tools/email-normalizer/index.ts b/src/tools/email-normalizer/index.ts index 299a30f7..47ec2e21 100644 --- a/src/tools/email-normalizer/index.ts +++ b/src/tools/email-normalizer/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ component: () => import('./email-normalizer.vue'), icon: Mail, createdAt: new Date('2024-08-15'), + category: 'Development', }); diff --git a/src/tools/emoji-picker/index.ts b/src/tools/emoji-picker/index.ts index 3a28cf0f..c360bb34 100644 --- a/src/tools/emoji-picker/index.ts +++ b/src/tools/emoji-picker/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./emoji-picker.vue'), icon: MoodSmile, createdAt: new Date('2023-08-07'), + category: 'Text', }); diff --git a/src/tools/encryption/index.ts b/src/tools/encryption/index.ts index c8dd85db..4a25415b 100644 --- a/src/tools/encryption/index.ts +++ b/src/tools/encryption/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./encryption.vue'), icon: Lock, redirectFrom: ['/cypher'], + category: 'Crypto', }); diff --git a/src/tools/eta-calculator/index.ts b/src/tools/eta-calculator/index.ts index 5016ab66..6360779d 100644 --- a/src/tools/eta-calculator/index.ts +++ b/src/tools/eta-calculator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['eta', 'calculator', 'estimated', 'time', 'arrival', 'average'], component: () => import('./eta-calculator.vue'), icon: Hourglass, + category: 'Math', }); diff --git a/src/tools/git-memo/index.ts b/src/tools/git-memo/index.ts index f65ffe07..f005138d 100644 --- a/src/tools/git-memo/index.ts +++ b/src/tools/git-memo/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['git', 'push', 'force', 'pull', 'commit', 'amend', 'rebase', 'merge', 'reset', 'soft', 'hard', 'lease'], component: () => import('./git-memo.vue'), icon: BrandGit, + category: 'Development', }); diff --git a/src/tools/hash-text/index.ts b/src/tools/hash-text/index.ts index 2070e41d..1f362886 100644 --- a/src/tools/hash-text/index.ts +++ b/src/tools/hash-text/index.ts @@ -24,4 +24,5 @@ export const tool = defineTool({ component: () => import('./hash-text.vue'), icon: EyeOff, redirectFrom: ['/hash'], + category: 'Crypto', }); diff --git a/src/tools/hmac-generator/index.ts b/src/tools/hmac-generator/index.ts index 3500684e..972792ca 100644 --- a/src/tools/hmac-generator/index.ts +++ b/src/tools/hmac-generator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['hmac', 'generator', 'MD5', 'SHA1', 'SHA256', 'SHA224', 'SHA512', 'SHA384', 'SHA3', 'RIPEMD160'], component: () => import('./hmac-generator.vue'), icon: ShortTextRound, + category: 'Crypto', }); diff --git a/src/tools/html-entities/index.ts b/src/tools/html-entities/index.ts index e292f087..9dd4188b 100644 --- a/src/tools/html-entities/index.ts +++ b/src/tools/html-entities/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['html', 'entities', 'escape', 'unescape', 'special', 'characters', 'tags'], component: () => import('./html-entities.vue'), icon: Code, + category: 'Web', }); diff --git a/src/tools/html-wysiwyg-editor/index.ts b/src/tools/html-wysiwyg-editor/index.ts index 3a2ab007..2ac0797f 100644 --- a/src/tools/html-wysiwyg-editor/index.ts +++ b/src/tools/html-wysiwyg-editor/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['html', 'wysiwyg', 'editor', 'p', 'ul', 'ol', 'converter', 'live'], component: () => import('./html-wysiwyg-editor.vue'), icon: Edit, + category: 'Web', }); diff --git a/src/tools/http-status-codes/index.ts b/src/tools/http-status-codes/index.ts index b3138943..c30d0515 100644 --- a/src/tools/http-status-codes/index.ts +++ b/src/tools/http-status-codes/index.ts @@ -17,4 +17,5 @@ export const tool = defineTool({ component: () => import('./http-status-codes.vue'), icon: HttpRound, createdAt: new Date('2023-04-13'), + category: 'Web', }); diff --git a/src/tools/iban-validator-and-parser/index.ts b/src/tools/iban-validator-and-parser/index.ts index ff7ff135..9dcf552d 100644 --- a/src/tools/iban-validator-and-parser/index.ts +++ b/src/tools/iban-validator-and-parser/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./iban-validator-and-parser.vue'), icon: Bank, createdAt: new Date('2023-08-26'), + category: 'Data', }); diff --git a/src/tools/index.ts b/src/tools/index.ts index 388cfaf4..1768051d 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -1,196 +1,19 @@ -import { tool as base64FileConverter } from './base64-file-converter'; -import { tool as base64StringConverter } from './base64-string-converter'; -import { tool as basicAuthGenerator } from './basic-auth-generator'; -import { tool as emailNormalizer } from './email-normalizer'; +import type { ToolCategory, ToolWithCategory } from './tools.types'; -import { tool as asciiTextDrawer } from './ascii-text-drawer'; +const modules = import.meta.glob('./*/index.ts', { eager: true, import: 'tool' }); -import { tool as textToUnicode } from './text-to-unicode'; -import { tool as safelinkDecoder } from './safelink-decoder'; -import { tool as xmlToJson } from './xml-to-json'; -import { tool as jsonToXml } from './json-to-xml'; -import { tool as regexTester } from './regex-tester'; -import { tool as regexMemo } from './regex-memo'; -import { tool as markdownToHtml } from './markdown-to-html'; -import { tool as pdfSignatureChecker } from './pdf-signature-checker'; -import { tool as numeronymGenerator } from './numeronym-generator'; -import { tool as macAddressGenerator } from './mac-address-generator'; -import { tool as textToBinary } from './text-to-binary'; -import { tool as ulidGenerator } from './ulid-generator'; -import { tool as ibanValidatorAndParser } from './iban-validator-and-parser'; -import { tool as stringObfuscator } from './string-obfuscator'; -import { tool as textDiff } from './text-diff'; -import { tool as emojiPicker } from './emoji-picker'; -import { tool as passwordStrengthAnalyser } from './password-strength-analyser'; -import { tool as yamlToToml } from './yaml-to-toml'; -import { tool as jsonToToml } from './json-to-toml'; -import { tool as tomlToYaml } from './toml-to-yaml'; -import { tool as tomlToJson } from './toml-to-json'; -import { tool as jsonToCsv } from './json-to-csv'; -import { tool as cameraRecorder } from './camera-recorder'; -import { tool as listConverter } from './list-converter'; -import { tool as phoneParserAndFormatter } from './phone-parser-and-formatter'; -import { tool as jsonDiff } from './json-diff'; -import { tool as ipv4RangeExpander } from './ipv4-range-expander'; -import { tool as httpStatusCodes } from './http-status-codes'; -import { tool as yamlToJson } from './yaml-to-json-converter'; -import { tool as jsonToYaml } from './json-to-yaml-converter'; -import { tool as ipv6UlaGenerator } from './ipv6-ula-generator'; -import { tool as ipv4AddressConverter } from './ipv4-address-converter'; -import { tool as benchmarkBuilder } from './benchmark-builder'; -import { tool as userAgentParser } from './user-agent-parser'; -import { tool as ipv4SubnetCalculator } from './ipv4-subnet-calculator'; -import { tool as dockerRunToDockerComposeConverter } from './docker-run-to-docker-compose-converter'; -import { tool as htmlWysiwygEditor } from './html-wysiwyg-editor'; -import { tool as rsaKeyPairGenerator } from './rsa-key-pair-generator'; -import { tool as textToNatoAlphabet } from './text-to-nato-alphabet'; -import { tool as slugifyString } from './slugify-string'; -import { tool as keycodeInfo } from './keycode-info'; -import { tool as jsonMinify } from './json-minify'; -import { tool as bcrypt } from './bcrypt'; -import { tool as bip39 } from './bip39-generator'; -import { tool as caseConverter } from './case-converter'; -import { tool as chmodCalculator } from './chmod-calculator'; -import { tool as chronometer } from './chronometer'; -import { tool as colorConverter } from './color-converter'; -import { tool as crontabGenerator } from './crontab-generator'; -import { tool as dateTimeConverter } from './date-time-converter'; -import { tool as deviceInformation } from './device-information'; -import { tool as cypher } from './encryption'; -import { tool as etaCalculator } from './eta-calculator'; -import { tool as percentageCalculator } from './percentage-calculator'; -import { tool as gitMemo } from './git-memo'; -import { tool as hashText } from './hash-text'; -import { tool as hmacGenerator } from './hmac-generator'; -import { tool as htmlEntities } from './html-entities'; -import { tool as baseConverter } from './integer-base-converter'; -import { tool as jsonViewer } from './json-viewer'; -import { tool as jwtParser } from './jwt-parser'; -import { tool as loremIpsumGenerator } from './lorem-ipsum-generator'; -import { tool as mathEvaluator } from './math-evaluator'; -import { tool as metaTagGenerator } from './meta-tag-generator'; -import { tool as mimeTypes } from './mime-types'; -import { tool as otpCodeGeneratorAndValidator } from './otp-code-generator-and-validator'; -import { tool as qrCodeGenerator } from './qr-code-generator'; -import { tool as wifiQrCodeGenerator } from './wifi-qr-code-generator'; -import { tool as randomPortGenerator } from './random-port-generator'; -import { tool as romanNumeralConverter } from './roman-numeral-converter'; -import { tool as sqlPrettify } from './sql-prettify'; -import { tool as svgPlaceholderGenerator } from './svg-placeholder-generator'; -import { tool as temperatureConverter } from './temperature-converter'; -import { tool as textStatistics } from './text-statistics'; -import { tool as tokenGenerator } from './token-generator'; -import type { ToolCategory } from './tools.types'; -import { tool as urlEncoder } from './url-encoder'; -import { tool as urlParser } from './url-parser'; -import { tool as uuidGenerator } from './uuid-generator'; -import { tool as macAddressLookup } from './mac-address-lookup'; -import { tool as xmlFormatter } from './xml-formatter'; -import { tool as yamlViewer } from './yaml-viewer'; - -export const toolsByCategory: ToolCategory[] = [ - { - name: 'Crypto', - components: [tokenGenerator, hashText, bcrypt, uuidGenerator, ulidGenerator, cypher, bip39, hmacGenerator, rsaKeyPairGenerator, passwordStrengthAnalyser, pdfSignatureChecker], - }, - { - name: 'Converter', - components: [ - dateTimeConverter, - baseConverter, - romanNumeralConverter, - base64StringConverter, - base64FileConverter, - colorConverter, - caseConverter, - textToNatoAlphabet, - textToBinary, - textToUnicode, - yamlToJson, - yamlToToml, - jsonToYaml, - jsonToToml, - listConverter, - tomlToJson, - tomlToYaml, - xmlToJson, - jsonToXml, - markdownToHtml, - ], - }, - { - name: 'Web', - components: [ - urlEncoder, - htmlEntities, - urlParser, - deviceInformation, - basicAuthGenerator, - metaTagGenerator, - otpCodeGeneratorAndValidator, - mimeTypes, - jwtParser, - keycodeInfo, - slugifyString, - htmlWysiwygEditor, - userAgentParser, - httpStatusCodes, - jsonDiff, - safelinkDecoder, - ], - }, - { - name: 'Images and videos', - components: [qrCodeGenerator, wifiQrCodeGenerator, svgPlaceholderGenerator, cameraRecorder], - }, - { - name: 'Development', - components: [ - gitMemo, - randomPortGenerator, - crontabGenerator, - jsonViewer, - jsonMinify, - jsonToCsv, - sqlPrettify, - chmodCalculator, - dockerRunToDockerComposeConverter, - xmlFormatter, - yamlViewer, - emailNormalizer, - regexTester, - regexMemo, - ], - }, - { - name: 'Network', - components: [ipv4SubnetCalculator, ipv4AddressConverter, ipv4RangeExpander, macAddressLookup, macAddressGenerator, ipv6UlaGenerator], - }, - { - name: 'Math', - components: [mathEvaluator, etaCalculator, percentageCalculator], - }, - { - name: 'Measurement', - components: [chronometer, temperatureConverter, benchmarkBuilder], - }, - { - name: 'Text', - components: [ - loremIpsumGenerator, - textStatistics, - emojiPicker, - stringObfuscator, - textDiff, - numeronymGenerator, - asciiTextDrawer, - ], - }, - { - name: 'Data', - components: [phoneParserAndFormatter, ibanValidatorAndParser], - }, -]; +export const toolsByCategory = Object.values(modules).reduce((la, moduleDef) => { + let found = la.find(l => l.name === moduleDef.category); + if (!found) { + found = { + name: moduleDef.category, + components: [], + }; + la.push(found); + } + found.components.push(moduleDef); + return la; +}, [] as ToolCategory[]); export const tools = toolsByCategory.flatMap(({ components }) => components); export const toolsWithCategory = toolsByCategory.flatMap(({ components, name }) => diff --git a/src/tools/integer-base-converter/index.ts b/src/tools/integer-base-converter/index.ts index f60d996d..6fc86e82 100644 --- a/src/tools/integer-base-converter/index.ts +++ b/src/tools/integer-base-converter/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['integer', 'number', 'base', 'conversion', 'decimal', 'hexadecimal', 'binary', 'octal', 'base64'], component: () => import('./integer-base-converter.vue'), icon: ArrowsLeftRight, + category: 'Converter', }); diff --git a/src/tools/ipv4-address-converter/index.ts b/src/tools/ipv4-address-converter/index.ts index 66ae03a3..562b2708 100644 --- a/src/tools/ipv4-address-converter/index.ts +++ b/src/tools/ipv4-address-converter/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./ipv4-address-converter.vue'), icon: Binary, createdAt: new Date('2023-04-08'), + category: 'Network', }); diff --git a/src/tools/ipv4-range-expander/index.ts b/src/tools/ipv4-range-expander/index.ts index 49dfae95..1ad187a3 100644 --- a/src/tools/ipv4-range-expander/index.ts +++ b/src/tools/ipv4-range-expander/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./ipv4-range-expander.vue'), icon: UnfoldMoreOutlined, createdAt: new Date('2023-04-19'), + category: 'Network', }); diff --git a/src/tools/ipv4-subnet-calculator/index.ts b/src/tools/ipv4-subnet-calculator/index.ts index 1bae7282..b41e1ac0 100644 --- a/src/tools/ipv4-subnet-calculator/index.ts +++ b/src/tools/ipv4-subnet-calculator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['ipv4', 'subnet', 'calculator', 'mask', 'network', 'cidr', 'netmask', 'bitmask', 'broadcast', 'address'], component: () => import('./ipv4-subnet-calculator.vue'), icon: RouterOutlined, + category: 'Network', }); diff --git a/src/tools/ipv6-ula-generator/index.ts b/src/tools/ipv6-ula-generator/index.ts index 51bfd6fc..dd1127fc 100644 --- a/src/tools/ipv6-ula-generator/index.ts +++ b/src/tools/ipv6-ula-generator/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./ipv6-ula-generator.vue'), icon: BuildingFactory, createdAt: new Date('2023-04-09'), + category: 'Network', }); diff --git a/src/tools/json-diff/index.ts b/src/tools/json-diff/index.ts index a4c0319c..2a354c46 100644 --- a/src/tools/json-diff/index.ts +++ b/src/tools/json-diff/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./json-diff.vue'), icon: CompareArrowsRound, createdAt: new Date('2023-04-20'), + category: 'Web', }); diff --git a/src/tools/json-minify/index.ts b/src/tools/json-minify/index.ts index fbe5831b..140edea3 100644 --- a/src/tools/json-minify/index.ts +++ b/src/tools/json-minify/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['json', 'minify', 'format'], component: () => import('./json-minify.vue'), icon: Braces, + category: 'Development', }); diff --git a/src/tools/json-to-csv/index.ts b/src/tools/json-to-csv/index.ts index 9f38b82f..95ae37dc 100644 --- a/src/tools/json-to-csv/index.ts +++ b/src/tools/json-to-csv/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./json-to-csv.vue'), icon: List, createdAt: new Date('2023-06-18'), + category: 'Development', }); diff --git a/src/tools/json-to-toml/index.ts b/src/tools/json-to-toml/index.ts index da42c18d..699f71d6 100644 --- a/src/tools/json-to-toml/index.ts +++ b/src/tools/json-to-toml/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./json-to-toml.vue'), icon: Braces, createdAt: new Date('2023-06-23'), + category: 'Converter', }); diff --git a/src/tools/json-to-xml/index.ts b/src/tools/json-to-xml/index.ts index c35ace2b..1851d9c6 100644 --- a/src/tools/json-to-xml/index.ts +++ b/src/tools/json-to-xml/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ component: () => import('./json-to-xml.vue'), icon: Braces, createdAt: new Date('2024-08-09'), + category: 'Converter', }); diff --git a/src/tools/json-to-yaml-converter/index.ts b/src/tools/json-to-yaml-converter/index.ts index c01e3ec0..765c89a5 100644 --- a/src/tools/json-to-yaml-converter/index.ts +++ b/src/tools/json-to-yaml-converter/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./json-to-yaml.vue'), icon: Braces, createdAt: new Date('2023-04-10'), + category: 'Converter', }); diff --git a/src/tools/json-viewer/index.ts b/src/tools/json-viewer/index.ts index bc488245..7f4a87b6 100644 --- a/src/tools/json-viewer/index.ts +++ b/src/tools/json-viewer/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./json-viewer.vue'), icon: Braces, redirectFrom: ['/json-viewer'], + category: 'Development', }); diff --git a/src/tools/jwt-parser/index.ts b/src/tools/jwt-parser/index.ts index 939b4b34..8f1bb167 100644 --- a/src/tools/jwt-parser/index.ts +++ b/src/tools/jwt-parser/index.ts @@ -25,4 +25,5 @@ export const tool = defineTool({ ], component: () => import('./jwt-parser.vue'), icon: Key, + category: 'Web', }); diff --git a/src/tools/keycode-info/index.ts b/src/tools/keycode-info/index.ts index a2f36562..3b63921e 100644 --- a/src/tools/keycode-info/index.ts +++ b/src/tools/keycode-info/index.ts @@ -24,4 +24,5 @@ export const tool = defineTool({ ], component: () => import('./keycode-info.vue'), icon: Keyboard, + category: 'Web', }); diff --git a/src/tools/list-converter/index.ts b/src/tools/list-converter/index.ts index 9ae7c512..81abb687 100644 --- a/src/tools/list-converter/index.ts +++ b/src/tools/list-converter/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./list-converter.vue'), icon: List, createdAt: new Date('2023-05-07'), + category: 'Converter', }); diff --git a/src/tools/lorem-ipsum-generator/index.ts b/src/tools/lorem-ipsum-generator/index.ts index 2634d9e0..42a0ff17 100644 --- a/src/tools/lorem-ipsum-generator/index.ts +++ b/src/tools/lorem-ipsum-generator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'placeholder', 'text', 'filler', 'random', 'generator'], component: () => import('./lorem-ipsum-generator.vue'), icon: AlignJustified, + category: 'Text', }); diff --git a/src/tools/mac-address-generator/index.ts b/src/tools/mac-address-generator/index.ts index 3106bcec..605139c5 100644 --- a/src/tools/mac-address-generator/index.ts +++ b/src/tools/mac-address-generator/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./mac-address-generator.vue'), icon: Devices, createdAt: new Date('2023-11-31'), + category: 'Network', }); diff --git a/src/tools/mac-address-lookup/index.ts b/src/tools/mac-address-lookup/index.ts index 367bcebb..918f27df 100644 --- a/src/tools/mac-address-lookup/index.ts +++ b/src/tools/mac-address-lookup/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./mac-address-lookup.vue'), icon: Devices, createdAt: new Date('2023-04-06'), + category: 'Network', }); diff --git a/src/tools/markdown-to-html/index.ts b/src/tools/markdown-to-html/index.ts index 73a6cfb3..0401894b 100644 --- a/src/tools/markdown-to-html/index.ts +++ b/src/tools/markdown-to-html/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ component: () => import('./markdown-to-html.vue'), icon: Markdown, createdAt: new Date('2024-08-25'), + category: 'Converter', }); diff --git a/src/tools/math-evaluator/index.ts b/src/tools/math-evaluator/index.ts index eb4290ba..38d2ae5d 100644 --- a/src/tools/math-evaluator/index.ts +++ b/src/tools/math-evaluator/index.ts @@ -41,4 +41,5 @@ export const tool = defineTool({ ], component: () => import('./math-evaluator.vue'), icon: Math, + category: 'Math', }); diff --git a/src/tools/meta-tag-generator/index.ts b/src/tools/meta-tag-generator/index.ts index c6224410..3606d238 100644 --- a/src/tools/meta-tag-generator/index.ts +++ b/src/tools/meta-tag-generator/index.ts @@ -23,4 +23,5 @@ export const tool = defineTool({ ], component: () => import('./meta-tag-generator.vue'), icon: Tags, + category: 'Web', }); diff --git a/src/tools/mime-types/index.ts b/src/tools/mime-types/index.ts index da6ba0c4..7a180bcb 100644 --- a/src/tools/mime-types/index.ts +++ b/src/tools/mime-types/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['mime', 'types', 'extension', 'content', 'type'], component: () => import('./mime-types.vue'), icon: World, + category: 'Web', }); diff --git a/src/tools/numeronym-generator/index.ts b/src/tools/numeronym-generator/index.ts index 3d8472ae..fbb390b8 100644 --- a/src/tools/numeronym-generator/index.ts +++ b/src/tools/numeronym-generator/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./numeronym-generator.vue'), icon: n7mIcon, createdAt: new Date('2023-11-05'), + category: 'Text', }); diff --git a/src/tools/otp-code-generator-and-validator/index.ts b/src/tools/otp-code-generator-and-validator/index.ts index 42ecc9fc..190f75d4 100644 --- a/src/tools/otp-code-generator-and-validator/index.ts +++ b/src/tools/otp-code-generator-and-validator/index.ts @@ -25,4 +25,5 @@ export const tool = defineTool({ ], component: () => import('./otp-code-generator-and-validator.vue'), icon: DeviceMobile, + category: 'Web', }); diff --git a/src/tools/password-strength-analyser/index.ts b/src/tools/password-strength-analyser/index.ts index f2e89ef9..c87f470d 100644 --- a/src/tools/password-strength-analyser/index.ts +++ b/src/tools/password-strength-analyser/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./password-strength-analyser.vue'), icon: PasswordIcon, createdAt: new Date('2023-06-24'), + category: 'Crypto', }); diff --git a/src/tools/pdf-signature-checker/index.ts b/src/tools/pdf-signature-checker/index.ts index 8b5d356b..8ca4880e 100644 --- a/src/tools/pdf-signature-checker/index.ts +++ b/src/tools/pdf-signature-checker/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./pdf-signature-checker.vue'), icon: FileCertIcon, createdAt: new Date('2023-12-09'), + category: 'Crypto', }); diff --git a/src/tools/percentage-calculator/index.ts b/src/tools/percentage-calculator/index.ts index 33c5b2f1..e8220023 100644 --- a/src/tools/percentage-calculator/index.ts +++ b/src/tools/percentage-calculator/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./percentage-calculator.vue'), icon: Percentage, createdAt: new Date('2023-06-18'), + category: 'Math', }); diff --git a/src/tools/phone-parser-and-formatter/index.ts b/src/tools/phone-parser-and-formatter/index.ts index 094b21e8..c45bee3f 100644 --- a/src/tools/phone-parser-and-formatter/index.ts +++ b/src/tools/phone-parser-and-formatter/index.ts @@ -22,4 +22,5 @@ export const tool = defineTool({ component: () => import('./phone-parser-and-formatter.vue'), icon: Phone, createdAt: new Date('2023-05-01'), + category: 'Data', }); diff --git a/src/tools/qr-code-generator/index.ts b/src/tools/qr-code-generator/index.ts index b97b4cbc..900efecf 100644 --- a/src/tools/qr-code-generator/index.ts +++ b/src/tools/qr-code-generator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['qr', 'code', 'generator', 'square', 'color', 'link', 'low', 'medium', 'quartile', 'high', 'transparent'], component: () => import('./qr-code-generator.vue'), icon: Qrcode, + category: 'Images and videos', }); diff --git a/src/tools/random-port-generator/index.ts b/src/tools/random-port-generator/index.ts index e300b8f0..f288cb21 100644 --- a/src/tools/random-port-generator/index.ts +++ b/src/tools/random-port-generator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['system', 'port', 'lan', 'generator', 'random', 'development', 'computer'], component: () => import('./random-port-generator.vue'), icon: Server, + category: 'Development', }); diff --git a/src/tools/regex-memo/index.ts b/src/tools/regex-memo/index.ts index f1f56489..7eb92c65 100644 --- a/src/tools/regex-memo/index.ts +++ b/src/tools/regex-memo/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ component: () => import('./regex-memo.vue'), icon: BrandJavascript, createdAt: new Date('2024-09-20'), + category: 'Development', }); diff --git a/src/tools/regex-tester/index.ts b/src/tools/regex-tester/index.ts index 62a5e234..7f97f977 100644 --- a/src/tools/regex-tester/index.ts +++ b/src/tools/regex-tester/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ component: () => import('./regex-tester.vue'), icon: Language, createdAt: new Date('2024-09-20'), + category: 'Development', }); diff --git a/src/tools/roman-numeral-converter/index.ts b/src/tools/roman-numeral-converter/index.ts index 6929747f..598321e3 100644 --- a/src/tools/roman-numeral-converter/index.ts +++ b/src/tools/roman-numeral-converter/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['roman', 'arabic', 'converter', 'X', 'I', 'V', 'L', 'C', 'D', 'M'], component: () => import('./roman-numeral-converter.vue'), icon: LetterX, + category: 'Converter', }); diff --git a/src/tools/rsa-key-pair-generator/index.ts b/src/tools/rsa-key-pair-generator/index.ts index 3d034e5b..499a90fe 100644 --- a/src/tools/rsa-key-pair-generator/index.ts +++ b/src/tools/rsa-key-pair-generator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['rsa', 'key', 'pair', 'generator', 'public', 'private', 'secret', 'ssh', 'pem'], component: () => import('./rsa-key-pair-generator.vue'), icon: Certificate, + category: 'Crypto', }); diff --git a/src/tools/safelink-decoder/index.ts b/src/tools/safelink-decoder/index.ts index ef865108..01db00ba 100644 --- a/src/tools/safelink-decoder/index.ts +++ b/src/tools/safelink-decoder/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ component: () => import('./safelink-decoder.vue'), icon: Mailbox, createdAt: new Date('2024-03-11'), + category: 'Web', }); diff --git a/src/tools/slugify-string/index.ts b/src/tools/slugify-string/index.ts index 1f1bfcf3..cd932be4 100644 --- a/src/tools/slugify-string/index.ts +++ b/src/tools/slugify-string/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['slugify', 'string', 'escape', 'emoji', 'special', 'character', 'space', 'trim'], component: () => import('./slugify-string.vue'), icon: AbcRound, + category: 'Web', }); diff --git a/src/tools/sql-prettify/index.ts b/src/tools/sql-prettify/index.ts index 96bff0fe..61c3c089 100644 --- a/src/tools/sql-prettify/index.ts +++ b/src/tools/sql-prettify/index.ts @@ -24,4 +24,5 @@ export const tool = defineTool({ ], component: () => import('./sql-prettify.vue'), icon: Database, + category: 'Development', }); diff --git a/src/tools/string-obfuscator/index.ts b/src/tools/string-obfuscator/index.ts index 67f1995c..a7b9de74 100644 --- a/src/tools/string-obfuscator/index.ts +++ b/src/tools/string-obfuscator/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./string-obfuscator.vue'), icon: EyeOff, createdAt: new Date('2023-08-16'), + category: 'Text', }); diff --git a/src/tools/svg-placeholder-generator/index.ts b/src/tools/svg-placeholder-generator/index.ts index 37a709eb..fc716c28 100644 --- a/src/tools/svg-placeholder-generator/index.ts +++ b/src/tools/svg-placeholder-generator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['svg', 'placeholder', 'generator', 'image', 'size', 'mockup'], component: () => import('./svg-placeholder-generator.vue'), icon: ImageOutlined, + category: 'Images and videos', }); diff --git a/src/tools/temperature-converter/index.ts b/src/tools/temperature-converter/index.ts index 3f526ee2..118a1ce9 100644 --- a/src/tools/temperature-converter/index.ts +++ b/src/tools/temperature-converter/index.ts @@ -21,4 +21,5 @@ export const tool = defineTool({ ], component: () => import('./temperature-converter.vue'), icon: Temperature, + category: 'Measurement', }); diff --git a/src/tools/text-diff/index.ts b/src/tools/text-diff/index.ts index de124ee6..0f9352ce 100644 --- a/src/tools/text-diff/index.ts +++ b/src/tools/text-diff/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./text-diff.vue'), icon: FileDiff, createdAt: new Date('2023-08-16'), + category: 'Text', }); diff --git a/src/tools/text-statistics/index.ts b/src/tools/text-statistics/index.ts index 23937839..76377aa0 100644 --- a/src/tools/text-statistics/index.ts +++ b/src/tools/text-statistics/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./text-statistics.vue'), icon: FileText, redirectFrom: ['/text-stats'], + category: 'Text', }); diff --git a/src/tools/text-to-binary/index.ts b/src/tools/text-to-binary/index.ts index ce0f87ea..1a961b4d 100644 --- a/src/tools/text-to-binary/index.ts +++ b/src/tools/text-to-binary/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./text-to-binary.vue'), icon: Binary, createdAt: new Date('2023-10-15'), + category: 'Converter', }); diff --git a/src/tools/text-to-nato-alphabet/index.ts b/src/tools/text-to-nato-alphabet/index.ts index 43b72fb4..731c3932 100644 --- a/src/tools/text-to-nato-alphabet/index.ts +++ b/src/tools/text-to-nato-alphabet/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['string', 'nato', 'alphabet', 'phonetic', 'oral', 'transmission'], component: () => import('./text-to-nato-alphabet.vue'), icon: Speakerphone, + category: 'Converter', }); diff --git a/src/tools/text-to-unicode/index.ts b/src/tools/text-to-unicode/index.ts index 80396026..3effadc3 100644 --- a/src/tools/text-to-unicode/index.ts +++ b/src/tools/text-to-unicode/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./text-to-unicode.vue'), icon: TextWrap, createdAt: new Date('2024-01-31'), + category: 'Converter', }); diff --git a/src/tools/token-generator/index.ts b/src/tools/token-generator/index.ts index 44923e79..ca20f6c6 100644 --- a/src/tools/token-generator/index.ts +++ b/src/tools/token-generator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['token', 'random', 'string', 'alphanumeric', 'symbols', 'number', 'letters', 'lowercase', 'uppercase', 'password'], component: () => import('./token-generator.tool.vue'), icon: ArrowsShuffle, + category: 'Crypto', }); diff --git a/src/tools/toml-to-json/index.ts b/src/tools/toml-to-json/index.ts index 77a1b26e..4b6bba27 100644 --- a/src/tools/toml-to-json/index.ts +++ b/src/tools/toml-to-json/index.ts @@ -11,4 +11,5 @@ export const tool = defineTool({ component: () => import('./toml-to-json.vue'), icon: BracketIcon, createdAt: new Date('2023-06-23'), + category: 'Converter', }); diff --git a/src/tools/toml-to-yaml/index.ts b/src/tools/toml-to-yaml/index.ts index 2ee0958b..b099af15 100644 --- a/src/tools/toml-to-yaml/index.ts +++ b/src/tools/toml-to-yaml/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./toml-to-yaml.vue'), icon: BracketIcon, createdAt: new Date('2023-06-23'), + category: 'Converter', }); diff --git a/src/tools/tool.ts b/src/tools/tool.ts index 3bf4e4cc..e90d08b2 100644 --- a/src/tools/tool.ts +++ b/src/tools/tool.ts @@ -1,9 +1,9 @@ import { isAfter, subWeeks } from 'date-fns'; -import type { Tool } from './tools.types'; +import type { ToolWithCategory } from './tools.types'; type WithOptional = Omit & Partial>; -export function defineTool(tool: WithOptional) { +export function defineTool(tool: WithOptional) { const isNew = tool.createdAt ? isAfter(tool.createdAt, subWeeks(new Date(), 2)) : false; return { diff --git a/src/tools/ulid-generator/index.ts b/src/tools/ulid-generator/index.ts index c12679a7..64872ea6 100644 --- a/src/tools/ulid-generator/index.ts +++ b/src/tools/ulid-generator/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./ulid-generator.vue'), icon: SortDescendingNumbers, createdAt: new Date('2023-09-11'), + category: 'Crypto', }); diff --git a/src/tools/url-encoder/index.ts b/src/tools/url-encoder/index.ts index ab85118c..08ce1052 100644 --- a/src/tools/url-encoder/index.ts +++ b/src/tools/url-encoder/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['url', 'encode', 'decode', 'percent', '%20', 'format'], component: () => import('./url-encoder.vue'), icon: Link, + category: 'Web', }); diff --git a/src/tools/url-parser/index.ts b/src/tools/url-parser/index.ts index 77976a24..c337fd3b 100644 --- a/src/tools/url-parser/index.ts +++ b/src/tools/url-parser/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['url', 'parser', 'protocol', 'origin', 'params', 'port', 'username', 'password', 'href'], component: () => import('./url-parser.vue'), icon: Unlink, + category: 'Web', }); diff --git a/src/tools/user-agent-parser/index.ts b/src/tools/user-agent-parser/index.ts index 4d026145..9621573b 100644 --- a/src/tools/user-agent-parser/index.ts +++ b/src/tools/user-agent-parser/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./user-agent-parser.vue'), icon: Browser, createdAt: new Date('2023-04-06'), + category: 'Web', }); diff --git a/src/tools/uuid-generator/index.ts b/src/tools/uuid-generator/index.ts index 54ec479f..4fceb7d9 100644 --- a/src/tools/uuid-generator/index.ts +++ b/src/tools/uuid-generator/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ keywords: ['uuid', 'v4', 'random', 'id', 'alphanumeric', 'identity', 'token', 'string', 'identifier', 'unique', 'v1', 'v3', 'v5', 'nil'], component: () => import('./uuid-generator.vue'), icon: Fingerprint, + category: 'Crypto', }); diff --git a/src/tools/wifi-qr-code-generator/index.ts b/src/tools/wifi-qr-code-generator/index.ts index b59b95df..3ec45228 100644 --- a/src/tools/wifi-qr-code-generator/index.ts +++ b/src/tools/wifi-qr-code-generator/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./wifi-qr-code-generator.vue'), icon: Qrcode, createdAt: new Date('2023-09-06'), + category: 'Images and videos', }); diff --git a/src/tools/xml-formatter/index.ts b/src/tools/xml-formatter/index.ts index 7aa096da..17942b45 100644 --- a/src/tools/xml-formatter/index.ts +++ b/src/tools/xml-formatter/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./xml-formatter.vue'), icon: Code, createdAt: new Date('2023-06-17'), + category: 'Development', }); diff --git a/src/tools/xml-to-json/index.ts b/src/tools/xml-to-json/index.ts index 8d83f4fe..86a158ab 100644 --- a/src/tools/xml-to-json/index.ts +++ b/src/tools/xml-to-json/index.ts @@ -9,4 +9,5 @@ export const tool = defineTool({ component: () => import('./xml-to-json.vue'), icon: Braces, createdAt: new Date('2024-08-09'), + category: 'Converter', }); diff --git a/src/tools/yaml-to-json-converter/index.ts b/src/tools/yaml-to-json-converter/index.ts index 60110f09..05b341ca 100644 --- a/src/tools/yaml-to-json-converter/index.ts +++ b/src/tools/yaml-to-json-converter/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./yaml-to-json.vue'), icon: AlignJustified, createdAt: new Date('2023-04-10'), + category: 'Converter', }); diff --git a/src/tools/yaml-to-toml/index.ts b/src/tools/yaml-to-toml/index.ts index d788887e..60f3c2f2 100644 --- a/src/tools/yaml-to-toml/index.ts +++ b/src/tools/yaml-to-toml/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./yaml-to-toml.vue'), icon: AlignJustified, createdAt: new Date('2023-06-23'), + category: 'Converter', }); diff --git a/src/tools/yaml-viewer/index.ts b/src/tools/yaml-viewer/index.ts index f3043270..4d528217 100644 --- a/src/tools/yaml-viewer/index.ts +++ b/src/tools/yaml-viewer/index.ts @@ -10,4 +10,5 @@ export const tool = defineTool({ component: () => import('./yaml-viewer.vue'), icon: AlignJustified, createdAt: new Date('2024-01-31'), + category: 'Development', });