Skip to content

Commit

Permalink
Merge pull request #2454 from wmarques/migrate-angular-core
Browse files Browse the repository at this point in the history
Migrate angular core
  • Loading branch information
pascalgrimaud authored Jul 9, 2022
2 parents c8b4996 + 99b1604 commit 304e193
Show file tree
Hide file tree
Showing 20 changed files with 231 additions and 574 deletions.
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
package tech.jhipster.lite.generator.client.angular.core.application;

import org.springframework.stereotype.Service;
import tech.jhipster.lite.generator.client.angular.core.domain.AngularService;
import tech.jhipster.lite.generator.project.domain.Project;
import tech.jhipster.lite.generator.client.angular.core.domain.AngularModuleFactory;
import tech.jhipster.lite.module.domain.JHipsterModule;
import tech.jhipster.lite.module.domain.properties.JHipsterModuleProperties;

@Service
public class AngularApplicationService {

private final AngularService angularService;
private final AngularModuleFactory factory;

public AngularApplicationService(AngularService angularService) {
this.angularService = angularService;
public AngularApplicationService() {
factory = new AngularModuleFactory();
}

public void addAngular(Project project) {
angularService.addAngular(project);
public JHipsterModule buildInitModule(JHipsterModuleProperties properties) {
return factory.buildModule(properties);
}
}
Original file line number Diff line number Diff line change
@@ -1,91 +1,12 @@
package tech.jhipster.lite.generator.client.angular.core.domain;

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

public class Angular {

public static final String APP_MODULE = "app.module.ts";
public static final String APP_ROUTING_MODULE = "app-routing.module.ts";
public static final String APP_ROUTING_MODULE_SPEC = "app-routing.module.spec.ts";
public static final String APP_COMPONENT = "app.component.ts";
public static final String APP_COMPONENT_SPEC = "app.component.spec.ts";
public static final String APP_COMPONENT_HTML = "app.component.html";
public static final String APP_COMPONENT_CSS = "app.component.css";
public static final String ADMIN_ROUTING_MODULE_SPEC = "admin/admin-routing.module.spec.ts";

private Angular() {}

public static List<String> devDependencies() {
return List.of(
"@angular-builders/jest",
"@angular-devkit/build-angular",
"@angular/cli",
"@angular/compiler-cli",
"@types/node",
"@types/jest",
"jest",
"jest-environment-jsdom",
"ts-jest",
"jest-preset-angular",
"jest-sonar-reporter",
"typescript"
);
}

public static List<String> dependencies() {
return List.of(
"@angular/animations",
"@angular/cdk",
"@angular/common",
"@angular/compiler",
"@angular/core",
"@angular/material",
"@angular/forms",
"@angular/platform-browser",
"@angular/platform-browser-dynamic",
"@angular/router",
"rxjs",
"tslib",
"zone.js"
);
}

public static Map<String, String> scripts() {
// @formatter:off
return Map.of(
"ng", "ng",
"start", "ng serve",
"build", "ng build --output-path=target/classes/static",
"watch", "ng build --watch --configuration development",
"test", "ng test --coverage"
);
// @formatter:on
}

public static List<String> files() {
return List.of("angular.json", "jest.conf.js", "proxy.conf.json", "tsconfig.app.json", "tsconfig.json", "tsconfig.spec.json");
}

public static Map<String, String> angularFiles() {
String appFolderPath = "app";
String environments = "environments";
return Map.ofEntries(
Map.entry("index.html", ""),
Map.entry("main.ts", ""),
Map.entry("polyfills.ts", ""),
Map.entry("styles.css", ""),
Map.entry(APP_MODULE, appFolderPath),
Map.entry(APP_COMPONENT, appFolderPath),
Map.entry(APP_COMPONENT_HTML, appFolderPath),
Map.entry(APP_COMPONENT_CSS, appFolderPath),
Map.entry(APP_ROUTING_MODULE, appFolderPath),
Map.entry(APP_ROUTING_MODULE_SPEC, appFolderPath),
Map.entry(APP_COMPONENT_SPEC, appFolderPath),
Map.entry("environment.prod.ts", environments),
Map.entry("environment.prod.spec.ts", environments),
Map.entry("environment.ts", environments),
Map.entry("environment.spec.ts", environments)
);
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
package tech.jhipster.lite.generator.client.angular.core.domain;

import static tech.jhipster.lite.module.domain.JHipsterModule.*;
import static tech.jhipster.lite.module.domain.packagejson.VersionSource.ANGULAR;

import tech.jhipster.lite.error.domain.Assert;
import tech.jhipster.lite.module.domain.Indentation;
import tech.jhipster.lite.module.domain.JHipsterModule;
import tech.jhipster.lite.module.domain.JHipsterSource;
import tech.jhipster.lite.module.domain.properties.JHipsterModuleProperties;

public class AngularModuleFactory {

private static final JHipsterSource SOURCE = from("client/angular/core");

private static final String CACHE_NEEDLE = " \"cacheDirectories\":";
private static final String BREAK = "\n";

public JHipsterModule buildModule(JHipsterModuleProperties properties) {
Assert.notNull("properties", properties);

//@formatter:off
return moduleBuilder(properties)
.packageJson()
.addDependency(packageName("@angular/animations"), ANGULAR)
.addDependency(packageName("@angular/cdk"), ANGULAR)
.addDependency(packageName("@angular/common"), ANGULAR)
.addDependency(packageName("@angular/compiler"), ANGULAR)
.addDependency(packageName("@angular/core"), ANGULAR)
.addDependency(packageName("@angular/material"), ANGULAR)
.addDependency(packageName("@angular/forms"), ANGULAR)
.addDependency(packageName("@angular/platform-browser"), ANGULAR)
.addDependency(packageName("@angular/platform-browser-dynamic"), ANGULAR)
.addDependency(packageName("@angular/router"), ANGULAR)
.addDependency(packageName("rxjs"), ANGULAR)
.addDependency(packageName("tslib"), ANGULAR)
.addDependency(packageName("zone.js"), ANGULAR)
.addDevDependency(packageName("@angular-builders/jest"), ANGULAR)
.addDevDependency(packageName("@angular-devkit/build-angular"), ANGULAR)
.addDevDependency(packageName("@angular/cli"), ANGULAR)
.addDevDependency(packageName("@angular/compiler-cli"), ANGULAR)
.addDevDependency(packageName("@types/node"), ANGULAR)
.addDevDependency(packageName("@types/jest"), ANGULAR)
.addDevDependency(packageName("jest"), ANGULAR)
.addDevDependency(packageName("jest-environment-jsdom"), ANGULAR)
.addDevDependency(packageName("ts-jest"), ANGULAR)
.addDevDependency(packageName("jest-preset-angular"), ANGULAR)
.addDevDependency(packageName("jest-sonar-reporter"), ANGULAR)
.addDevDependency(packageName("typescript"), ANGULAR)
.addScript(scriptKey("ng"), scriptCommand("ng"))
.addScript(scriptKey("start"), scriptCommand("ng serve"))
.addScript(scriptKey("build"), scriptCommand("ng build --output-path=target/classes/static"))
.addScript(scriptKey("watch"), scriptCommand("ng build --watch --configuration development"))
.addScript(scriptKey("test"), scriptCommand("ng test --coverage"))
.and()
.optionalReplacements()
.in("package.json")
.add(justLineBefore(text(CACHE_NEEDLE)), jestSonar(properties.indentation()))
.and()
.and()
.files()
.add(SOURCE.file("jest.conf.js"), to("jest.conf.js"))
.add(SOURCE.file("angular.json"), to("angular.json"))
.add(SOURCE.file("tsconfig.json"), to("tsconfig.json"))
.add(SOURCE.file("tsconfig.app.json"), to("tsconfig.app.json"))
.add(SOURCE.file("tsconfig.spec.json"), to("tsconfig.spec.json"))
.add(SOURCE.file("proxy.conf.json"), to("proxy.conf.json"))
.batch(SOURCE.file("src/main/webapp/app"), to("src/main/webapp/app"))
.template("app.component.ts")
.template("app.component.css")
.template("app.component.html")
.template("app.component.spec.ts")
.template("app.module.ts")
.template("app-routing.module.ts")
.template("app-routing.module.spec.ts")
.and()
.batch(SOURCE.file("src/main/webapp/content/images"), to("src/main/webapp/content/images"))
.file("JHipster-Lite-neon-red.png")
.file("AngularLogo.svg")
.and()
.batch(SOURCE.file("src/main/webapp/environments"), to("src/main/webapp/environments"))
.template("environment.prod.ts")
.template("environment.prod.spec.ts")
.template("environment.ts")
.template("environment.spec.ts")
.and()
.batch(SOURCE.file("src/main/webapp"), to("src/main/webapp"))
.template("index.html")
.template("styles.css")
.template("main.ts")
.template("polyfills.ts")
.and()
.and()
.build();
//@formatter:on
}

private String jestSonar(Indentation indentation) {
return new StringBuilder()
.append(indentation.spaces())
.append("\"jestSonar\": {")
.append(BREAK)
.append(indentation.times(2))
.append("\"reportPath\": \"target/test-results/jest\",")
.append(BREAK)
.append(indentation.times(2))
.append("\"reportFile\": \"TESTS-results-sonar.xml\"")
.append(BREAK)
.append(indentation.spaces())
.append("},")
.toString();
}
}

This file was deleted.

Loading

0 comments on commit 304e193

Please sign in to comment.