Skip to content

Commit

Permalink
[fix] fix rootDir output #59
Browse files Browse the repository at this point in the history
  • Loading branch information
victorgarciaesgi committed Jan 17, 2023
1 parent dfd6220 commit 7cc50b3
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 19 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "nuxt-typed-router",
"version": "2.0.2",
"version": "2.0.3",
"description": "Provide autocompletion for pages route names generated by Nuxt router",
"type": "module",
"main": "./dist/module.cjs",
Expand Down
6 changes: 3 additions & 3 deletions src/core/fs/writeFile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { formatOutputWithPrettier } from './prettierFormat';
export const __dirname = dirname(fileURLToPath(import.meta.url));

type ProcessPathAndWriteFileArgs = {
srcDir: string;
rootDir: string;
fileName: string;
content: string;
outDir?: string;
Expand All @@ -19,12 +19,12 @@ type ProcessPathAndWriteFileArgs = {
export async function processPathAndWriteFile({
content,
fileName,
srcDir,
rootDir,
outDir,
}: ProcessPathAndWriteFileArgs): Promise<void> {
try {
const finalOutDir = outDir ?? `.nuxt/typed-router`;
const processedOutDir = resolve(srcDir, finalOutDir);
const processedOutDir = resolve(rootDir, finalOutDir);
const outputFile = resolve(process.cwd(), `${processedOutDir}/${fileName}`);
const formatedContent = await formatOutputWithPrettier(content);
if (fs.existsSync(outputFile)) {
Expand Down
12 changes: 8 additions & 4 deletions src/core/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,27 @@ import { handlePluginFileSave, saveGeneratedFiles } from './output';
import { constructRouteMap } from './parser';

type CreateTypedRouterArgs = Required<ModuleOptions> & {
srcDir: string;
rootDir: string;
nuxt: Nuxt;
};

export function createTypedRouter({ srcDir, plugin, nuxt }: CreateTypedRouterArgs): void {
export function createTypedRouter({ rootDir, plugin, nuxt }: CreateTypedRouterArgs): void {
try {
// We use extendPages here to access the NuxtRouteConfig, not accessible in the `pages:extend` hook
extendPages(async (routes: NuxtRouteConfig[]) => {
if (routes.length) {
const outputData = constructRouteMap(routes);

if (plugin) {
handlePluginFileSave({ nuxt, routesDeclTemplate: outputData.routesDeclTemplate, srcDir });
handlePluginFileSave({
nuxt,
routesDeclTemplate: outputData.routesDeclTemplate,
rootDir,
});
}

await saveGeneratedFiles({
srcDir,
rootDir,
outputData,
});
} else {
Expand Down
6 changes: 3 additions & 3 deletions src/core/output/fileSave/definitions.save.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ import {
let previousGeneratedRoutes = '';

type SaveGeneratedFiles = {
srcDir: string;
rootDir: string;
outputData: GeneratorOutput;
};

export async function saveGeneratedFiles({
srcDir,
rootDir,
outputData: { routesDeclTemplate, routesList, routesObjectTemplate, routesParams },
}: SaveGeneratedFiles): Promise<void> {
const filesMap: Array<{ fileName: string; content: string }> = [
Expand Down Expand Up @@ -49,7 +49,7 @@ export async function saveGeneratedFiles({
];

await Promise.all(
filesMap.map(({ content, fileName }) => processPathAndWriteFile({ srcDir, content, fileName }))
filesMap.map(({ content, fileName }) => processPathAndWriteFile({ rootDir, content, fileName }))
);
if (previousGeneratedRoutes !== routesList.join(',')) {
previousGeneratedRoutes = routesList.join(',');
Expand Down
8 changes: 4 additions & 4 deletions src/core/output/fileSave/plugin.save.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,22 @@ import { createRuntimePluginFile } from '../runtime';

type HandlePluginFileSaveArgs = {
nuxt: Nuxt;
srcDir: string;
rootDir: string;
routesDeclTemplate: string;
};

export function handlePluginFileSave({
nuxt,
srcDir,
rootDir,
routesDeclTemplate,
}: HandlePluginFileSaveArgs) {
const pluginName = '__typed-router.ts';

nuxt.hook('build:done', async () => {
const pluginFolder = `${srcDir}/plugins`;
const pluginFolder = `${rootDir}/plugins`;
await processPathAndWriteFile({
outDir: pluginFolder,
srcDir,
rootDir,
fileName: pluginName,
content: createRuntimePluginFile(routesDeclTemplate),
});
Expand Down
8 changes: 4 additions & 4 deletions src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@ export default defineNuxtModule<ModuleOptions>({
plugin: false,
},
setup(moduleOptions, nuxt: Nuxt) {
const srcDir = nuxt.options.srcDir;
const rootDir = nuxt.options.rootDir;
const { plugin } = moduleOptions as Required<ModuleOptions>;
// @ts-ignore
const { resolve } = createResolver(import.meta.url);
nuxt.options.alias = {
...nuxt.options.alias,
'@typed-router': resolve(`${nuxt.options.rootDir}/.nuxt/typed-router`),
'@typed-router': resolve(`${rootDir}/.nuxt/typed-router`),
};

nuxt.hook('pages:extend', () => createTypedRouter({ srcDir, nuxt, plugin }));
nuxt.hook('pages:extend', () => createTypedRouter({ rootDir, nuxt, plugin }));
// Allow generating files on load
createTypedRouter({ srcDir, nuxt, plugin });
createTypedRouter({ rootDir, nuxt, plugin });
},
});

1 comment on commit 7cc50b3

@vercel
Copy link

@vercel vercel bot commented on 7cc50b3 Jan 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.