@analogjs/platform 0.2.0-beta.1 → 0.2.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/package.json +16 -2
  2. package/src/lib/nx-plugin/generators.json +6 -0
  3. package/src/lib/nx-plugin/package.json +3 -0
  4. package/src/lib/nx-plugin/src/generators/app/compat.js +1 -1
  5. package/src/lib/nx-plugin/src/generators/app/compat.js.map +1 -1
  6. package/src/lib/nx-plugin/src/generators/app/files/index-pages/css/src/app/pages/index.page.ts__template__ +355 -0
  7. package/src/lib/nx-plugin/src/generators/app/files/index-pages/css-trpc/src/app/pages/index.page.ts__template__ +585 -0
  8. package/src/lib/nx-plugin/src/generators/app/files/index-pages/tailwind/src/app/pages/index.page.ts__template__ +158 -0
  9. package/src/lib/nx-plugin/src/generators/app/files/index-pages/tailwind-trpc/src/app/pages/index.page.ts__template__ +269 -0
  10. package/src/lib/nx-plugin/src/generators/app/files/tRPC/src/note.ts__template__ +5 -0
  11. package/src/lib/nx-plugin/src/generators/app/files/tRPC/src/server/routes/trpc/[trpc].ts__template__ +8 -0
  12. package/src/lib/nx-plugin/src/generators/app/files/tRPC/src/server/trpc/context.ts__template__ +7 -0
  13. package/src/lib/nx-plugin/src/generators/app/files/tRPC/src/server/trpc/routers/index.ts__template__ +8 -0
  14. package/src/lib/nx-plugin/src/generators/app/files/tRPC/src/server/trpc/routers/notes.ts__template__ +32 -0
  15. package/src/lib/nx-plugin/src/generators/app/files/tRPC/src/server/trpc/trpc.ts__template__ +10 -0
  16. package/src/lib/nx-plugin/src/generators/app/files/tRPC/src/trpc-client.ts__template__ +11 -0
  17. package/src/lib/nx-plugin/src/generators/app/files/tailwind/postcss.config.js__template__ +10 -0
  18. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/.eslintrc.json__template__ +3 -3
  19. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/app/app.component.ts__template__ +0 -10
  20. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/favicon.ico__template__ +0 -0
  21. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/main.ts__template__ +9 -2
  22. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/styles.css__template__ +3 -74
  23. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.app.json__template__ +1 -1
  24. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.json__template__ +1 -1
  25. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.spec.json__template__ +1 -2
  26. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/vite.config.ts__template__ +20 -12
  27. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/.eslintrc.json__template__ +3 -3
  28. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/app/app.component.ts__template__ +0 -10
  29. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/app.config.server.ts__template__ +9 -0
  30. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/app.config.ts__template__ +16 -0
  31. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/favicon.ico__template__ +0 -0
  32. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/main.server.ts__template__ +4 -16
  33. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/main.ts__template__ +4 -5
  34. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/styles.css__template__ +3 -74
  35. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.app.json__template__ +1 -1
  36. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.json__template__ +1 -1
  37. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.spec.json__template__ +1 -2
  38. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/vite.config.ts__template__ +21 -13
  39. package/src/lib/nx-plugin/src/generators/app/generator.d.ts +5 -2
  40. package/src/lib/nx-plugin/src/generators/app/generator.js +42 -55
  41. package/src/lib/nx-plugin/src/generators/app/generator.js.map +1 -1
  42. package/src/lib/nx-plugin/src/generators/app/lib/add-index-pages.d.ts +3 -0
  43. package/src/lib/nx-plugin/src/generators/app/lib/add-index-pages.js +15 -0
  44. package/src/lib/nx-plugin/src/generators/app/lib/add-index-pages.js.map +1 -0
  45. package/src/lib/nx-plugin/src/generators/app/lib/add-trpc.d.ts +3 -0
  46. package/src/lib/nx-plugin/src/generators/app/schema.d.ts +2 -1
  47. package/src/lib/nx-plugin/src/generators/app/schema.json +13 -5
  48. package/src/lib/nx-plugin/src/generators/preset/generator.d.ts +3 -0
  49. package/src/lib/nx-plugin/src/generators/preset/generator.js +10 -0
  50. package/src/lib/nx-plugin/src/generators/preset/generator.js.map +1 -0
  51. package/src/lib/nx-plugin/src/generators/preset/schema.d.ts +7 -0
  52. package/src/lib/nx-plugin/src/generators/preset/schema.json +38 -0
  53. package/src/lib/options.d.ts +1 -0
  54. package/src/lib/platform-plugin.js +5 -5
  55. package/src/lib/ssr/dev-server-plugin.js +1 -2
  56. package/src/lib/build-server.d.ts +0 -3
  57. package/src/lib/build-server.js +0 -23
  58. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/app/pages/index.page.ts__template__ +0 -62
  59. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/app/pages/index.page.ts__template__ +0 -62
  60. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/main.providers.ts__template__ +0 -5
  61. package/src/lib/nx-plugin/src/generators/app/files/versions.d.ts +0 -26
  62. package/src/lib/nx-plugin/src/generators/app/files/versions.js +0 -36
  63. package/src/lib/nx-plugin/src/generators/app/files/versions.js.map +0 -1
  64. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.d.ts +0 -2
  65. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.js +0 -80
  66. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.js.map +0 -1
  67. package/src/lib/nx-plugin/src/index.d.ts +0 -0
  68. package/src/lib/nx-plugin/src/index.js +0 -1
  69. package/src/lib/nx-plugin/src/index.js.map +0 -1
  70. package/src/lib/nx-plugin/src/utils/version-utils.d.ts +0 -2
  71. package/src/lib/nx-plugin/src/utils/version-utils.js +0 -18
  72. package/src/lib/nx-plugin/src/utils/version-utils.js.map +0 -1
  73. package/src/lib/runtime/api-middleware.js +0 -16
  74. package/src/lib/runtime/renderer.js +0 -19
  75. package/src/lib/ssr/build.d.ts +0 -3
  76. package/src/lib/ssr/build.js +0 -18
  77. package/src/lib/vite-nitro-plugin.d.ts +0 -4
  78. package/src/lib/vite-nitro-plugin.js +0 -106
@@ -1,75 +1,4 @@
1
- /* You can add global styles to this file, and also import other style files */
2
- :root {
3
- font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
4
- font-size: 16px;
5
- line-height: 24px;
6
- font-weight: 400;
7
-
8
- color-scheme: light dark;
9
- color: rgba(255, 255, 255, 0.87);
10
- background-color: #242424;
11
-
12
- font-synthesis: none;
13
- text-rendering: optimizeLegibility;
14
- -webkit-font-smoothing: antialiased;
15
- -moz-osx-font-smoothing: grayscale;
16
- -webkit-text-size-adjust: 100%;
17
- }
18
-
19
- a {
20
- font-weight: 500;
21
- color: #646cff;
22
- text-decoration: inherit;
23
- }
24
- a:hover {
25
- color: #535bf2;
26
- }
27
-
28
- body {
29
- margin: 0;
30
- display: flex;
31
- place-items: center;
32
- min-width: 320px;
33
- min-height: 100vh;
34
- }
35
-
36
- h1 {
37
- font-size: 3.2em;
38
- line-height: 1.1;
39
- }
40
-
41
- button {
42
- border-radius: 8px;
43
- border: 1px solid transparent;
44
- padding: 0.6em 1.2em;
45
- font-size: 1em;
46
- font-weight: 500;
47
- font-family: inherit;
48
- background-color: #1a1a1a;
49
- cursor: pointer;
50
- transition: border-color 0.25s;
51
- }
52
- button:hover {
53
- border-color: #646cff;
54
- }
55
- button:focus,
56
- button:focus-visible {
57
- outline: 4px auto -webkit-focus-ring-color;
58
- }
59
-
60
- .card {
61
- padding: 2em;
62
- }
63
-
64
- @media (prefers-color-scheme: light) {
65
- :root {
66
- color: #213547;
67
- background-color: #ffffff;
68
- }
69
- a:hover {
70
- color: #747bff;
71
- }
72
- button {
73
- background-color: #f9f9f9;
74
- }
1
+ html, body {
2
+ display: block;
3
+ height: 100%;
75
4
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "extends": "./tsconfig.json",
3
3
  "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
4
+ "outDir": "<%= offsetFromRoot %>dist/out-tsc",
5
5
  "types": [],
6
6
  "target": "ES2022",
7
7
  "useDefineForClassFields": false
@@ -1,5 +1,5 @@
1
1
  {
2
- "extends": "../../tsconfig.base.json",
2
+ "extends": "<%= offsetFromRoot %>tsconfig.base.json",
3
3
  "files": [],
4
4
  "include": [],
5
5
  "exclude": ["./src/server/**/*"],
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "extends": "./tsconfig.json",
3
3
  "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
4
+ "outDir": "<%= offsetFromRoot %>dist/out-tsc",
5
5
  "types": ["node", "vitest/globals"]
6
6
  },
7
7
  "files": [
8
8
  "src/test-setup.ts",
9
- "src/polyfills.ts"
10
9
  ],
11
10
  "include": [
12
11
  "src/**/*.spec.ts",
@@ -9,6 +9,14 @@ import tsConfigPaths from 'vite-tsconfig-paths';
9
9
  export default defineConfig(({ mode }) => {
10
10
  return {
11
11
  publicDir: 'src/public',
12
+ <% if (addTRPC) { %>
13
+ server: {
14
+ host: '127.0.0.1'
15
+ },
16
+ ssr: {
17
+ noExternal: '@analogjs/trpc/**',
18
+ },
19
+ <% } %>
12
20
  optimizeDeps: {
13
21
  include: ['@angular/common', '@angular/forms'],
14
22
  },
@@ -17,33 +25,33 @@ export default defineConfig(({ mode }) => {
17
25
  },
18
26
  plugins: [
19
27
  analog({
20
- ssrBuildDir: '../../dist/apps/<%= projectName %>/ssr',
21
- entryServer: 'apps/<%= projectName %>/src/main.server.ts',
28
+ ssrBuildDir: '<%= offsetFromRoot %>dist/<%= appsDir %>/<%= projectName %>/ssr',
29
+ entryServer: '<%= appsDir %>/<%= projectName %>/src/main.server.ts',
22
30
  vite: {
23
31
  inlineStylesExtension: 'css',
24
32
  tsconfig:
25
33
  mode === 'test'
26
- ? 'apps/<%= projectName %>/tsconfig.spec.json'
27
- : 'apps/<%= projectName %>/tsconfig.app.json',
34
+ ? '<%= appsDir %>/<%= projectName %>/tsconfig.spec.json'
35
+ : '<%= appsDir %>/<%= projectName %>/tsconfig.app.json',
28
36
  },
29
37
  nitro: {
30
- rootDir: 'apps/<%= projectName %>',
38
+ rootDir: '<%= appsDir %>/<%= projectName %>',
31
39
  output: {
32
- dir: '../../../dist/apps/<%= projectName %>/analog',
33
- publicDir: '../../../dist/apps/<%= projectName %>/analog/public',
40
+ dir: '<%= offsetFromRoot %>../dist/<%= appsDir %>/<%= projectName %>/analog',
41
+ publicDir: '<%= offsetFromRoot %>../dist/<%= appsDir %>/<%= projectName %>/analog/public',
34
42
  },
35
- publicAssets: [{ dir: `../../../dist/apps/<%= projectName %>/client` }],
43
+ publicAssets: [{ dir: `<%= offsetFromRoot %>../dist/<%= appsDir %>/<%= projectName %>/client` }],
36
44
  serverAssets: [
37
- { baseName: 'public', dir: `./dist/apps/<%= projectName %>/client` },
45
+ { baseName: 'public', dir: `./dist/<%= appsDir %>/<%= projectName %>/client` },
38
46
  ],
39
- buildDir: '../../dist/apps/<%= projectName %>/.nitro',
47
+ buildDir: '<%= offsetFromRoot %>dist/<%= appsDir %>/<%= projectName %>/.nitro',
40
48
  },
41
49
  prerender: {
42
50
  routes: ['/'],
43
51
  },
44
52
  }),
45
53
  tsConfigPaths({
46
- root: '../../',
54
+ root: '<%= offsetFromRoot %>',
47
55
  }),
48
56
  visualizer() as Plugin,
49
57
  splitVendorChunkPlugin(),
@@ -54,7 +62,7 @@ export default defineConfig(({ mode }) => {
54
62
  setupFiles: ['src/test-setup.ts'],
55
63
  include: ['**/*.spec.ts'],
56
64
  cache: {
57
- dir: `../../node_modules/.vitest`,
65
+ dir: `<%= offsetFromRoot %>node_modules/.vitest`,
58
66
  },
59
67
  },
60
68
  define: {
@@ -1,11 +1,11 @@
1
1
  {
2
- "extends": ["../../.eslintrc.json"],
2
+ "extends": ["<%= offsetFromRoot %>.eslintrc.json"],
3
3
  "ignorePatterns": ["!**/*"],
4
4
  "overrides": [
5
5
  {
6
6
  "files": ["*.ts"],
7
7
  "extends": [
8
- "plugin:@nrwl/nx/angular",
8
+ "plugin:<%= nxPackageNamespace %>/nx/angular",
9
9
  "plugin:@angular-eslint/template/process-inline-templates"
10
10
  ],
11
11
  "rules": {
@@ -29,7 +29,7 @@
29
29
  },
30
30
  {
31
31
  "files": ["*.html"],
32
- "extends": ["plugin:@nrwl/nx/angular-template"],
32
+ "extends": ["plugin:<%= nxPackageNamespace %>/nx/angular-template"],
33
33
  "rules": {}
34
34
  }
35
35
  ]
@@ -6,15 +6,5 @@ import { RouterOutlet } from '@angular/router';
6
6
  standalone: true,
7
7
  imports: [RouterOutlet],
8
8
  template: ` <router-outlet></router-outlet> `,
9
- styles: [
10
- `
11
- :host {
12
- max-width: 1280px;
13
- margin: 0 auto;
14
- padding: 2rem;
15
- text-align: center;
16
- }
17
- `,
18
- ],
19
9
  })
20
10
  export class AppComponent {}
@@ -0,0 +1,9 @@
1
+ import { ApplicationConfig, mergeApplicationConfig } from '@angular/core';
2
+ import { provideServerRendering } from '@angular/platform-server';
3
+ import { appConfig } from './app.config';
4
+
5
+ const serverConfig: ApplicationConfig = {
6
+ providers: [provideServerRendering()],
7
+ };
8
+
9
+ export const config = mergeApplicationConfig(appConfig, serverConfig);
@@ -0,0 +1,16 @@
1
+ import { ApplicationConfig } from '@angular/core';
2
+ import { provideClientHydration } from '@angular/platform-browser';
3
+ import { provideFileRouter } from '@analogjs/router';
4
+ <% if (addTRPC) { %>
5
+ import { provideTRPCClient } from './trpc-client';
6
+ <% } %>
7
+
8
+ export const appConfig: ApplicationConfig = {
9
+ providers: [
10
+ provideFileRouter(),
11
+ provideClientHydration(),
12
+ <% if (addTRPC) { %>
13
+ provideTRPCClient(),
14
+ <% } %>
15
+ ],
16
+ };
@@ -1,32 +1,20 @@
1
1
  import 'zone.js/node';
2
2
  import { enableProdMode } from '@angular/core';
3
- import { bootstrapApplication } from '@angular/platform-browser';
4
- import {
5
- provideServerRendering,
6
- renderApplication,
7
- } from '@angular/platform-server';
8
-
3
+ import { renderApplication } from '@angular/platform-server';
9
4
  import { AppComponent } from './app/app.component';
10
- import { mainProviders } from './main.providers';
5
+ import { bootstrapApplication } from '@angular/platform-browser';
6
+ import { config } from './app.config.server';
11
7
 
12
8
  if (import.meta.env.PROD) {
13
9
  enableProdMode();
14
10
  }
15
11
 
16
- export function bootstrap() {
17
- return bootstrapApplication(AppComponent, {
18
- providers: [
19
- mainProviders,
20
- provideServerRendering(),
21
- ],
22
- });
23
- }
12
+ const bootstrap = () => bootstrapApplication(AppComponent, config);
24
13
 
25
14
  export default async function render(url: string, document: string) {
26
15
  const html = await renderApplication(bootstrap, {
27
16
  document,
28
17
  url,
29
18
  });
30
-
31
19
  return html;
32
20
  }
@@ -1,10 +1,9 @@
1
1
  import 'zone.js';
2
2
  import { bootstrapApplication } from '@angular/platform-browser';
3
- import { provideFileRouter } from '@analogjs/router';
4
3
 
5
4
  import { AppComponent } from './app/app.component';
6
- import { mainProviders } from './main.providers';
5
+ import { appConfig } from './app.config';
7
6
 
8
- bootstrapApplication(AppComponent, {
9
- providers: [provideFileRouter(), ...mainProviders],
10
- });
7
+ bootstrapApplication(AppComponent, appConfig).catch((err) =>
8
+ console.error(err)
9
+ );
@@ -1,75 +1,4 @@
1
- /* You can add global styles to this file, and also import other style files */
2
- :root {
3
- font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
4
- font-size: 16px;
5
- line-height: 24px;
6
- font-weight: 400;
7
-
8
- color-scheme: light dark;
9
- color: rgba(255, 255, 255, 0.87);
10
- background-color: #242424;
11
-
12
- font-synthesis: none;
13
- text-rendering: optimizeLegibility;
14
- -webkit-font-smoothing: antialiased;
15
- -moz-osx-font-smoothing: grayscale;
16
- -webkit-text-size-adjust: 100%;
17
- }
18
-
19
- a {
20
- font-weight: 500;
21
- color: #646cff;
22
- text-decoration: inherit;
23
- }
24
- a:hover {
25
- color: #535bf2;
26
- }
27
-
28
- body {
29
- margin: 0;
30
- display: flex;
31
- place-items: center;
32
- min-width: 320px;
33
- min-height: 100vh;
34
- }
35
-
36
- h1 {
37
- font-size: 3.2em;
38
- line-height: 1.1;
39
- }
40
-
41
- button {
42
- border-radius: 8px;
43
- border: 1px solid transparent;
44
- padding: 0.6em 1.2em;
45
- font-size: 1em;
46
- font-weight: 500;
47
- font-family: inherit;
48
- background-color: #1a1a1a;
49
- cursor: pointer;
50
- transition: border-color 0.25s;
51
- }
52
- button:hover {
53
- border-color: #646cff;
54
- }
55
- button:focus,
56
- button:focus-visible {
57
- outline: 4px auto -webkit-focus-ring-color;
58
- }
59
-
60
- .card {
61
- padding: 2em;
62
- }
63
-
64
- @media (prefers-color-scheme: light) {
65
- :root {
66
- color: #213547;
67
- background-color: #ffffff;
68
- }
69
- a:hover {
70
- color: #747bff;
71
- }
72
- button {
73
- background-color: #f9f9f9;
74
- }
1
+ html, body {
2
+ display: block;
3
+ height: 100%;
75
4
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "extends": "./tsconfig.json",
3
3
  "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
4
+ "outDir": "<%= offsetFromRoot %>dist/out-tsc",
5
5
  "types": [],
6
6
  "target": "ES2022",
7
7
  "useDefineForClassFields": false
@@ -1,5 +1,5 @@
1
1
  {
2
- "extends": "../../tsconfig.base.json",
2
+ "extends": "<%= offsetFromRoot %>tsconfig.base.json",
3
3
  "files": [],
4
4
  "include": [],
5
5
  "exclude": ["./src/server/**/*"],
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "extends": "./tsconfig.json",
3
3
  "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
4
+ "outDir": "<%= offsetFromRoot %>dist/out-tsc",
5
5
  "types": ["node", "vitest/globals"]
6
6
  },
7
7
  "files": [
8
8
  "src/test-setup.ts",
9
- "src/polyfills.ts"
10
9
  ],
11
10
  "include": [
12
11
  "src/**/*.spec.ts",
@@ -9,6 +9,14 @@ import tsConfigPaths from 'vite-tsconfig-paths';
9
9
  export default defineConfig(({ mode }) => {
10
10
  return {
11
11
  publicDir: 'src/public',
12
+ <% if (addTRPC) { %>
13
+ server: {
14
+ host: '127.0.0.1'
15
+ },
16
+ ssr: {
17
+ noExternal: '@analogjs/trpc/**',
18
+ },
19
+ <% } %>
12
20
  optimizeDeps: {
13
21
  include: ['@angular/common', '@angular/forms'],
14
22
  },
@@ -17,33 +25,33 @@ export default defineConfig(({ mode }) => {
17
25
  },
18
26
  plugins: [
19
27
  analog({
20
- ssrBuildDir: '../../dist/apps/<%= projectName %>/ssr',
21
- entryServer: 'apps/<%= projectName %>/src/main.server.ts',
28
+ ssrBuildDir: '<%= offsetFromRoot %>dist/<%= appsDir %>/<%= projectName %>/ssr',
29
+ entryServer: '<%= appsDir %>/<%= projectName %>/src/main.server.ts',
22
30
  vite: {
23
31
  inlineStylesExtension: 'css',
24
32
  tsconfig:
25
33
  mode === 'test'
26
- ? 'apps/<%= projectName %>/tsconfig.spec.json'
27
- : 'apps/<%= projectName %>/tsconfig.app.json',
34
+ ? '<%= appsDir %>/<%= projectName %>/tsconfig.spec.json'
35
+ : '<%= appsDir %>/<%= projectName %>/tsconfig.app.json',
28
36
  },
29
37
  nitro: {
30
- rootDir: 'apps/<%= projectName %>',
38
+ rootDir: '<%= appsDir %>/<%= projectName %>',
31
39
  output: {
32
- dir: '../../../dist/apps/<%= projectName %>/analog',
33
- publicDir: '../../../dist/apps/<%= projectName %>/analog/public',
40
+ dir: '<%= offsetFromRoot %>../dist/<%= appsDir %>/<%= projectName %>/analog',
41
+ publicDir: '<%= offsetFromRoot %>../dist/<%= appsDir %>/<%= projectName %>/analog/public',
34
42
  },
35
- publicAssets: [{ dir: `../../../dist/apps/<%= projectName %>/client` }],
43
+ publicAssets: [{ dir: `<%= offsetFromRoot %>../dist/<%= appsDir %>/<%= projectName %>/client` }],
36
44
  serverAssets: [
37
- { baseName: 'public', dir: `./dist/apps/<%= projectName %>/client` },
45
+ { baseName: 'public', dir: `./dist/<%= appsDir %>/<%= projectName %>/client` },
38
46
  ],
39
- buildDir: '../../dist/apps/<%= projectName %>/.nitro',
47
+ buildDir: '<%= offsetFromRoot %>dist/<%= appsDir %>/<%= projectName %>/.nitro',
40
48
  },
41
49
  prerender: {
42
50
  routes: ['/'],
43
51
  },
44
52
  }),
45
53
  tsConfigPaths({
46
- root: '../../',
54
+ root: '<%= offsetFromRoot %>',
47
55
  }),
48
56
  visualizer() as Plugin,
49
57
  splitVendorChunkPlugin(),
@@ -51,10 +59,10 @@ export default defineConfig(({ mode }) => {
51
59
  test: {
52
60
  globals: true,
53
61
  environment: 'jsdom',
54
- setupFiles: ['src/test.ts'],
62
+ setupFiles: ['src/test-setup.ts'],
55
63
  include: ['**/*.spec.ts'],
56
64
  cache: {
57
- dir: `../../node_modules/.vitest`,
65
+ dir: `<%= offsetFromRoot %>node_modules/.vitest`,
58
66
  },
59
67
  },
60
68
  define: {
@@ -1,4 +1,4 @@
1
- import { names, Tree } from '@nrwl/devkit';
1
+ import { names, Tree } from '@nx/devkit';
2
2
  import { AnalogNxApplicationGeneratorOptions } from './schema';
3
3
  export interface NormalizedOptions extends AnalogNxApplicationGeneratorOptions, ReturnType<typeof names> {
4
4
  projectName: string;
@@ -6,5 +6,8 @@ export interface NormalizedOptions extends AnalogNxApplicationGeneratorOptions,
6
6
  projectDirectory: string;
7
7
  parsedTags: string[];
8
8
  offsetFromRoot: string;
9
+ appsDir: string;
10
+ nxPackageNamespace: string;
9
11
  }
10
- export default function (tree: Tree, options: AnalogNxApplicationGeneratorOptions): Promise<() => void>;
12
+ export declare function appGenerator(tree: Tree, options: AnalogNxApplicationGeneratorOptions): Promise<() => void>;
13
+ export default appGenerator;
@@ -1,76 +1,62 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appGenerator = void 0;
3
4
  const tslib_1 = require("tslib");
4
- const devkit_1 = require("@nrwl/devkit");
5
- const path = require("path");
5
+ const devkit_1 = require("@nx/devkit");
6
6
  const semver_1 = require("semver");
7
7
  const version_utils_1 = require("../../utils/version-utils");
8
8
  const add_analog_project_config_1 = require("./lib/add-analog-project-config");
9
- const versions_1 = require("./files/versions");
10
- function normalizeOptions(tree, options) {
9
+ const add_analog_dependencies_1 = require("./lib/add-analog-dependencies");
10
+ const initialize_analog_workspace_1 = require("./lib/initialize-analog-workspace");
11
+ const add_files_1 = require("./lib/add-files");
12
+ const add_tailwind_config_1 = require("./lib/add-tailwind-config");
13
+ const add_trpc_1 = require("./lib/add-trpc");
14
+ const add_index_pages_1 = require("./lib/add-index-pages");
15
+ function normalizeOptions(tree, options, nxVersion) {
16
+ var _a, _b;
17
+ const appsDir = (0, devkit_1.getWorkspaceLayout)(tree).appsDir;
11
18
  const allNames = (0, devkit_1.names)(options.name);
12
- const name = allNames.fileName;
13
- const projectDirectory = options.directory
14
- ? `${(0, devkit_1.names)(options.directory).fileName}/${name}`
15
- : name;
19
+ const projectDirectory = allNames.fileName;
16
20
  const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-');
17
- const projectRoot = `${(0, devkit_1.getWorkspaceLayout)(tree).appsDir}/${projectDirectory}`;
21
+ const projectRoot = `${appsDir}/${projectDirectory}`;
18
22
  const parsedTags = options.tags
19
23
  ? options.tags.split(',').map((s) => s.trim())
20
24
  : [];
21
25
  const offsetFromRoot = (0, devkit_1.offsetFromRoot)(projectRoot);
26
+ const nxPackageNamespace = (0, semver_1.major)(nxVersion) >= 16 ? '@nx' : '@nrwl';
27
+ const addTailwind = (_a = options.addTailwind) !== null && _a !== void 0 ? _a : true;
28
+ const addTRPC = (_b = options.addTRPC) !== null && _b !== void 0 ? _b : false;
22
29
  return Object.assign(Object.assign(Object.assign({}, options), allNames), { projectName,
23
30
  projectRoot,
24
31
  projectDirectory,
25
32
  parsedTags,
26
- offsetFromRoot });
33
+ offsetFromRoot,
34
+ appsDir,
35
+ nxPackageNamespace,
36
+ addTailwind,
37
+ addTRPC });
27
38
  }
28
- function addDependencies(tree, majorAngularVersion) {
39
+ function appGenerator(tree, options) {
29
40
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
30
- const dependencies = {
31
- '@analogjs/content': majorAngularVersion === 15
32
- ? versions_1.V15_ANALOG_JS_CONTENT
33
- : versions_1.V16_ANALOG_JS_CONTENT,
34
- '@analogjs/router': majorAngularVersion === 15 ? versions_1.V15_ANALOG_JS_ROUTER : versions_1.V16_ANALOG_JS_ROUTER,
35
- '@angular/platform-server': majorAngularVersion === 15
36
- ? versions_1.V15_ANGULAR_PLATFORM_SERVER
37
- : versions_1.V16_ANGULAR_PLATFORM_SERVER,
38
- 'front-matter': majorAngularVersion === 15 ? versions_1.V15_FRONT_MATTER : versions_1.V16_FRONT_MATTER,
39
- marked: majorAngularVersion === 15 ? versions_1.V15_MARKED : versions_1.V16_MARKED,
40
- prismjs: majorAngularVersion === 15 ? versions_1.V15_PRISMJS : versions_1.V16_PRISMJS,
41
- };
42
- const devDependencies = {
43
- '@analogjs/platform': majorAngularVersion === 15
44
- ? versions_1.V15_ANALOG_JS_PLATFORM
45
- : versions_1.V16_ANALOG_JS_PLATFORM,
46
- '@nrwl/vite': majorAngularVersion === 15 ? versions_1.V15_NRWL_VITE : versions_1.V16_NRWL_VITE,
47
- jsdom: majorAngularVersion === 15 ? versions_1.V15_JSDOM : versions_1.V16_JSDOM,
48
- typescript: majorAngularVersion === 15 ? versions_1.V15_TYPESCRIPT : versions_1.V16_TYPESCRIPT,
49
- vite: majorAngularVersion === 15 ? versions_1.V15_VITE : versions_1.V16_VITE,
50
- 'vite-tsconfig-paths': majorAngularVersion === 15
51
- ? versions_1.V15_VITE_TSCONFIG_PATHS
52
- : versions_1.V16_VITE_TSCONFIG_PATHS,
53
- vitest: majorAngularVersion === 15 ? versions_1.V15_VITEST : versions_1.V16_VITEST,
54
- };
55
- (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies, devDependencies);
56
- });
57
- }
58
- function addFiles(tree, options, majorAngularVersion) {
59
- const templateOptions = Object.assign(Object.assign({}, options), { template: '' });
60
- (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files', 'template-angular-v' + majorAngularVersion), options.projectRoot, templateOptions);
61
- }
62
- function default_1(tree, options) {
63
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
64
- const installedAngularVersion = (0, version_utils_1.getInstalledAngularVersion)(tree, '16.0.0-next.0');
65
- const installedMajorAngularVersion = (0, semver_1.major)(installedAngularVersion);
66
- const normalizedOptions = normalizeOptions(tree, options);
67
- const { projectRoot, projectName, parsedTags, name } = normalizedOptions;
68
- if ((0, semver_1.lt)(installedAngularVersion, '15.0.0')) {
69
- throw new Error((0, devkit_1.stripIndents) `AnalogJs only supports an Angular version of 15 and higher`);
41
+ const nxVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, 'nx');
42
+ if (!nxVersion) {
43
+ throw new Error((0, devkit_1.stripIndents) `Nx must be installed to execute this plugin`);
44
+ }
45
+ const normalizedOptions = normalizeOptions(tree, options, nxVersion);
46
+ const angularVersion = yield (0, initialize_analog_workspace_1.initializeAngularWorkspace)(tree, nxVersion, normalizedOptions);
47
+ const majorNxVersion = (0, semver_1.major)(nxVersion);
48
+ const majorAngularVersion = (0, semver_1.major)(angularVersion);
49
+ yield (0, add_analog_dependencies_1.addAnalogDependencies)(tree, majorAngularVersion, majorNxVersion);
50
+ const { projectRoot, projectName, parsedTags, name, appsDir, nxPackageNamespace, } = normalizedOptions;
51
+ (0, add_analog_project_config_1.addAnalogProjectConfig)(tree, projectRoot, projectName, parsedTags, name, appsDir, nxPackageNamespace);
52
+ (0, add_files_1.addFiles)(tree, normalizedOptions, majorAngularVersion);
53
+ if (normalizedOptions.addTailwind) {
54
+ yield (0, add_tailwind_config_1.addTailwindConfig)(tree, normalizedOptions.projectRoot, normalizedOptions.projectName, majorNxVersion);
55
+ }
56
+ if (normalizedOptions.addTRPC) {
57
+ yield (0, add_trpc_1.addTRPC)(tree, normalizedOptions.projectRoot, majorAngularVersion, normalizedOptions);
70
58
  }
71
- yield addDependencies(tree, installedMajorAngularVersion);
72
- (0, add_analog_project_config_1.addAnalogProjectConfig)(tree, projectRoot, projectName, parsedTags, name);
73
- addFiles(tree, normalizedOptions, installedMajorAngularVersion);
59
+ (0, add_index_pages_1.addIndexPages)(tree, normalizedOptions);
74
60
  if (!normalizedOptions.skipFormat) {
75
61
  yield (0, devkit_1.formatFiles)(tree);
76
62
  }
@@ -79,5 +65,6 @@ function default_1(tree, options) {
79
65
  };
80
66
  });
81
67
  }
82
- exports.default = default_1;
68
+ exports.appGenerator = appGenerator;
69
+ exports.default = appGenerator;
83
70
  //# sourceMappingURL=generator.js.map