Skip to content

Commit

Permalink
Merge pull request #934 from pascalgrimaud/refactoring-vite-react
Browse files Browse the repository at this point in the history
Refactoring: rename ViteReact to React
  • Loading branch information
pascalgrimaud authored Mar 5, 2022
2 parents d68bf1f + aec32dd commit 6d005dc
Show file tree
Hide file tree
Showing 38 changed files with 220 additions and 222 deletions.
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ updates:
labels:
- 'area: dependencies'
- package-ecosystem: 'npm'
directory: '/src/main/resources/generator/dependencies/vite/react'
directory: '/src/main/resources/generator/dependencies/react'
schedule:
interval: 'daily'
open-pull-requests-limit: 20
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package tech.jhipster.lite.generator.client.react.core.application;

import org.springframework.stereotype.Service;
import tech.jhipster.lite.generator.client.react.core.domain.ReactService;
import tech.jhipster.lite.generator.project.domain.Project;

@Service
public class ReactApplicationService {

private final ReactService reactService;

public ReactApplicationService(ReactService reactService) {
this.reactService = reactService;
}

public void addReact(Project project) {
reactService.addReact(project);
}

public void addStyledReact(Project project) {
reactService.addStyledReact(project);
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package tech.jhipster.lite.generator.client.vite.react.core.domain;
package tech.jhipster.lite.generator.client.react.core.domain;

import java.util.List;
import java.util.Map;

public class ViteReact {
public class React {

private ViteReact() {}
private React() {}

public static List<String> dependencies() {
return List.of("react", "react-dom");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package tech.jhipster.lite.generator.client.vite.react.core.domain;
package tech.jhipster.lite.generator.client.react.core.domain;

import static tech.jhipster.lite.common.domain.FileUtils.getPath;
import static tech.jhipster.lite.generator.project.domain.DefaultConfig.BASE_NAME;
Expand All @@ -8,48 +8,48 @@
import tech.jhipster.lite.generator.project.domain.Project;
import tech.jhipster.lite.generator.project.domain.ProjectRepository;

public class ViteReactDomainService implements ViteReactService {
public class ReactDomainService implements ReactService {

public static final String SOURCE = "client/vite/react";
public static final String SOURCE = "client/react";
public static final String SOURCE_APP = "src/main/webapp/app/common/primary/app";

private final ProjectRepository projectRepository;
private final NpmService npmService;

public ViteReactDomainService(ProjectRepository projectRepository, NpmService npmService) {
public ReactDomainService(ProjectRepository projectRepository, NpmService npmService) {
this.projectRepository = projectRepository;
this.npmService = npmService;
}

@Override
public void addViteReact(Project project) {
public void addReact(Project project) {
project.addDefaultConfig(BASE_NAME);
addCommonViteReact(project);
addViteReactUnstyledFiles(project);
addCommonReact(project);
addReactUnstyledFiles(project);
}

@Override
public void addStyledViteReact(Project project) {
public void addStyledReact(Project project) {
project.addDefaultConfig(BASE_NAME);
addCommonViteReact(project);
addViteReactStyledFiles(project);
addCommonReact(project);
addReactStyledFiles(project);
}

public void addCommonViteReact(Project project) {
public void addCommonReact(Project project) {
addDevDependencies(project);
addDependencies(project);
addScripts(project);
addFiles(project);
addJestSonar(project);
addViteReactCommonFiles(project);
addReactCommonFiles(project);
}

public void addDevDependencies(Project project) {
ViteReact
React
.devDependencies()
.forEach(dependency ->
npmService
.getVersionInViteReact(dependency)
.getVersionInReact(dependency)
.ifPresentOrElse(
version -> npmService.addDevDependency(project, dependency, version),
() -> {
Expand All @@ -60,11 +60,11 @@ public void addDevDependencies(Project project) {
}

public void addDependencies(Project project) {
ViteReact
React
.dependencies()
.forEach(dependency ->
npmService
.getVersionInViteReact(dependency)
.getVersionInReact(dependency)
.ifPresentOrElse(
version -> npmService.addDependency(project, dependency, version),
() -> {
Expand All @@ -75,22 +75,22 @@ public void addDependencies(Project project) {
}

public void addScripts(Project project) {
ViteReact.scripts().forEach((name, cmd) -> npmService.addScript(project, name, cmd));
React.scripts().forEach((name, cmd) -> npmService.addScript(project, name, cmd));
}

public void addFiles(Project project) {
ViteReact.files().forEach(file -> projectRepository.add(project, SOURCE, file));
React.files().forEach(file -> projectRepository.add(project, SOURCE, file));
}

public void addViteReactCommonFiles(Project project) {
ViteReact.reactCommonFiles().forEach((file, path) -> projectRepository.template(project, getPath(SOURCE, path), file, path));
public void addReactCommonFiles(Project project) {
React.reactCommonFiles().forEach((file, path) -> projectRepository.template(project, getPath(SOURCE, path), file, path));
}

public void addViteReactUnstyledFiles(Project project) {
public void addReactUnstyledFiles(Project project) {
projectRepository.template(project, getPath(SOURCE, SOURCE_APP), "App.tsx", SOURCE_APP);
}

public void addViteReactStyledFiles(Project project) {
public void addReactStyledFiles(Project project) {
String imagesPath = "src/main/webapp/content/images";
projectRepository.template(project, getPath(SOURCE, SOURCE_APP), "StyledApp.tsx", SOURCE_APP, "App.tsx");
projectRepository.template(project, getPath(SOURCE, SOURCE_APP), "App.css", SOURCE_APP);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package tech.jhipster.lite.generator.client.react.core.domain;

import tech.jhipster.lite.generator.project.domain.Project;

public interface ReactService {
void addReact(Project project);
void addStyledReact(Project project);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package tech.jhipster.lite.generator.client.react.core.infrastructure.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import tech.jhipster.lite.generator.client.react.core.domain.ReactDomainService;
import tech.jhipster.lite.generator.client.react.core.domain.ReactService;
import tech.jhipster.lite.generator.packagemanager.npm.domain.NpmService;
import tech.jhipster.lite.generator.project.domain.ProjectRepository;

@Configuration
public class ReactBeanConfiguration {

private final ProjectRepository projectRepository;
private final NpmService npmService;

public ReactBeanConfiguration(ProjectRepository projectRepository, NpmService npmService) {
this.projectRepository = projectRepository;
this.npmService = npmService;
}

@Bean
public ReactService reactService() {
return new ReactDomainService(projectRepository, npmService);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package tech.jhipster.lite.generator.client.react.core.infrastructure.primary.rest;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import tech.jhipster.lite.generator.client.react.core.application.ReactApplicationService;
import tech.jhipster.lite.generator.project.domain.Project;
import tech.jhipster.lite.generator.project.infrastructure.primary.dto.ProjectDTO;
import tech.jhipster.lite.technical.infrastructure.primary.annotation.GeneratorStep;

@RestController
@RequestMapping("/api/react")
@Tag(name = "React")
class ReactResource {

private final ReactApplicationService reactApplicationService;

public ReactResource(ReactApplicationService reactApplicationService) {
this.reactApplicationService = reactApplicationService;
}

@Operation(summary = "Init React+Vite", description = "Init React+Vite project")
@ApiResponse(responseCode = "500", description = "An error occurred while initializing React+Vite project")
@PostMapping
@GeneratorStep(id = "react")
public void addReact(@RequestBody ProjectDTO projectDTO) {
Project project = ProjectDTO.toProject(projectDTO);
reactApplicationService.addReact(project);
}

@Operation(summary = "Add React+Vite with minimal CSS", description = "Add React+Vite with minimal CSS")
@ApiResponse(responseCode = "500", description = "An error occurred while adding React+Vite with minimal CSS")
@PostMapping("/styled")
@GeneratorStep(id = "react-styled")
public void addStyledReact(@RequestBody ProjectDTO projectDTO) {
Project project = ProjectDTO.toProject(projectDTO);
reactApplicationService.addStyledReact(project);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@tech.jhipster.lite.BusinessContext
package tech.jhipster.lite.generator.client.react.core;

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public Optional<String> getVersion(String folder, String name) {
}

@Override
public Optional<String> getVersionInViteReact(String name) {
return getVersion("vite/react", name);
public Optional<String> getVersionInReact(String name) {
return getVersion("react", name);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ public interface NpmService {

Optional<String> getVersion(String folder, String name);
Optional<String> getVersionInCommon(String name);
Optional<String> getVersionInViteReact(String name);
Optional<String> getVersionInReact(String name);
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "vite-react",
"name": "jhlite-dependencies",
"version": "0.0.0",
"description": "JHipster Lite : used for Vite+React dependencies",
"license": "Apache-2.0",
Expand Down
Loading

0 comments on commit 6d005dc

Please sign in to comment.