Skip to content

Commit 0a7c8d3

Browse files
committed
fix: fix linting issues
1 parent c8b0249 commit 0a7c8d3

File tree

12 files changed

+57
-49
lines changed

12 files changed

+57
-49
lines changed

playground/components/global/TestCard.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
defineProps({
1010
title: {
1111
type: String,
12-
default: 'Default Title'
12+
default: 'Default Title',
1313
},
1414
description: {
1515
type: String,
16-
default: 'Default description'
17-
}
16+
default: 'Default description',
17+
},
1818
})
1919
</script>
2020

@@ -26,4 +26,4 @@ defineProps({
2626
background: #f9f9f9;
2727
margin: 1rem 0;
2828
}
29-
</style>
29+
</style>
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
<template>
2-
<div v-html="content" class="test-markup"></div>
2+
<!-- eslint-disable-next-line -->
3+
<div v-html="content" class="markup"></div>
34
</template>
45

56
<script setup>
67
defineProps({
78
content: {
89
type: String,
9-
default: ''
10-
}
10+
default: '',
11+
},
1112
})
1213
</script>
1314

@@ -17,4 +18,4 @@ defineProps({
1718
border: 1px solid #ddd;
1819
border-radius: 4px;
1920
}
20-
</style>
21+
</style>

playground/nuxt.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export default defineNuxtConfig({
22
modules: ['../src/module'],
3-
devtools: { enabled: true }
3+
devtools: { enabled: true },
44
})

playground/pages/[...slug].vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,3 @@
55
</div>
66
</div>
77
</template>
8-

playground/pages/index.vue

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22
<div>
33
<h1>Nuxt Component Preview Playground</h1>
44
<p>This is the playground for testing the nuxt-component-preview module.</p>
5-
5+
66
<div style="margin: 2rem 0;">
77
<h2>Test the Component Preview</h2>
88
<p>Click the link below to test the component preview functionality:</p>
9-
<a href="/preview-test.html" target="_blank" style="display: inline-block; padding: 1rem 2rem; background: #42b883; color: white; text-decoration: none; border-radius: 4px;">
9+
<a
10+
href="/preview-test.html"
11+
target="_blank"
12+
style="display: inline-block; padding: 1rem 2rem; background: #42b883; color: white; text-decoration: none; border-radius: 4px;"
13+
>
1014
Open Component Preview Test
1115
</a>
1216
</div>
@@ -30,4 +34,4 @@ div {
3034
margin: 0 auto;
3135
font-family: Arial, sans-serif;
3236
}
33-
</style>
37+
</style>

src/module.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
import fs from 'node:fs'
2+
import { resolve } from 'node:path'
13
import { defineNuxtModule, addPlugin, createResolver, addComponent, addServerHandler } from '@nuxt/kit'
2-
import { resolve } from 'path';
3-
import { promises as fs } from 'fs';
44

55
// Module options TypeScript interface definition
6+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
67
export interface ModuleOptions {
78
// Component preview is controlled via runtime config, not module options
89
}
@@ -21,20 +22,20 @@ export default defineNuxtModule<ModuleOptions>({
2122
// Add the component preview area component
2223
addComponent({
2324
name: 'ComponentPreviewArea',
24-
filePath: resolver.resolve('./runtime/components/ComponentPreviewArea.vue')
25+
filePath: resolver.resolve('./runtime/components/ComponentPreviewArea.vue'),
2526
})
2627

2728
// Add the client-side plugin for component preview functionality
2829
addPlugin({
2930
src: resolver.resolve('./runtime/plugin.client.ts'),
30-
mode: 'client'
31+
mode: 'client',
3132
})
3233

3334
// Add router options for iframe compatibility
3435
nuxt.hook('pages:routerOptions', (options) => {
3536
options.files.push({
3637
path: resolver.resolve('./runtime/router.options.ts'),
37-
optional: true
38+
optional: true,
3839
})
3940
})
4041

@@ -57,7 +58,7 @@ export default defineNuxtModule<ModuleOptions>({
5758
if (!nuxt.options.dev) {
5859
try {
5960
const manifestPath = resolve(nuxt.options.buildDir, 'dist/server/client.manifest.json')
60-
const manifestContent = await fs.readFile(manifestPath, 'utf-8')
61+
const manifestContent = await fs.promises.readFile(manifestPath, 'utf-8')
6162
const manifest = JSON.parse(manifestContent)
6263
const entryKey = Object.keys(manifest).find(key => key.includes('entry'))
6364
if (!entryKey || !manifest[entryKey]) {
@@ -66,7 +67,8 @@ export default defineNuxtModule<ModuleOptions>({
6667
}
6768
resolvedEntryPath = `/_nuxt/${manifest[entryKey].file}`
6869
nitro.options.virtual['#nuxt-entry-path'] = () => `export default '${resolvedEntryPath}'`
69-
} catch (error) {
70+
}
71+
catch (error) {
7072
console.error('CRITICAL: Failed to resolve Nuxt entry path:', error)
7173
throw error
7274
}
@@ -76,7 +78,7 @@ export default defineNuxtModule<ModuleOptions>({
7678

7779
addServerHandler({
7880
route: '/nuxt-component-preview/entry.js',
79-
handler: resolver.resolve('./runtime/server/routes/nuxt-component-preview/entry.js.get.ts')
81+
handler: resolver.resolve('./runtime/server/routes/nuxt-component-preview/entry.js.get.ts'),
8082
})
8183
},
8284
})

src/runtime/components/ComponentPreviewArea.vue

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,28 @@ const previews = useState('componentPreviews', () => [])
66
// Helper function to render components using Vue's h() function
77
function renderComponent(preview) {
88
const { element, ...props } = preview.content
9-
9+
1010
// Resolve the component - it should be globally available
1111
const component = resolveComponent(element)
12-
12+
1313
if (!component) {
1414
console.warn(`Component "${element}" not found for preview`)
1515
return h('div', { class: 'preview-error' }, `Component "${element}" not found`)
1616
}
17-
17+
1818
return h(component, props)
1919
}
2020
</script>
2121

2222
<template>
2323
<div style="display: none;">
24-
<template v-for="(preview, index) in previews" :key="index">
24+
<template
25+
v-for="(preview, index) in previews"
26+
:key="index"
27+
>
2528
<Teleport :to="preview.target">
2629
<component :is="renderComponent(preview)" />
2730
</Teleport>
2831
</template>
2932
</div>
30-
</template>
33+
</template>

src/runtime/plugin.client.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ export default defineNuxtPlugin((nuxtApp) => {
1111
* Creates a preview of a component and renders it to a target element
1212
*
1313
* @param {string} componentName - The name of the registered Vue component
14-
* @param {Object} props - Props to pass to the component
14+
* @param {object} props - Props to pass to the component
1515
* @param {string|Element} target - CSS selector or DOM element where the component will be rendered
16-
* @returns {Object} An object with unmount method
16+
* @returns {object} An object with unmount method
1717
*/
1818
function previewComponent(componentName, props, target) {
1919
const targetEl = typeof target === 'string'
@@ -28,16 +28,16 @@ export default defineNuxtPlugin((nuxtApp) => {
2828
target: targetEl,
2929
content: {
3030
element: componentName,
31-
...props
32-
}
31+
...props,
32+
},
3333
}
3434

3535
previews.value.push(previewData)
3636

3737
return {
3838
unmount() {
3939
previews.value = previews.value.filter(c => c.target !== targetEl)
40-
}
40+
},
4141
}
4242
}
4343

@@ -47,8 +47,8 @@ export default defineNuxtPlugin((nuxtApp) => {
4747
// Dispatch ready event when Nuxt is ready
4848
onNuxtReady(() => {
4949
const event = new CustomEvent('nuxt-component-preview:ready', {
50-
detail: { nuxtApp }
50+
detail: { nuxtApp },
5151
})
5252
window.dispatchEvent(event)
5353
})
54-
})
54+
})

src/runtime/router.options.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ export default <RouterConfig>{
66
history: (base) => {
77
if (import.meta.client && typeof window !== 'undefined') {
88
const previewMode = window.__NUXT__?.config?.public?.componentPreview
9-
9+
1010
if (previewMode) {
1111
console.log('[Component Preview] Using memory history')
1212
return createMemoryHistory(base)
1313
}
1414
}
1515
// Use Nuxt's default history otherwise (no return statement lets Nuxt handle it)
16-
}
17-
}
16+
},
17+
}
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { defineEventHandler, sendRedirect, createError } from 'h3';
2-
import entryPath from '#nuxt-entry-path';
1+
import { defineEventHandler, sendRedirect, createError } from 'h3'
2+
import entryPath from '#nuxt-entry-path'
33

44
export default defineEventHandler(async (event) => {
55
if (!entryPath) {
66
throw createError({
77
statusCode: 500,
8-
statusMessage: 'CRITICAL: Nuxt entry path not configured.'
9-
});
8+
statusMessage: 'CRITICAL: Nuxt entry path not configured.',
9+
})
1010
}
11-
await sendRedirect(event, entryPath, 302);
12-
});
11+
await sendRedirect(event, entryPath, 302)
12+
})

0 commit comments

Comments
 (0)