From 3a88baae158535cb5ca5aea9cfa401957a3b6c82 Mon Sep 17 00:00:00 2001 From: Shalini Date: Sun, 1 Mar 2026 23:52:38 +0530 Subject: [PATCH] fix: implement dynamic import for tool components (#48) --- app/[slug]/page.tsx | 169 +++++++++++-------- app/libs/constants.tsx | 373 +++++++++++++++++++++-------------------- 2 files changed, 286 insertions(+), 256 deletions(-) diff --git a/app/[slug]/page.tsx b/app/[slug]/page.tsx index 81a451f..68cf357 100644 --- a/app/[slug]/page.tsx +++ b/app/[slug]/page.tsx @@ -44,7 +44,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { const pathname = usePathname(); const currentTool = developmentToolsRoutes.find( - (tool: any) => tool.path === pathname + (tool: any) => tool.path === pathname, ); return ( @@ -201,7 +201,11 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { )} {/* Integrated Tool section */} - {currentTool ? currentTool?.component : null} + {currentTool && + (() => { + const ToolComponent = currentTool.component; + return ; + })()} {/* Tool description section */}
@@ -259,7 +263,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { )} - ) + ), )} ); @@ -283,7 +287,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { (exampleItem: any, exampleIndex: number) => { const isExampleHeading = exampleItem?.example_input?.startsWith( - "Example" + "Example", ); const isInputOrOutput = exampleItem?.example_input === "Input" || @@ -292,7 +296,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { typeof exampleItem?.example_output === "string"; const isArrayOutput = Array.isArray( - exampleItem?.example_output + exampleItem?.example_output, ); return ( @@ -322,7 +326,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { {exampleItem.example_output.map( ( outputItem: any, - outputIndex: number + outputIndex: number, ) => (

{ > {outputItem?.value}

- ) + ), )} )} @@ -338,7 +342,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { )} ); - } + }, )} ); @@ -388,11 +392,11 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { {text} ); - } + }, )}

); - } + }, )} {development_tools_about_details?.placeholder && ( @@ -404,7 +408,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { {placeholder?.title} - ) + ), )} )} @@ -430,7 +434,9 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { )} {development_tools_user_agent_info?.example_string_description && (

- {development_tools_user_agent_info?.example_string_description} + { + development_tools_user_agent_info?.example_string_description + }

)} {development_tools_user_agent_info?.info_items && ( @@ -449,7 +455,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { {item?.description} - ) + ), )} @@ -478,10 +484,16 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { {development_tool_example?.example_input?.title}

)} - {development_tool_example?.example_input?.json_data && ( -
+                          {development_tool_example?.example_input
+                            ?.json_data && (
+                            
                               
-                                {development_tool_example?.example_input?.json_data}
+                                {
+                                  development_tool_example?.example_input
+                                    ?.json_data
+                                }
                               
                             
)} @@ -497,7 +509,10 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { )} {development_tool_example?.example_outputs?.outputs?.map( (output: any, index: number) => ( -
+
{output?.mode && (

{output?.mode} @@ -509,7 +524,9 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => {

)} {output?.content && ( -
+                                  
                                     
                                       {output?.content}
                                     
@@ -521,7 +538,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => {
                                   

)}
- ) + ), )}
)} @@ -564,11 +581,11 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { {text} ); - } + }, )}

); - } + }, )} )} @@ -590,7 +607,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { ) : ( {parts} - ) + ), )}

@@ -611,10 +628,11 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { {/* Primary Flex Layout for Step Key, Title, and Description */}
{guide?.step_key} @@ -636,9 +654,12 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { {p?.steps_points_description ?.split(/(".*?")/) .map( - (part: string, i: number) => + ( + part: string, + i: number, + ) => part.startsWith("") && - part.endsWith("") ? ( + part.endsWith("") ? ( { {part .split( - /(\/\/.*?\/\/)/ + /(\/\/.*?\/\/)/, ) .map( ( sub: string, - j: number + j: number, ) => sub.startsWith( - "//" + "//", ) && - sub.endsWith( - "//" - ) ? ( + sub.endsWith( + "//", + ) ? ( {sub.slice( 2, - -2 + -2, )} ) : ( sub - ) + ), )} - ) + ), )}

)} @@ -686,7 +707,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { {p?.steps_subpoint?.map( ( sub_p: any, - subIndex: number + subIndex: number, ) => (
  • {sub_p?.title && ( @@ -701,14 +722,14 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { .map( ( part: string, - i: number + i: number, ) => part.startsWith( - "" + "", ) && - part.endsWith( - "" - ) ? ( + part.endsWith( + "", + ) ? ( { > {part .split( - /(\/\/.*?\/\/)/ + /(\/\/.*?\/\/)/, ) .map( ( sub: string, - j: number + j: number, ) => sub.startsWith( - "//" + "//", ) && - sub.endsWith( - "//" - ) ? ( + sub.endsWith( + "//", + ) ? ( {sub.slice( 2, - -2 + -2, )} ) : ( sub - ) + ), )} - ) + ), )} )}
  • - ) + ), )} )} - ) + ), )} )} {parts?.map((part: any, i: any) => part.startsWith("") && - part.endsWith("") ? ( + part.endsWith("") ? ( <> { ) : ( part - ) + ), )}
    @@ -785,7 +806,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => {
    {desParts?.map((part: any, i: any) => part.startsWith("") && - part.endsWith("") ? ( + part.endsWith("") ? ( { ) : ( part - ) + ), )}
    )} ); - } + }, )} )} @@ -826,18 +847,20 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { how?.heading ? (

    {how?.heading}

    ) : (
  • <> @@ -848,7 +871,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => {
  • - ) + ), )} @@ -864,7 +887,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { )} {Array.isArray( - development_tools_Comparison?.description + development_tools_Comparison?.description, ) && development_tools_Comparison?.description.map( (d: any, index: any) => ( @@ -874,7 +897,7 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => { > {d?.desc}

    - ) + ), )} )} @@ -1013,14 +1036,16 @@ const Page = ({ params: { slug } }: { params: { slug: string } }) => {
    {tool?.icon}

    {tool?.name}

    diff --git a/app/libs/constants.tsx b/app/libs/constants.tsx index f31c495..f909e39 100644 --- a/app/libs/constants.tsx +++ b/app/libs/constants.tsx @@ -59,7 +59,6 @@ import AsciiToDecimalConverter from '../components/developmentToolsComponent/asc import AsciiToUnicodeConverter from '../components/developmentToolsComponent/asciiToUnicodeConverter'; import BarcodeGenerator from '../components/developmentToolsComponent/barcodeGenerator'; import Base64Decoder from '../components/developmentToolsComponent/base64Decoder'; -import Base64Encoder from '../components/developmentToolsComponent/base64Encoder'; import BcdToDecimalConverter from '../components/developmentToolsComponent/bcdToDecimalConverter'; import BcryptGenerator from '../components/developmentToolsComponent/bcryptGenerator'; import BinaryToDecimalConverter from '../components/developmentToolsComponent/binaryToDecimalConverter'; @@ -186,7 +185,14 @@ import XmlToJsonConverter from '../components/developmentToolsComponent/xmlToJso import XorCalculator from '../components/developmentToolsComponent/xorCalculator'; import CurlToCodeConverter from '../components/developmentToolsComponent/curlToCodeConverter'; import YAMLFormatterAndBeautifier from '../components/developmentToolsComponent/yamlFormatterAndBeautifier'; - +import type { ComponentType } from "react"; +import dynamic from "next/dynamic"; +const Base64Encoder = dynamic( + () => import('../components/developmentToolsComponent/base64Encoder'), + { ssr: false, + loading: () =>

    Loading tool...

    , + } +); export const WEB_URL = 'https://www.betterbugs.io'; // Default to Chrome URL during SSR/build, will be correctly determined on client side @@ -1789,710 +1795,709 @@ export const PATHS = { CURL_TO_CODE_CONVERTER: '/curl-to-code-converter', }; -export const developmentToolsRoutes = [ +export const developmentToolsRoutes: { + path: string; + component: ComponentType; +}[] = [ { path: PATHS.TEXT_UPPERCASE_CONVERTER, - component: , + component: UpperCaseConverterComponent, }, { path: PATHS.TEXT_LOWERCASE_CONVERTER, - component: , + component: LowerCaseConverterComponent, }, - { path: PATHS.WORD_COUNT_TOOL, component: }, + { path: PATHS.WORD_COUNT_TOOL, component: WordCounterComponent }, { path: PATHS.CHARACTER_COUNT_TOOL, - component: , + component: CharacterCounterComponent, }, - { path: PATHS.LINE_COUNTER_TOOL, component: }, + { path: PATHS.LINE_COUNTER_TOOL, component: LineCounterComponent }, { path: PATHS.SENTENCE_COUNTER_TOOL, - component: , + component: SentenceCounterComponent, }, { path: PATHS.JAVASCRIPT_MINIFIER, - component: , + component: JavascriptMinifierComponent, }, { path: PATHS.JSON_MINIFIER, - component: , + component: JsonMinifierComponent, }, { path: PATHS.JSON_PRETTIFIER, - component: , + component: JsonPrettifierComponent, }, { path: PATHS.LOREM_IPSUM_GENERATOR, - component: , + component: LoremIpsumGeneratorComponent, }, { path: PATHS.HTML_TO_MARKDOWN, - component: , + component: HtmlToMarkDownComponent, }, { path: PATHS.MARKDOWN_TO_HTML, - component: , + component: MarkDownToHtmlComponent, }, { path: PATHS.JS_OBFUSCATOR, - component: , + component: JsObfuscatorComponent, }, { path: PATHS.CREDIT_CARD_GENERATOR, - component: , + component: CreditCardGeneratorComponent, }, { path: PATHS.CREDIT_CARD_VALIDATOR, - component: , + component: CreditCardValidatorComponent, }, { path: PATHS.RANDOM_JSON_DATA_GENERATOR, - component: , + component: RandomJsonDataGenerator, }, { path: PATHS.RANDOM_DECIMAL_NUMBER_GENERATOR, - component: , + component: RandomDecimalNumberGenerator, }, { path: PATHS.RANDOM_DATE_GENERATOR, - component: , + component: RandomDateGenerator, }, { path: PATHS.RANDOM_CLOCK_TIME_GENERATOR, - component: , + component: RandomClockTimeGenerator , }, { path: PATHS.RANDOM_COLOR_GENERATOR, - component: , + component: RandomColorGenerator , }, { path: PATHS.RANDOM_PARAGRAPH_GENERATOR, - component: , + component: RandomParagraphGenerator , }, { path: PATHS.RANDOM_STRING_GENERATOR, - component: , + component: RandomStringGenerator , }, { path: PATHS.RANDOM_SENTENCE_GENERATOR, - component: , + component: RandomSentanceGenerator , }, { path: PATHS.RANDOM_PASSWORD_GENERATOR, - component: , + component: RandomPasswardGenerator , }, { path: PATHS.RANDOM_NUMBER_GENERATOR, - component: , + component: RandomNumberGenerator , }, { path: PATHS.RANDOM_WORD_GENERATOR, - component: , + component: RandomWordGenerator , }, { path: PATHS.RANDOM_USERNAME_GENERATOR, - component: , + component: RandomUsernameGenerator , }, { path: PATHS.SORT_NUMBER, - component: , + component: SortNumbers , }, { path: PATHS.SORT_WORD, - component: , + component: SortWords , }, { path: PATHS.PHONE_NUMBER_EXTRACTOR, - component: , + component: PhoneNumberExtractor , }, { path: PATHS.REVERSE_TEXT_GENERATOR, - component: , + component: ReverseTextGenerator , }, { path: PATHS.WORD_TO_NUMBER, - component: , + component: WordsToNumbers , }, { path: PATHS.REMOVE_SPACES, - component: , + component: RemoveSpaces , }, { path: PATHS.TEXT_TO_ONE_LINE, - component: , - }, - { - path: PATHS.CSV_TO_TEXT_CONVERTER, - component: , + component: TextToOneLine , }, { path: PATHS.ROUNDING_CALCULATOR, - component: , + component: RoundingCalculator , }, { path: PATHS.TXT_TO_CSV_CONVERTER, - component: , + component: TxtToCsvConverter , }, { path: PATHS.JSON_TO_TEXT, - component: , + component: JsonToTxt , }, { path: PATHS.HTML_VALIDATOR, - component: , + component: HTMLValidator , }, { path: PATHS.JSON_VALIDATOR, - component: , + component: JsonValidator , }, { path: PATHS.CODE_COMPARE_TOOL, - component: , + component: CodeCompareTool , }, { path: PATHS.WHAT_IS_MY_USER_AGENT, - component: , + component: WhatIsMyUserAgent , }, { path: PATHS.ROTATION_CALCULATOR, - component: , + component: RotationCalculatorComponent , }, { path: PATHS.ROT13_ENCODER_DECODER, - component: , + component: Rot13EncoderDecoderComponent, }, { path: PATHS.CMYK_TO_HEX, - component: , + component: CmykToHexConverter, }, { path: PATHS.HEX_TO_CMYK, - component: , + component: HexToCmykConverter, }, { path: PATHS.HEX_TO_PANTONE, - component: , + component: HexToPantone, }, { path: PATHS.RGB_TO_CMYK_CONVERTER, - component: , + component: RgbToCmykConverter, }, { path: PATHS.CMYK_TO_RGB_CONVERTER, - component: , + component: CmykToRgbConverter, }, { path: PATHS.CSS_TO_STYLUS, - component: , + component: CssToStylus, }, { path: PATHS.UNICODE_TO_ASCII_CONVERTER, - component: , + component: UnicodeToAsciiConverter, }, { path: PATHS.ASCII_TO_UNICODE_CONVERTER, - component: , + component: AsciiToUnicodeConverter, }, { path: PATHS.DECIMAL_TO_ASCII_CONVERTER, - component: , + component: DecimalToAsciiConverter, }, { path: PATHS.ASCII_TO_DECIMAL_CONVERTER, - component: , + component: AsciiToDecimalConverter, }, { path: PATHS.BCRYPT_GENERATOR, - component: , + component: BcryptGenerator, }, { path: PATHS.HEX_TO_ASCII_CONVERTER, - component: , + component: HexToAscii, }, { path: PATHS.BASE64_DECODER, - component: , + component: Base64Decoder, }, { - path: PATHS.BASE64_ENCODER, - component: , - }, + path: PATHS.BASE64_ENCODER, + component: Base64Encoder, +}, { path: PATHS.HOURS_TO_SECONDS, - component: , + component: HoursToSecounds, }, { path: PATHS.PX_TO_REM_CONVERTER, - component: , + component: PxToRemConverter, }, { path: PATHS.REM_TO_PX_CONVERTER, - component: , + component: RemToPxConverter, }, { path: PATHS.RANDOM_CHARACTER_GENERATOR, - component: , + component: RandomCharacterGenerator, }, { path: PATHS.PLACEHOLDER_IMAGE_GENERATOR, - component: , + component: PlaceholderImageGenerator, }, { path: PATHS.COLOR_PICKER_TOOL, - component: , + component: ColorPickerTool , }, { path: PATHS.ROTATE_IMAGE_TOOL, - component: , + component: RotateImageTool , }, { path: PATHS.CSV_TO_EXCEL_FILE_CONVERTOR, - component: , + component: CsvToExcelFileConvertor , }, { path: PATHS.RANDOM_XML_GENERATOR, - component: , + component: RandomXMLGenerator , }, { path: PATHS.SQL_TO_CSV_CONVERTER, - component: , + component: SqlToCsvConverter , }, { path: PATHS.HTML_PRETTIFY, - component: , + component: HtmlPrettify , }, { path: PATHS.CSS_PRETTIFY, - component: , + component: CssPrettify , }, { path: PATHS.HTML_MINIFY, - component: , + component: HtmlMinify , }, { path: PATHS.CSS_MINIFY, - component: , + component: CssMinify , }, { path: PATHS.XML_MINIFY, - component: , + component: XmlMinify , }, { path: PATHS.XML_PRETTIFY, - component: , + component: XmlPrettify , }, { path: PATHS.SQL_MINIFY, - component: , + component: SqlMinify , }, { path: PATHS.HEX_TO_RGB_CONVERTER, - component: , + component: HexToRGBConverter, }, { path: PATHS.RGB_TO_HEX_CONVERTER, - component: , + component: RgbToHexConverter, }, { path: PATHS.GREY_CODE_TO_DECIMAL, - component: , + component: GreyCodeToDecimal, }, { path: PATHS.DECIMAL_TO_GREY_CODE, - component: , + component: DecimalToGrayCode, }, { path: PATHS.YAML_FORMATTER_AND_BEAUTIFIER, - component: , + component: YAMLFormatterAndBeautifier, }, { path: PATHS.SQL_FORMATTER_AND_BEAUTIFIER, - component: , + component: SqlFormatterAndBeautifier, }, { path: PATHS.WHAT_IS_MY_BROWSER, - component: , + component: WhatIsMyBrowser, }, { path: PATHS.WHAT_VERSION_OF_WINDOWS_DO_I_HAVE, - component: , + component: WhatVersionOfWindowsDoIHave, }, { path: PATHS.WHAT_OPERATING_SYSTEM_DO_I_HAVE, - component: , + component: WhatOperatingSystemDoIHave, }, { path: PATHS.WHAT_VERSION_OF_CHROME_DO_I_HAVE, - component: , + component: WhatVersionOfChromeDoIHave, }, { path: PATHS.JSON_TO_TYPESCRIPT, - component: , + component: JsonToTypeScript, }, { path: PATHS.RANDOM_CSV_GENERATOR, - component: , + component: RandomCSVGenerator, }, { path: PATHS.RANDOM_GUID_GENERATOR, - component: , + component: RandomGUIDGenerator, }, { path: PATHS.RANDOM_TEXT_FROM_REGEX, - component: , + component: RandomTextFromRegEX, }, { path: PATHS.QR_CODE_GENERATOR, - component: , + component: QRCodeGenerator, }, { path: PATHS.RANDOM_ADDRESS_GENERATOR, - component: , + component: RandomAddressGenerator, }, { path: PATHS.HTML_CODE_GENERATOR, - component: , + component: HtmlCodeGenerator, }, { path: PATHS.HTML_VIEWER, - component: , + component: HtmlViewer, }, { path: PATHS.COLOR_INVERTOR, - component: , + component: ColorInvertor, }, { path: PATHS.STRING_DIFFERENCE_CHECKER, - component: , + component: StringDiffrenceChecker, }, { path: PATHS.TEXT_REPEATER, - component: , + component: TextRepeater, }, { path: PATHS.SORTING_LIST, - component: , + component: SortingList, }, { path: PATHS.SHUFFLE_LETTERS, - component: , + component: ShuffleLetters, }, { path: PATHS.SHUFFLE_TEXT_LINES, - component: , + component: ShuffleTextLines, }, { path: PATHS.RANDOM_IP_GENERATOR, - component: , + component: RandomIPGenerator, }, { path: PATHS.JSON_COMPARE, - component: , + component: JSONCompare, }, { path: PATHS.TEXT_COMPARE, - component: , + component: TextCompare, }, { path: PATHS.URL_DECODE, - component: , + component: URLDecode, }, { path: PATHS.URL_ENCODE, - component: , + component: URLEncode, }, { path: PATHS.TEXT_TO_HTML_ENTITIES_CONVERTOR, - component: , + component: TextToHtmlEntitiesConvertor, }, { path: PATHS.HTML_ENTITIES_TO_TEXT_CONVERTER, - component: , + component: HtmlEntitiesToTextConverter, }, { path: PATHS.CSV_TO_JSON, - component: , + component: CSVToJSON, }, { path: PATHS.CSS_TO_SCSS, - component: , + component: CSSToSCSSConverter, }, { path: PATHS.SCSS_TO_CSS, - component: , + component: ScssToCssConverter, }, { path: PATHS.MARKDOWN_FORMATTER, - component: , + component: MarkdownFormatter, }, { path: PATHS.TYPE_SCRIPT_FORMATTER, - component: , + component: TypescriptFormatter, }, { path: PATHS.TEXT_TO_CSV, - component: , + component: TextToCsv, }, { path: PATHS.INTERNET_SPEED_TEST, - component: , + component: InternetSpeedTest, }, { path: PATHS.PHP_FORMATTER, - component: , + component: PHPFormatter, }, { path: PATHS.PYTHON_FORMATTER, - component: , + component: PythonFormatter, }, { path: PATHS.XML_COMPARE, - component: , + component: XmlCompare, }, { path: PATHS.IDN_ENCODE, - component: , + component: IdnEncode, }, { path: PATHS.IDN_DECODE, - component: , + component: IdnDecode, }, { path: PATHS.JSON_TO_XML_CONVERTER, - component: , + component: JsonToXmlConverter, }, { path: PATHS.JSON_TO_YAML_CONVERTER, - component: , + component: JsonToYamlConverter, }, { path: PATHS.JSON_TO_CSV_CONVERTOR, - component: , + component: JsonToCsvConverter, }, { path: PATHS.UTF8_DECODE, - component: , + component: Utf8Decode, }, { path: PATHS.UTF8_ENCODE, - component: , + component: Utf8Encode, }, { path: PATHS.XOR_CALCULATOR, - component: , + component: XorCalculator, }, { path: PATHS.BINARY_TO_DECIMAL_CONVERTER, - component: , + component: BinaryToDecimalConverter, }, { path: PATHS.DECIMAL_TO_BINARY_CONVERTER, - component: , + component: DecimalToBinaryConverter, }, { path: PATHS.OCTAL_TO_DECIMAL_CONVERTER, - component: , + component: OctalToDecimalConverter, }, { path: PATHS.DECIMAL_TO_OCTAL_CONVERTER, - component: , + component: DecimalToOctalConverter, }, { path: PATHS.DECIMAL_TO_HEX, - component: , + component: DecimalToHexConverter, }, { path: PATHS.HEX_TO_BINARY, - component: , + component: HexToBinaryConverter, }, { path: PATHS.OCTAL_TO_BINARY, - component: , + component: OctalToBinaryConverter, }, { path: PATHS.MILES_TO_KILOMETERS, - component: , + component: MilesToKmConverter, }, { path: PATHS.KILOMETERS_TO_MILES, - component: , + component: KmToMilesConverter, }, { path: PATHS.JWT_DECODER, - component: , + component: JwtDecoder, }, { path: PATHS.IP_TO_HEX, - component: , + component: IpToHexConverter, }, { path: PATHS.WORDS_TO_NUMBERS, - component: , + component: WordsToNumbers, }, { path: PATHS.NUMBERS_TO_WORDS, - component: , + component: NumbersToWordsConverter, }, { path: PATHS.FABONACCI_CALCULATOR, - component: , + component: FibonacciCalculator, }, { path: PATHS.BITWISE_CALCULATOR, - component: , + component: BitwiseCalculator, }, { path: PATHS.GRAPHQL_FORMATTER, - component: , + component: GraphQLFormatter, }, { path: PATHS.CELCIUS_TO_FAHRENHEIT, - component: , + component: CelsiusFahrenheitConverter, }, { path: PATHS.BARCODE_GENERATOR, - component: , + component: BarcodeGenerator, }, { path: PATHS.FIND_AND_REPLACE_STRING, - component: , + component: FindAndReplaceString, }, { path: PATHS.API_KEY_GENERATOR, - component: , + component: ApiKeyGenerator, }, { path: PATHS.HTML_ESCAPE, - component: , + component: HtmlEscape, }, { path: PATHS.HTML_UNESCAPE, - component: , + component: HtmlUnescape, }, { path: PATHS.JAVASCRIPT_REGEX_TESTER, - component: , + component: JavascriptRegexTester, }, { path: PATHS.STRIP_HTML, - component: , + component: StripHTML, }, { path: PATHS.WHAT_IS_MY_LOCAL_IP_ADDRESS, - component: , + component: WhatIsMyLocalIPAddress, }, { path: PATHS.JAVASCRIPT_TESTER, - component: , + component: JavaScriptTester, }, { path: PATHS.WHAT_VERSION_OF_JAVA, - component: , + component: WhatVersionOfJavaDoIHave, }, { path: PATHS.WHAT_VERSION_OF_MACOS, - component: , + component: WhatVersionOfMacOSDoIHave, }, { path: PATHS.WHAT_VERSION_OF_FIREFOX, - component: , + component: WhatVersionOfFirefoxDoIHave, }, { path: PATHS.WHAT_VERSION_OF_IOS, - component: , + component: WhatVersionOfIOSDoIHave, }, { path: PATHS.WHATS_MY_BROWSER_SIZE, - component: , + component: WhatsMyBrowserSize, }, { path: PATHS.WHAT_VERSION_OF_SAFARI, - component: , + component: WhatVersionOfSafariDoIHave, }, { path: PATHS.WHAT_VERSION_OF_ANDROID, - component: , + component: WhatVersionOfAndroidDoIHave, }, { path: PATHS.WHAT_VERSION_OF_FLASH, - component: , + component: WhatVersionOfFlashDoIHave, }, { path: PATHS.WHAT_IS_MY_ISP, - component: , + component: WhatIsMyISP, }, { path: PATHS.AM_I_USING_TOR, - component: , + component: AmIUsingTor, }, { path: PATHS.HTML_TESTER, - component: , + component: HtmlTester, }, { path: PATHS.EXCEL_COMPARE, - component: , + component: ExcelCompare, }, { path: PATHS.JAVASCRIPT_ESCAPE, - component: , + component: JavaScriptEscape, }, { path: PATHS.JAVASCRIPT_VALIDATOR_LINTER, - component: , + component: JavaScriptValidatorLinter, }, { path: PATHS.XML_ESCAPE, - component: , + component: XMLEscape, }, { path: PATHS.CSS_VALIDATOR, - component: , + component: CssValidator, }, { path: PATHS.CSS_TO_SASS, - component: , + component: CssToSass, }, { path: PATHS.CSS_TO_LESS, - component: , + component: CssToLess, }, { path: PATHS.CRONTAB_GENERATOR, - component: , + component: CrontabGenerator, }, { path: PATHS.MORSE_CODE_TRANSLATOR, - component: , + component: MorseCodeTranslator, }, { path: PATHS.XML_TO_JSON_CONVERTER, - component: , + component: XmlToJsonConverter, }, { path: PATHS.BCD_TO_DECIMAL_CONVERTER, - component: , + component: BcdToDecimalConverter, }, { path: PATHS.HTML_TO_BBCODE, - component: , + component: HtmlToBBCode, }, { path: PATHS.SQL_TO_JSON, - component: , + component: SqlToJson, }, { path: PATHS.HTML_TO_JADE, - component: , + component: HtmlToJade, }, { path: PATHS.CURL_TO_CODE_CONVERTER, - component: , + component: CurlToCodeConverter, }, ];