create-absolutejs 0.3.5 → 0.3.7

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.
@@ -1,7 +1,7 @@
1
1
  import type { AvailableDependency, CreateConfiguration } from '../../types';
2
2
  type CreateServerFileProps = Pick<CreateConfiguration, 'tailwind' | 'authProvider' | 'plugins' | 'buildDirectory' | 'assetsDirectory' | 'frontendDirectories'> & {
3
3
  availablePlugins: AvailableDependency[];
4
- serverFilePath: string;
4
+ backendDirectory: string;
5
5
  };
6
- export declare const createServerFile: ({ tailwind, frontendDirectories, serverFilePath, authProvider, availablePlugins, buildDirectory, assetsDirectory, plugins }: CreateServerFileProps) => void;
6
+ export declare const generateServerFile: ({ tailwind, frontendDirectories, backendDirectory, authProvider, availablePlugins, buildDirectory, assetsDirectory, plugins }: CreateServerFileProps) => void;
7
7
  export {};
@@ -1,7 +1,9 @@
1
- import { writeFileSync } from 'fs';
1
+ import { mkdirSync, writeFileSync } from 'fs';
2
+ import { join } from 'path';
2
3
  import { UNFOUND_INDEX } from '../../constants';
3
4
  import { absoluteAuthPlugin, defaultDependencies, defaultPlugins, scopedStatePlugin } from '../../data';
4
- export const createServerFile = ({ tailwind, frontendDirectories, serverFilePath, authProvider, availablePlugins, buildDirectory, assetsDirectory, plugins }) => {
5
+ export const generateServerFile = ({ tailwind, frontendDirectories, backendDirectory, authProvider, availablePlugins, buildDirectory, assetsDirectory, plugins }) => {
6
+ const serverFilePath = join(backendDirectory, 'server.ts');
5
7
  const htmlDirectory = frontendDirectories['html'];
6
8
  const reactDirectory = frontendDirectories['react'];
7
9
  const svelteDirectory = frontendDirectories['svelte'];
@@ -87,7 +89,25 @@ export const createServerFile = ({ tailwind, frontendDirectories, serverFilePath
87
89
  const vueImportSource = vueDirectory === ''
88
90
  ? '../frontend/pages/VueExample'
89
91
  : `../frontend/${vueDirectory}/pages/VueExample`;
90
- importLines.push(`import VueExample from '${vueImportSource}.vue';`);
92
+ const vueImportLine = requiresSvelte
93
+ ? `import { vueImports } from './utils/vueImporter';\n\nconst { VueExample } = vueImports;`
94
+ : `import VueExample from '${vueImportSource}.vue';`;
95
+ importLines.push(vueImportLine);
96
+ }
97
+ if (requiresVue && requiresSvelte) {
98
+ const vueImporter = `// This file is auto-generated by the AbsoluteJS project generator.
99
+ // It is required to use Vue and Svelte together in the same project.
100
+ // This is due to how the Vue Official plugin handles non .ts files.
101
+
102
+ import VueExample from "../../frontend/vue/pages/VueExample.vue";
103
+
104
+ export const vueImports = {
105
+ VueExample
106
+ } as const;
107
+ `;
108
+ const backendUtilsDirectory = join(backendDirectory, 'utils');
109
+ mkdirSync(backendUtilsDirectory, { recursive: true });
110
+ writeFileSync(join(backendUtilsDirectory, 'vueImporter.ts'), vueImporter);
91
111
  }
92
112
  const useStatements = uniqueDependencies
93
113
  .flatMap(({ imports }) => imports ?? [])
package/dist/scaffold.js CHANGED
@@ -8,7 +8,7 @@ import { addConfigurationFiles } from './generators/configurations/addConfigurat
8
8
  import { createPackageJson } from './generators/configurations/generatePackageJson';
9
9
  import { initalizeRoot } from './generators/configurations/initializeRoot';
10
10
  import { scaffoldDatabase } from './generators/db/scaffoldDatabase';
11
- import { createServerFile } from './generators/project/generateServer';
11
+ import { generateServerFile } from './generators/project/generateServer';
12
12
  import { scaffoldFrontends } from './generators/project/scaffoldFrontends';
13
13
  export const scaffold = ({ response: { projectName, codeQualityTool, initializeGitNow, databaseEngine,
14
14
  // databaseHost,
@@ -34,15 +34,14 @@ useHTMLScripts, useTailwind, databaseDirectory, orm, frontends, plugins, authPro
34
34
  projectName,
35
35
  useTailwind
36
36
  });
37
- const serverFilePath = join(backendDirectory, 'server.ts');
38
- createServerFile({
37
+ generateServerFile({
39
38
  assetsDirectory,
40
39
  authProvider,
41
40
  availablePlugins,
41
+ backendDirectory,
42
42
  buildDirectory,
43
43
  frontendDirectories,
44
44
  plugins,
45
- serverFilePath,
46
45
  tailwind
47
46
  });
48
47
  void (databaseDirectory !== undefined &&
package/package.json CHANGED
@@ -47,5 +47,5 @@
47
47
  "typecheck": "bun run tsc --noEmit"
48
48
  },
49
49
  "type": "module",
50
- "version": "0.3.5"
50
+ "version": "0.3.7"
51
51
  }