next.js/packages/next/src/shared/lib/deployment-id.ts
deployment-id.ts39 lines1.1 KB
let deploymentId: string | undefined

if (typeof window !== 'undefined') {
  deploymentId = document.documentElement.dataset.dplId
  // Immediately remove the attribute to prevent hydration errors (the dplId was inserted into the
  // HTML only), React isn't aware of it at all.
  delete document.documentElement.dataset.dplId
} else {
  // Client side: replaced with globalThis.NEXT_DEPLOYMENT_ID
  // Server side: left as is or replaced with a string or replaced with false
  deploymentId = process.env.NEXT_DEPLOYMENT_ID || undefined
}

export function getDeploymentId(): string | undefined {
  return deploymentId
}

export function getDeploymentIdQuery(ampersand = false): string {
  let id = getDeploymentId()
  if (id) {
    return `${ampersand ? '&' : '?'}dpl=${id}`
  }
  return ''
}

export function getAssetToken(): string | undefined {
  return process.env.NEXT_SUPPORTS_IMMUTABLE_ASSETS
    ? undefined
    : process.env.NEXT_DEPLOYMENT_ID
}

export function getAssetTokenQuery(ampersand = false): string {
  let id = getAssetToken()
  if (id) {
    return `${ampersand ? '&' : '?'}dpl=${id}`
  }
  return ''
}
Quest for Codev2.0.0
/
SIGN IN