Skip to content

Commit

Permalink
fix: move #nuxt-scripts alias path
Browse files Browse the repository at this point in the history
  • Loading branch information
harlan-zw committed Nov 12, 2024
1 parent 51ee8e0 commit 2a1ab47
Show file tree
Hide file tree
Showing 34 changed files with 46 additions and 47 deletions.
2 changes: 1 addition & 1 deletion playground/scripts/myCustomScript.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { object, string } from 'valibot'
import type { Input } from 'valibot'
import { useScript } from '#imports'
import type { NuxtUseScriptOptions } from '#nuxt-scripts'
import type { NuxtUseScriptOptions } from '#nuxt-scripts/types'

export type MyCustomScriptApi = Record<string, any>

Expand Down
8 changes: 4 additions & 4 deletions scripts/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ export async function generateTpcContent(input: TpcDescriptor) {

const imports = new Set<string>([
'import { withQuery } from \'ufo\'',
'import { useRegistryScript } from \'#nuxt-scripts-utils\'',
'import type { RegistryScriptInput } from \'#nuxt-scripts\'',
'import { useRegistryScript } from \'#nuxt-scripts/utils\'',
'import type { RegistryScriptInput } from \'#nuxt-scripts/types\'',
])
const tpcTypes = new Set<string>()

Expand Down Expand Up @@ -96,8 +96,8 @@ ${properties.join(',\n')}

if (input.useBody) {
chunks.push(`
function use(options: ${titleKey}Input) {
${input.useBody}
function use(options: ${titleKey}Input) {
${input.useBody}
}
`)
}
Expand Down
15 changes: 5 additions & 10 deletions src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,7 @@ export default defineNuxtModule<ModuleOptions>({
const { resolve } = createResolver(import.meta.url)
const { version, name } = await readPackageJSON(resolve('../package.json'))
nuxt.options.alias['#nuxt-scripts-validator'] = resolve(`./runtime/validation/${(nuxt.options.dev || nuxt.options._prepare) ? 'valibot' : 'mock'}`)
nuxt.options.alias['#nuxt-scripts'] = resolve('./runtime/types')
nuxt.options.alias['#nuxt-scripts-utils'] = resolve('./runtime/utils')
nuxt.options.alias['#nuxt-scripts'] = resolve('./runtime')
logger.level = (config.debug || nuxt.options.debug) ? 4 : 3
if (!config.enabled) {
// TODO fallback to useHead?
Expand All @@ -118,10 +117,6 @@ export default defineNuxtModule<ModuleOptions>({
logger.warn(`Nuxt Scripts recommends Unhead >= 1.11.5, you are using v${unheadVersion}. Please run \`nuxi upgrade --clean\` to upgrade...`)
}
}
// allow augmenting the options
nuxt.options.alias['#nuxt-scripts-validator'] = resolve(`./runtime/validation/${(nuxt.options.dev || nuxt.options._prepare) ? 'valibot' : 'mock'}`)
nuxt.options.alias['#nuxt-scripts'] = resolve('./runtime/types')
nuxt.options.alias['#nuxt-scripts-utils'] = resolve('./runtime/utils')
nuxt.options.runtimeConfig['nuxt-scripts'] = { version }
nuxt.options.runtimeConfig.public['nuxt-scripts'] = {
// expose for devtools
Expand Down Expand Up @@ -161,17 +156,17 @@ export default defineNuxtModule<ModuleOptions>({
let types = `
declare module '#app' {
interface NuxtApp {
$scripts: Record<${[...Object.keys(config.globals || {}), ...Object.keys(config.registry || {})].map(k => `'${k}'`).concat(['string']).join(' | ')}, (import('#nuxt-scripts').UseScriptContext<any>)>
_scripts: Record<string, (import('#nuxt-scripts').UseScriptContext<any>)>
$scripts: Record<${[...Object.keys(config.globals || {}), ...Object.keys(config.registry || {})].map(k => `'${k}'`).concat(['string']).join(' | ')}, (import('#nuxt-scripts/types').UseScriptContext<any>)>
_scripts: Record<string, (import('#nuxt-scripts/types').UseScriptContext<any>)>
}
interface RuntimeNuxtHooks {
'scripts:updated': (ctx: { scripts: Record<string, (import('#nuxt-scripts').UseScriptContext<any>)> }) => void | Promise<void>
'scripts:updated': (ctx: { scripts: Record<string, (import('#nuxt-scripts/types').UseScriptContext<any>)> }) => void | Promise<void>
}
}
`
if (newScripts.length) {
types = `${types}
declare module '#nuxt-scripts' {
declare module '#nuxt-scripts/types' {
type NuxtUseScriptOptions = Omit<import('${typesPath}').NuxtUseScriptOptions, 'use' | 'beforeInit'>
interface ScriptRegistry {
${newScripts.map((i) => {
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/transform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { tryUseNuxt, useNuxt } from '@nuxt/kit'
import { logger } from '../logger'
import { bundleStorage } from '../assets'
import { isJS, isVue } from './util'
import type { RegistryScript } from '#nuxt-scripts'
import type { RegistryScript } from '#nuxt-scripts/types'

export interface AssetBundlerTransformerOptions {
moduleDetected?: (module: string) => void
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/components/ScriptCarbonAds.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { withQuery } from 'ufo'
import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
import { computed, onBeforeUnmount, onMounted, ref } from '#imports'
import type { ElementScriptTrigger } from '#nuxt-scripts'
import type { ElementScriptTrigger } from '#nuxt-scripts/types'
const props = defineProps<{
serve: string
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/components/ScriptCrisp.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
import { useScriptCrisp } from '../registry/crisp'
import { ref, onMounted, onBeforeUnmount, watch, computed } from '#imports'
import type { ElementScriptTrigger } from '#nuxt-scripts'
import type { ElementScriptTrigger } from '#nuxt-scripts/types'
const props = withDefaults(defineProps<{
/**
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/components/ScriptGoogleAdsense.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
import { useScriptGoogleAdsense } from '../registry/google-adsense'
import { callOnce, computed, onMounted, ref, watch } from '#imports'
import type { ElementScriptTrigger } from '#nuxt-scripts'
import type { ElementScriptTrigger } from '#nuxt-scripts/types'
const props = withDefaults(defineProps<{
dataAdClient: string
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/components/ScriptIntercom.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { useScriptIntercom } from '../registry/intercom'
import { useScriptTriggerElement } from '../composables/useScriptTriggerElement'
import { ref, onMounted, watch, onBeforeUnmount, computed } from '#imports'
import type { ElementScriptTrigger } from '#nuxt-scripts'
import type { ElementScriptTrigger } from '#nuxt-scripts/types'
const props = withDefaults(defineProps<{
appId: string
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/composables/useScript.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { useScript as _useScript } from '@unhead/vue'
import { parseURL } from 'ufo'
import { pick } from '../utils'
import { injectHead, onNuxtReady, useHead, useNuxtApp, useRuntimeConfig, reactive } from '#imports'
import type { NuxtDevToolsScriptInstance, NuxtUseScriptOptions, UseScriptContext, WarmupStrategy } from '#nuxt-scripts'
import type { NuxtDevToolsScriptInstance, NuxtUseScriptOptions, UseScriptContext, WarmupStrategy } from '#nuxt-scripts/types'

function useNuxtScriptRuntimeConfig() {
return useRuntimeConfig().public['nuxt-scripts'] as {
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/composables/useScriptEventPage.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { injectHead, ref, useNuxtApp, useRoute } from '#imports'
import type { TrackedPage } from '#nuxt-scripts'
import type { TrackedPage } from '#nuxt-scripts/types'

export function useScriptEventPage(onChange?: (payload: TrackedPage) => void) {
const nuxt = useNuxtApp()
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/clarity.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useRegistryScript } from '../utils'
import { minLength, object, string, pipe } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

type ClarityFunctions = ((fn: 'start', options: { content: boolean, cookies: string[], dob: number, expire: number, projectId: string, upload: string }) => void)
& ((fn: 'identify', id: string, session?: string, page?: string, userHint?: string) => Promise<{
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/cloudflare-web-analytics.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useRegistryScript } from '../utils'
import { boolean, minLength, object, optional, pipe, string } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

/**
* Sample:
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/crisp.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useRegistryScript } from '../utils'
import { object, string, optional, number } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

export const CrispOptions = object({
/**
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/fathom-analytics.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useRegistryScript } from '../utils'
import { boolean, literal, object, optional, string, union } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

export const FathomAnalyticsOptions = object({
/**
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/google-adsense.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useRegistryScript } from '../utils'
import { object, string, optional } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'
import { useHead } from '#imports'

export const GoogleAdsenseOptions = object({
Expand Down
4 changes: 2 additions & 2 deletions src/runtime/registry/google-analytics.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// WARNING: This file is automatically generated, do not manually modify.
import { withQuery } from 'ufo'
import type { DataLayer, GTag } from 'third-party-capital'
import { useRegistryScript } from '#nuxt-scripts-utils'
import type { RegistryScriptInput } from '#nuxt-scripts'
import { useRegistryScript } from '#nuxt-scripts/utils'
import type { RegistryScriptInput } from '#nuxt-scripts/types'
import { object, string, optional } from '#nuxt-scripts-validator'

export const GoogleAnalyticsOptions = object({
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/google-maps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { withQuery } from 'ufo'
import { useRegistryScript } from '../utils'
import { array, literal, object, optional, string, union } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

// eslint-disable-next-line
declare namespace google {
Expand Down
4 changes: 2 additions & 2 deletions src/runtime/registry/google-tag-manager.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// WARNING: This file is automatically generated, do not manually modify.
import { withQuery } from 'ufo'
import type { GoogleTagManagerApi, DataLayer } from 'third-party-capital'
import { useRegistryScript } from '#nuxt-scripts-utils'
import type { RegistryScriptInput } from '#nuxt-scripts'
import { useRegistryScript } from '#nuxt-scripts/utils'
import type { RegistryScriptInput } from '#nuxt-scripts/types'
import { object, string, optional } from '#nuxt-scripts-validator'

declare global {
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/hotjar.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useRegistryScript } from '../utils'
import { number, object, optional } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

export interface HotjarApi {
hj: ((event: 'identify', userId: string, attributes?: Record<string, any>) => void) & ((event: 'stateChange', path: string) => void) & ((event: 'event', eventName: string) => void) & ((event: string, arg?: string) => void) & ((...params: any[]) => void) & {
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/intercom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { joinURL } from 'ufo'
import { useRegistryScript } from '../utils'
import { literal, number, object, optional, string, union } from '#nuxt-scripts-validator'
import type { InferInput } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

export const IntercomOptions = object({
app_id: string(),
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/lemon-squeezy.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useRegistryScript } from '../utils'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

export type LemonSqueezyInput = RegistryScriptInput

Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/matomo-analytics.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { withBase, withHttps, withoutProtocol, withoutTrailingSlash } from 'ufo'
import { useRegistryScript } from '../utils'
import { boolean, object, optional, string, number, union } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

export const MatomoAnalyticsOptions = object({
matomoUrl: optional(string()),
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/meta-pixel.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useRegistryScript } from '../utils'
import { number, object, string, union } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

type StandardEvents = 'AddPaymentInfo' | 'AddToCart' | 'AddToWishlist' | 'CompleteRegistration' | 'Contact' | 'CustomizeProduct' | 'Donate' | 'FindLocation' | 'InitiateCheckout' | 'Lead' | 'Purchase' | 'Schedule' | 'Search' | 'StartTrial' | 'SubmitApplication' | 'Subscribe' | 'ViewContent'
interface EventObjectProperties {
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/npm.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { withBase } from 'ufo'
import { useRegistryScript } from '../utils'
import { object, optional, string } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

export const NpmOptions = object({
packageName: string(),
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/plausible-analytics.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useRegistryScript } from '../utils'
import { array, literal, object, optional, string, union } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

const extensions = [
literal('hash'),
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/segment.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { joinURL } from 'ufo'
import { useRegistryScript } from '../utils'
import { object, optional, string } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

export const SegmentOptions = object({
writeKey: string(),
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/stripe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { withQuery } from 'ufo'
import type { Stripe } from '@stripe/stripe-js'
import { useRegistryScript } from '../utils'
import { boolean, object, optional } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

export const StripeOptions = object({
advancedFraudSignals: optional(boolean()),
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/vimeo-player.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { watch } from 'vue'
import type Vimeo from '@vimeo/player'
import type { UseScriptContext } from '@unhead/vue'
import { useRegistryScript } from '../utils'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'
import { useHead } from '#imports'

type Constructor<T extends new (...args: any) => any> = T extends new (...args: infer A) => infer R ? new (...args: A) => R : never
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/x-pixel.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { UseScriptInput } from '@unhead/vue'
import { useRegistryScript } from '../utils'
import { object, optional, string } from '#nuxt-scripts-validator'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

interface ContentProperties {
content_type?: string | null
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/registry/youtube-player.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import type { UseScriptContext } from '@unhead/vue'
import type { MaybePromise } from '../utils'
import { useRegistryScript } from '../utils'
import { useHead } from '#imports'
import type { RegistryScriptInput } from '#nuxt-scripts'
import type { RegistryScriptInput } from '#nuxt-scripts/types'

export interface YouTubePlayerApi {
YT: MaybePromise<{
Expand Down
2 changes: 1 addition & 1 deletion src/runtime/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import type {
NuxtUseScriptOptions,
RegistryScriptInput,
ScriptRegistry,
} from '#nuxt-scripts'
} from '#nuxt-scripts/types'

export type MaybePromise<T> = Promise<T> | T

Expand Down
2 changes: 1 addition & 1 deletion src/templates.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { hash } from 'ohash'
import type { ModuleOptions } from './module'
import { logger } from './logger'
import type { RegistryScript } from '#nuxt-scripts'
import type { RegistryScript } from '#nuxt-scripts/types'

export function templatePlugin(config: Partial<ModuleOptions>, registry: Required<RegistryScript>[]) {
if (Array.isArray(config.globals)) {
Expand Down
4 changes: 4 additions & 0 deletions test/fixtures/extend-registry/nuxt.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,13 @@ export default defineNuxtConfig({
modules: [
'@nuxt/scripts',
],

devtools: {
enabled: true,
},

compatibilityDate: '2024-11-12',

hooks: {
'scripts:registry': function (registry) {
registry.push({
Expand Down
2 changes: 1 addition & 1 deletion test/fixtures/extend-registry/scripts/my-custom-script.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useRegistryScript } from '#nuxt-scripts-utils'
import { useRegistryScript } from '#nuxt-scripts/utils'

export interface CustomApi {
myScript: () => void
Expand Down

0 comments on commit 2a1ab47

Please sign in to comment.