Graphqlroutelocator

Use the snippet in the Magento 2 module creator.

Files

src/RootComponents/Test/test.js

import React, { Component } from 'react';

export default class Test extends Component {
    render() {
        return 'Your rootComponent Test with id: ' + this.props.id;
    }
}

src/RootComponents/Test/test.css


.root {

}

src/RootComponents/Test/index.js

/**
 * @RootComponent
 * description = 'Basic Test'
 * pageTypes = TEST
 */

export { default } from './test';

Plugin/GraphQl/Magento/UrlRewriteGraphQl/Model/Resolver/EntityUrl.php

<?php
declare(strict_types=1);

namespace Mage2Gen\Module\Plugin\GraphQl\Magento\UrlRewriteGraphQl\Model\Resolver;

use Magento\Framework\GraphQl\Config\Element\Field;
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;

class EntityUrl
{

    /**
     * @param \Magento\UrlRewriteGraphQl\Model\Resolver\EntityUrl $subject
     * @param $result
     * @param Field $field
     * @param ContextInterface $context
     * @param ResolveInfo $info
     * @param array | null $value
     * @param array | null $args
     */
    public function afterResolve(
        \Magento\UrlRewriteGraphQl\Model\Resolver\EntityUrl $subject,
        $result,
        Field $field,
        $context,
        ResolveInfo $info,
        array $value = null,
        array $args = null
    ) {
        return $result;
    }
}

etc/schema.graphqls


enum UrlRewriteEntityTypeEnum {
    TEST
}

etc/graphql/di.xml

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
	<type name="Magento\UrlRewriteGraphQl\Model\Resolver\EntityUrl">
		<plugin name="Mage2Gen_Module_Plugin_GraphQl_Magento_UrlRewriteGraphQl_Model_Resolver_EntityUrl" type="Mage2Gen\Module\Plugin\GraphQl\Magento\UrlRewriteGraphQl\Model\Resolver\EntityUrl" sortOrder="10" disabled="false"/>
	</type>
</config>