/judo-ui-typescript-rest-template

JUDO UI Typescript Rest Generator helpers and templates

Primary LanguageHandlebarsEclipse Public License 2.0EPL-2.0

judo-ui-typescript-rest

UI based JUDO Typescript Rest TypeScript generator

It can be used as:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>actiongrouptest-god</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>JUDO UI Typescript Rest Generator ITest - ActionGroupTest - God</name>

    <properties>
        <judo-generator-commons-version>1.0.0.20230120_203628_b0fbaa8e_develop</judo-generator-commons-version>
        <judo-meta-ui-version>1.1.0.20230227_131337_42851eda_develop</judo-meta-ui-version>
        <judo-ui-typescript-rest-tempalte-version>1.0.0.20230208_081855_528f6525_develop</judo-ui-typescript-rest-tempalte-version>

        <node-install-dir>${project.basedir}/.nodejs</node-install-dir>
        <generation-target>${project.basedir}/target/test-classes</generation-target>

        <model-name>ActionGroupTest</model-name>
        <actor>actiongrouptest__god</actor>
        <actor-fq-name>ActionGroupTest::God</actor-fq-name>

        <model-file>${project.basedir}/model/${model-name}-ui.model</model-file>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>hu.blackbelt.judo.meta</groupId>
                <artifactId>judo-ui-generator-maven-plugin</artifactId>
                <version>${judo-meta-ui-version}</version>
                <executions>
                    <execution>
                        <id>execute-ui-test-model-from-file</id>
                        <phase>generate-test-resources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <uris>
                                <uri>mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-api:${revision}</uri>
                                <uri>mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-service:${revision}</uri>
                                <uri>mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-axios:${revision}</uri>
                            </uris>
                            <type>ui-typescript-rest</type>
                            <applications>
                                ${actor-fq-name}
                            </applications>
                            <ui>${model-file}</ui>
                            <destination>${generation-target}/src/generated</destination>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>hu.blackbelt.judo.meta</groupId>
                        <artifactId>hu.blackbelt.judo.meta.ui.model</artifactId>
                        <version>${judo-meta-ui-version}</version>
                    </dependency>
                    <dependency>
                        <groupId>hu.blackbelt.judo.generator</groupId>
                        <artifactId>judo-generator-commons</artifactId>
                        <version>${judo-generator-commons-version}</version>
                    </dependency>
                    <dependency>
                        <groupId>hu.blackbelt.judo.generator</groupId>
                        <artifactId>judo-ui-typescript-rest-commons</artifactId>
                        <version>${judo-ui-typescript-rest-tempalte-version}</version>
                    </dependency>
                    <dependency>
                        <groupId>hu.blackbelt.judo.generator</groupId>
                        <artifactId>judo-ui-typescript-rest-api</artifactId>
                        <version>${judo-ui-typescript-rest-tempalte-version}</version>
                    </dependency>
                    <dependency>
                        <groupId>hu.blackbelt.judo.generator</groupId>
                        <artifactId>judo-ui-typescript-rest-service</artifactId>
                        <version>${judo-ui-typescript-rest-tempalte-version}</version>
                    </dependency>
                    <dependency>
                        <groupId>hu.blackbelt.judo.generator</groupId>
                        <artifactId>judo-ui-typescript-rest-axios</artifactId>
                        <version>${judo-ui-typescript-rest-tempalte-version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</project>

This example generates all interfaces (models and servies) and an axios implementation into the target/test-classes directory.

The judo-ui-generator-maven-plugin documentation is placed inside the plugin documentation itself. https://github.com/BlackBeltTechnology/judo-meta-ui/tree/develop/generator-maven-plugin

Modules

The following modules are provided:

  • judo-ui-typescript-rest-api

  • judo-ui-typescript-rest-service

  • judo-ui-typescript-rest-axios

Keep in mind that for example the axios module could be left out if you plan to implement the api and service yourself.