From 808953922ffbf22654f6580ba90a191e4124ae07 Mon Sep 17 00:00:00 2001 From: robingotz Date: Tue, 18 Jul 2023 12:06:34 -0400 Subject: [PATCH] fix(nx-plugin): cleanup styles, minor naming inconsistency, add missing await this makes the templates look almost identical regardless of using tw or not. it cleans up a minor naming inconsistency where note was named as title instead. it removes unused imports from the basic counter component. also adds a missing await in the generator --- .../server/trpc/routers/notes.ts__template__ | 4 +- .../analog-welcome.component.ts__template__ | 617 +++++++----------- .../analog-welcome.component.ts__template__ | 357 ++++------ .../analog-welcome.component.ts__template__ | 107 +-- .../analog-welcome.component.ts__template__ | 100 +-- .../nx-plugin/src/generators/app/generator.ts | 3 +- 6 files changed, 394 insertions(+), 794 deletions(-) diff --git a/packages/nx-plugin/src/generators/app/files/trpc/src/server/trpc/routers/notes.ts__template__ b/packages/nx-plugin/src/generators/app/files/trpc/src/server/trpc/routers/notes.ts__template__ index be3d3481d..51c1a06f7 100644 --- a/packages/nx-plugin/src/generators/app/files/trpc/src/server/trpc/routers/notes.ts__template__ +++ b/packages/nx-plugin/src/generators/app/files/trpc/src/server/trpc/routers/notes.ts__template__ @@ -8,13 +8,13 @@ export const noteRouter = router({ create: publicProcedure .input( z.object({ - title: z.string(), + note: z.string(), }) ) .mutation(({ input }) => notes.push({ id: noteId++, - note: input.title, + note: input.note, createdAt: new Date().toISOString(), }) ), diff --git a/packages/nx-plugin/src/generators/app/files/welcome-components/css-trpc/src/app/pages/analog-welcome.component.ts__template__ b/packages/nx-plugin/src/generators/app/files/welcome-components/css-trpc/src/app/pages/analog-welcome.component.ts__template__ index a5a3a6ba8..ab4613498 100644 --- a/packages/nx-plugin/src/generators/app/files/welcome-components/css-trpc/src/app/pages/analog-welcome.component.ts__template__ +++ b/packages/nx-plugin/src/generators/app/files/welcome-components/css-trpc/src/app/pages/analog-welcome.component.ts__template__ @@ -10,537 +10,390 @@ import { Note } from '../../note'; selector: '<%= fileName %>-analog-welcome', standalone: true, imports: [AsyncPipe, FormsModule, NgFor, DatePipe, NgIf], - styles: [ + styles: [ ` - a { - color: inherit; - text-decoration: inherit; - } - :host { - display: flex; - padding: 2rem; - flex-direction: column; - height: 100%; - min-height: 100vh; font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + display: flex; + padding: 2rem 1rem 8rem; + flex-direction: column; + background: rgb(250 250 250); + height: 100%; + } + a { + color: inherit; + text-decoration: inherit; } - .main { - margin-left: auto; - margin-right: auto; + margin: 0 auto; flex: 1 1 0; } - - .section-main { + .intro-section { padding-top: 1.5rem; padding-bottom: 2rem; + } + .intro-section > * + * { margin-top: 1.5rem; } - @media (min-width: 768px) { - .section-main { + .intro-section { padding-top: 2.5rem; padding-bottom: 3rem; } } - @media (min-width: 1024px) { - .section-main { + .intro-section { padding-top: 8rem; padding-bottom: 8rem; } } - - .main-icon { - margin-left: auto; - margin-right: auto; - margin-bottom: -1rem; - width: 4rem; - height: 4rem; - } - - .container-main { + .intro-container { display: flex; - text-align: center; flex-direction: column; - align-items: center; + text-align: center; gap: 1rem; + align-items: center; + max-width: 64rem; } - - .button-badge { - padding-top: 0.375rem; - padding-bottom: 0.375rem; - padding-left: 1rem; - padding-right: 1rem; + .intro-logo { + height: 3rem; + width: 3rem; + } + .intro-badge { + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; + font-weight: 500; font-size: 0.875rem; line-height: 1.25rem; - font-weight: 500; - border-radius: 1rem; + padding: 0.375rem 1rem; background-color: rgb(228 228 231); + border-radius: 1rem; } - - .text-analog-red { - color: rgb(221, 0, 49); - } - - .heading-1 { - font-size: 1.875rem; - line-height: 2.25rem; + .intro-heading { + margin: 0; font-weight: 500; - margin: 1rem 0; } @media (min-width: 640px) { - .heading-1 { - font-size: 2.25rem; /* 36px */ - line-height: 2.5rem; /* 40px */ + .intro-heading { + font-size: 3rem; + line-height: 1; } } - @media (min-width: 768px) { - .heading-1 { - font-size: 3rem; /* 48px */ + .intro-heading { + font-size: 3.75rem; line-height: 1; } } - @media (min-width: 1024px) { - .heading-1 { - font-size: 3.75rem; /* 60px */ + .intro-heading { + font-size: 4.5rem; line-height: 1; } } - - .paragraph-intro { + .intro-analog { + color: #dd0031; + } + .intro-description { line-height: 1.5; + max-width: 42rem; + margin: 0; } @media (min-width: 640px) { - .paragraph-intro { - font-size: 1.25rem; + .intro-description { line-height: 2rem; + font-size: 1.25rem; } } - - .button-group { - display: flex; - gap: 1rem; + .btn-container > * + * { + margin-left: 1rem; } - - .primary-button { - display: inline-flex; - align-items: center; - justify-content: center; - font-size: 0.875rem; - font-weight: 500; - transition-property: color, background-color; + .darkBtn { + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; - outline-offset: 2px; - opacity: 1; - pointer-events: auto; - background-color: rgb(9, 9, 11); - color: rgb(250, 250, 250); - height: 2.75rem; + color: rgb(250 250 250); + font-weight: 500; + font-size: 0.875rem; + line-height: 1.25rem; padding-left: 2rem; padding-right: 2rem; + background-color: rgb(9 9 11); border-radius: 0.375rem; - } - - .secondary-button { - display: inline-flex; - align-items: center; justify-content: center; - font-size: 0.875rem; - font-weight: 500; - transition-property: color, background-color, border-color; - transition-duration: 150ms; - outline-offset: 2px; - opacity: 1; - pointer-events: auto; - background-color: rgb(250, 250, 250); - color: rgb(9, 9, 11); + align-items: center; height: 2.75rem; + cursor: pointer; + display: inline-flex; + } + .darkBtn:hover { + background-color: rgb(9 9 11 / 0.9); + } + .lightBtn { + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; + color: rgb(24, 24, 27); + background: rgb(250 250 250); + font-weight: 500; + font-size: 0.875rem; + line-height: 1.25rem; padding-left: 2rem; padding-right: 2rem; - border: 1px solid rgb(161, 161, 170, 0.25); border-radius: 0.375rem; + border: 1px solid rgb(229, 231, 235); + justify-content: center; + align-items: center; + height: 2.75rem; + display: inline-flex; + cursor: pointer; } - - .secondary-button:hover { + .lightBtn:hover { background-color: rgb(244 244 245); - color: rgb(9, 9, 11); } - - .section { - margin-top: 8rem; - margin-bottom: 8rem; + .trpc-section { padding-top: 2rem; padding-bottom: 2rem; - display: flex; - flex-direction: column; - gap: 0.5rem; } @media (min-width: 768px) { - .section { + .trpc-section { padding-top: 3rem; padding-bottom: 3rem; } } @media (min-width: 1024px) { - .section { + .trpc-section { padding-top: 6rem; + padding-bottom: 6rem; } } - - .intro-container { - margin-left: auto; - margin-right: auto; + .trpc-container { + text-align: center; + gap: 1rem; + justify-content: center; + align-items: center; + flex-direction: column; max-width: 58rem; display: flex; - flex-direction: column; - align-items: center; - gap: 1rem; - text-align: center; + margin-left: auto; + margin-right: auto; } - - .title { - font-weight: 500; - font-size: 3rem; + .trpc-heading { + color: #dd0031; line-height: 1.1; - text-align: center; + font-weight: 500; + font-size: 1.875rem; margin: 0; } - - .description { + .trpc-description { + line-height: 1.5; max-width: 85%; - font-size: 1.125rem; - line-height: 1.75rem; - } - - .feature-card { - position: relative; - overflow: hidden; - border: 1px solid rgb(228 228 231); - border-radius: 0.375rem; - padding: 0.5rem; + margin: 0; } - .status-badge { - position: absolute; - top: 0.5rem; - right: 0.5rem; - border-radius: 0.5rem; - background-color: rgb(228, 228, 231); - padding: 0.375rem 0.75rem; - font-size: 0.75rem; - font-weight: 500; + @media (min-width: 640px) { + .trpc-description { + line-height: 1.75rem; + font-size: 1.125rem; + } } - - .card-content { + .trpc-form { + padding-bottom: 0.5rem; + align-items: center; display: flex; - height: 180px; - flex-direction: column; - justify-content: space-between; - border-radius: 0.375rem; - padding: 1.5rem; - } - - .card-details { - margin-top: 0.5rem; + margin-top: 2rem; + gap: 0.5rem; } - - .card-title { - font-weight: bold; + .sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } - - .card-description { + .trpcInput { + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; + font-weight: 500; font-size: 0.875rem; + line-height: 1.25rem; + padding-left: 0.5rem; + padding-right: 0.5rem; + border-radius: 0.375rem; + justify-content: center; + align-items: center; + width: 100%; + height: 2.5rem; + font-family: inherit; + font-feature-settings: inherit; + font-variation-settings: inherit; + color: inherit; + margin: 0; + border: 1px solid rgb(229, 231, 235); } - .further-info-container { - margin-left: auto; - margin-right: auto; - text-align: center; - max-width: 58rem; + .notes { + margin-top: 1rem; } - - .description { - font-size: 1.125rem; - line-height: 1.75rem; + .note { + padding: 1rem; + margin-bottom: 1rem; + border-radius: 0.375rem; + font-weight: 400; + border: 1px solid rgb(229, 231, 235); } - - .note-form { + .note-head { display: flex; - padding-bottom: 0.5rem; - margin-top: 2rem; + justify-content: space-between; align-items: center; } - .note-input { - display: flex; - height: 2.5rem; - width: 100%; - border-radius: 0.375rem; - border: 1px solid rgb(161, 161, 170, 0.25); - background-color: transparent; - padding: 0.5rem 0.75rem; + .note-date { font-size: 0.875rem; - outline: none; - font-family: inherit; - color: inherit; + margin: 0; + line-height: 1.25rem; + color: rgb(161, 161, 170); } - - .note-input::placeholder { - color: rgb(161, 161, 170, 0.8); + .note-note { + margin: 0 0 2rem 0; } - - .note-input:focus-visible { - outline: 2px solid rgb(39, 39, 42); - outline-offset: 2px; + .noteDeleteBtn { + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; + font-weight: 500; + font-size: 0.875rem; + line-height: 1.25rem; + border-radius: 0.375rem; + justify-content: center; + align-items: center; + width: 1.5rem; + height: 1.5rem; + display: inline-flex; + cursor: pointer; + background: none; + border: 1px solid transparent; } - .note-input:disabled { - cursor: not-allowed; - opacity: 0.5; + .noteDeleteBtn:hover { + background-color: rgb(244 244 245); } - .add-note-button { - margin-left: 0.5rem; - height: 2.5rem !important; + .no-notes { + padding: 5rem; + border-radius: 0.75rem; + text-align: center; } - .hidden { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; + .no-notes-headline { + font-size: 1.25rem; + line-height: 1.75rem; + font-weight: 500; + margin: 0; } - .note { - position: relative; + .no-notes-desc { + color: rgb(161 161 170); + margin: 0; } - .note-grid { - display: flex; + + .loading-text { margin-top: 1rem; - flex-direction: column; - gap: 1rem; - } - .delete-note-icon { - width: 1rem; - height: 1rem; - } - .delete-note-button { - position: absolute; - top: 1rem; - right: 1rem; - padding: 0.5rem !important; - height: 2rem !important; - } - .loading { - padding-top: 3rem; text-align: center; } `, ], template: `
-
-
- - - - - - - - - - - - - - - - - - - - - - - +
+
+ Follow along on Twitter -

- Analog. The fullstack Angular +

+ Analog. The fullstack Angular meta-framework

-

+

Analog is for building applications and websites with Angular.
Powered by Vite.

-
- Read the docs +
+ Read the docs GitHubStar on GitHub
-
-
-

Leave a note

-

+

+
+

Leave a note

+

This is an example of how to you can use tRPC to superpower you client server interaction.

-
- + + - +
- - -
-
- -
-
-

{{ note.note }}

-

- {{ note.createdAt | date }} -

-
-
+

{{ note.note }}

-
-
-
-

No notes yet...

-

- Add a new one and see them appear here... -

-
-
+
+

No notes yet!

+

+ Add a new one and see them appear here... +

- +
-

Loading...

+

Loading...

@@ -570,7 +423,7 @@ export class AnalogWelcomeComponent { return; } this._trpc.note.create - .mutate({ title: this.newNote }) + .mutate({ note: this.newNote }) .pipe(take(1)) .subscribe(() => this.triggerRefresh$.next()); this.newNote = ''; diff --git a/packages/nx-plugin/src/generators/app/files/welcome-components/css/src/app/pages/analog-welcome.component.ts__template__ b/packages/nx-plugin/src/generators/app/files/welcome-components/css/src/app/pages/analog-welcome.component.ts__template__ index 7607e5dda..09bb6af5d 100644 --- a/packages/nx-plugin/src/generators/app/files/welcome-components/css/src/app/pages/analog-welcome.component.ts__template__ +++ b/packages/nx-plugin/src/generators/app/files/welcome-components/css/src/app/pages/analog-welcome.component.ts__template__ @@ -5,339 +5,250 @@ import { Component } from '@angular/core'; standalone: true, styles: [ ` - a { - color: inherit; - text-decoration: inherit; - } - :host { + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, + 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, + 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', + 'Noto Color Emoji'; display: flex; - padding: 2rem; + padding: 2rem 1rem 8rem; flex-direction: column; + background: rgb(250 250 250); height: 100%; - min-height: 100vh; - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; } - + a { + color: inherit; + text-decoration: inherit; + } .main { - margin-left: auto; - margin-right: auto; + margin: 0 auto; flex: 1 1 0; } - - .section-main { + .intro-section { padding-top: 1.5rem; padding-bottom: 2rem; + } + .intro-section > * + * { margin-top: 1.5rem; } - @media (min-width: 768px) { - .section-main { + .intro-section { padding-top: 2.5rem; padding-bottom: 3rem; } } - @media (min-width: 1024px) { - .section-main { + .intro-section { padding-top: 8rem; padding-bottom: 8rem; } } - - .main-icon { - margin-left: auto; - margin-right: auto; - margin-bottom: -1rem; - width: 4rem; - height: 4rem; - } - - .container-main { + .intro-container { display: flex; - text-align: center; flex-direction: column; - align-items: center; + text-align: center; gap: 1rem; + align-items: center; + max-width: 64rem; } - - .button-badge { - padding-top: 0.375rem; - padding-bottom: 0.375rem; - padding-left: 1rem; - padding-right: 1rem; + .intro-logo { + height: 3rem; + width: 3rem; + } + .intro-badge { + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; + font-weight: 500; font-size: 0.875rem; line-height: 1.25rem; - font-weight: 500; - border-radius: 1rem; + padding: 0.375rem 1rem; background-color: rgb(228 228 231); + border-radius: 1rem; } - - .text-analog-red { - color: rgb(221,0,49); - } - - .heading-1 { - font-size: 1.875rem; - line-height: 2.25rem; + .intro-heading { + margin: 0; font-weight: 500; - margin: 1rem 0; } @media (min-width: 640px) { - .heading-1 { - font-size: 2.25rem; /* 36px */ - line-height: 2.5rem; /* 40px */ + .intro-heading { + font-size: 3rem; + line-height: 1; } } - @media (min-width: 768px) { - .heading-1 { - font-size: 3rem; /* 48px */ + .intro-heading { + font-size: 3.75rem; line-height: 1; } } - @media (min-width: 1024px) { - .heading-1 { - font-size: 3.75rem; /* 60px */ + .intro-heading { + font-size: 4.5rem; line-height: 1; } } - - .paragraph-intro { + .intro-analog { + color: #dd0031; + } + .intro-description { line-height: 1.5; + max-width: 42rem; + margin: 0; } @media (min-width: 640px) { - .paragraph-intro { - font-size: 1.25rem; + .intro-description { line-height: 2rem; + font-size: 1.25rem; } } - - .button-group { - display: flex; - gap: 1rem; + .btn-container > * + * { + margin-left: 1rem; } - - .primary-button { - display: inline-flex; - align-items: center; - justify-content: center; - font-size: 0.875rem; - font-weight: 500; - transition-property: color, background-color; + .darkBtn { + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; - outline-offset: 2px; - opacity: 1; - pointer-events: auto; - background-color: rgb(9, 9, 11); - color: rgb(250, 250, 250); - height: 2.75rem; + color: rgb(250 250 250); + font-weight: 500; + font-size: 0.875rem; + line-height: 1.25rem; padding-left: 2rem; padding-right: 2rem; + background-color: rgb(9 9 11); border-radius: 0.375rem; - } - - .secondary-button { - display: inline-flex; - align-items: center; justify-content: center; - font-size: 0.875rem; - font-weight: 500; - transition-property: color, background-color, border-color; - transition-duration: 150ms; - outline-offset: 2px; - opacity: 1; - pointer-events: auto; - background-color: rgb(250, 250, 250); - color: rgb(9, 9, 11); + align-items: center; height: 2.75rem; + cursor: pointer; + display: inline-flex; + } + .darkBtn:hover { + background-color: rgb(9 9 11 / 0.9); + } + .lightBtn { + transition-property: color, background-color, border-color, + text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; + color: rgb(24, 24, 27); + background: rgb(250 250 250); + font-weight: 500; + font-size: 0.875rem; + line-height: 1.25rem; padding-left: 2rem; padding-right: 2rem; - border: 1px solid rgb(161, 161, 170, 0.25); border-radius: 0.375rem; + border: 1px solid rgb(229, 231, 235); + justify-content: center; + align-items: center; + height: 2.75rem; + display: inline-flex; + cursor: pointer; } - - .secondary-button:hover { + .lightBtn:hover { background-color: rgb(244 244 245); - color: rgb(9, 9, 11); } - - .section { - margin-top: 8rem; - margin-bottom: 8rem; + .counter-section { padding-top: 2rem; padding-bottom: 2rem; - display: flex; - flex-direction: column; - gap: 0.5rem; } @media (min-width: 768px) { - .section { + .counter-section { padding-top: 3rem; padding-bottom: 3rem; } } @media (min-width: 1024px) { - .section { + .counter-section { padding-top: 6rem; + padding-bottom: 6rem; } } - - .intro-container { - margin-left: auto; - margin-right: auto; + .counter-container { + text-align: center; + gap: 1rem; + justify-content: center; + align-items: center; + flex-direction: column; max-width: 58rem; display: flex; - flex-direction: column; - align-items: center; - gap: 1rem; - text-align: center; + margin-left: auto; + margin-right: auto; } - - .title { - font-weight: 500; - font-size: 3rem; + .counter-heading { + color: #dd0031; line-height: 1.1; - text-align: center; + font-weight: 500; + font-size: 1.875rem; margin: 0; } - - .description { + .counter-description { + line-height: 1.5; max-width: 85%; - font-size: 1.125rem; - line-height: 1.75rem; + margin: 0; } + @media (min-width: 640px) { + .counter-description { + line-height: 1.75rem; + font-size: 1.125rem; + } + } .count { margin-left: 0.25rem; - font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', - monospace; + font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; } `, ], template: `
-
-
- - - - - - - - - - - - - - - - - - - +
+ - - - - Follow along on Twitter -

- Analog. The fullstack Angular meta-framework +

+ Analog. The fullstack Angular + meta-framework

-

+

Analog is for building applications and websites with Angular.
Powered by Vite.

-
- Read the docs +
+ Read the docs GitHubStar on GitHub
-
-

Counter

-

+

+

Counter

+

This is a simple interactive counter. Powered by Angular.

-
@@ -346,8 +257,8 @@ import { Component } from '@angular/core'; `, }) export class AnalogWelcomeComponent { - public count = 0; - public increment() { + count = 0; + increment() { this.count++; - } + } } diff --git a/packages/nx-plugin/src/generators/app/files/welcome-components/tailwind-trpc/src/app/pages/analog-welcome.component.ts__template__ b/packages/nx-plugin/src/generators/app/files/welcome-components/tailwind-trpc/src/app/pages/analog-welcome.component.ts__template__ index 1e2c2361a..2a7f0dbda 100644 --- a/packages/nx-plugin/src/generators/app/files/welcome-components/tailwind-trpc/src/app/pages/analog-welcome.component.ts__template__ +++ b/packages/nx-plugin/src/generators/app/files/welcome-components/tailwind-trpc/src/app/pages/analog-welcome.component.ts__template__ @@ -18,92 +18,11 @@ import { Note } from '../../note';
- - - - - - - - - - - - - - - - - - - - - - - + AnalogJs logo. Two red triangles and a white analog wave in front Follow along on TwitterGitHubStar on GitHub
-
+
@@ -143,7 +62,7 @@ import { Note } from '../../note'; Leave a note

This is an example of how to you can use tRPC to superpower you client server interaction. @@ -158,28 +77,26 @@ import { Note } from '../../note';

{{ note.createdAt | date }}

@@ -141,7 +59,7 @@ import { AsyncPipe, DatePipe, NgFor, NgIf } from '@angular/common';

diff --git a/packages/nx-plugin/src/generators/app/generator.ts b/packages/nx-plugin/src/generators/app/generator.ts index 6f1de5394..e46fdd81e 100644 --- a/packages/nx-plugin/src/generators/app/generator.ts +++ b/packages/nx-plugin/src/generators/app/generator.ts @@ -141,7 +141,8 @@ export async function appGenerator( } addHomePage(tree, normalizedOptions); - addEslint(tree, normalizedOptions); + + await addEslint(tree, normalizedOptions); if (!normalizedOptions.skipFormat) { await formatFiles(tree);