UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

60 lines (49 loc) 1.79 kB
const entryModule = ` // This file is auto-generated on 'sanity dev' // Modifications to this file is automatically discarded import {renderStudio} from "sanity" import studioConfig from %STUDIO_CONFIG_LOCATION% renderStudio( document.getElementById("sanity"), studioConfig, {reactStrictMode: %STUDIO_REACT_STRICT_MODE%, basePath: %STUDIO_BASE_PATH%} ) ` const noConfigEntryModule = ` // This file is auto-generated on 'sanity dev' // Modifications to this file is automatically discarded import {renderStudio} from "sanity" const studioConfig = {missingConfigFile: true} renderStudio( document.getElementById("sanity"), studioConfig, {reactStrictMode: %STUDIO_REACT_STRICT_MODE%, basePath: %STUDIO_BASE_PATH%} ) ` const appEntryModule = ` // This file is auto-generated on 'sanity dev' // Modifications to this file is automatically discarded import {createRoot} from 'react-dom/client' import {createElement} from 'react' import App from %ENTRY% const root = createRoot(document.getElementById('root')) const element = createElement(App) root.render(element) ` export function getEntryModule(options: { reactStrictMode: boolean relativeConfigLocation: string | null basePath?: string entry?: string isApp?: boolean }): string { const {reactStrictMode, relativeConfigLocation, basePath, entry, isApp} = options if (isApp) { return appEntryModule.replace(/%ENTRY%/, JSON.stringify(entry || './src/App')) } const sourceModule = relativeConfigLocation ? entryModule : noConfigEntryModule return sourceModule .replace(/%STUDIO_REACT_STRICT_MODE%/, JSON.stringify(Boolean(reactStrictMode))) .replace(/%STUDIO_CONFIG_LOCATION%/, JSON.stringify(relativeConfigLocation)) .replace(/%STUDIO_BASE_PATH%/, JSON.stringify(basePath || '/')) }