Skip to content

Commit

Permalink
refactor(sanity): use self-referencing imports between export boundaries
Browse files Browse the repository at this point in the history
  • Loading branch information
mariuslundgard committed Oct 4, 2022
1 parent 981751c commit 2ddf5bd
Show file tree
Hide file tree
Showing 110 changed files with 181 additions and 191 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import path from 'path'
import {Worker, isMainThread} from 'worker_threads'
import readPkgUp from 'read-pkg-up'
import type {CliCommandContext, CliV3CommandContext} from '@sanity/cli'
import {createSchema} from '../../../../core/schema'
import {createSchema} from '../../../../core'
import type {
ResolvedGraphQLAPI,
ResolvedSourceProperties,
Expand Down
2 changes: 1 addition & 1 deletion packages/sanity/src/_internal/cli/util/getStudioConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import fs from 'fs'
import path from 'path'
import {first} from 'rxjs/operators'
import {resolveConfig, Config, Workspace} from '../../../core/config'
import {resolveConfig, Config, Workspace} from '../../../core'
import {mockBrowserEnvironment} from './mockBrowserEnvironment'

const candidates = [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import React, {memo} from 'react'
import deepCompare from 'react-fast-compare'
import * as PathUtils from '@sanity/util/paths'
import {Path} from '@sanity/types'
import {EMPTY_ARRAY} from '../../../form/utils/empty'
import {EMPTY_ARRAY} from '../../util'
import {useReporter} from './tracker'
import {ElementWithChangeBar} from './ElementWithChangeBar'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, {ComponentType, createElement} from 'react'
import {StudioLayout} from '../../../studio'
import {StudioLogo, StudioNavbar, StudioToolMenu} from '../../../studio/components'
import {StudioLayout, StudioLogo, StudioNavbar, StudioToolMenu} from '../../../studio'
import {PluginOptions, SourceOptions} from '../../types'
import {RenderComponentCallbackNames, ComponentNames} from './types'

Expand Down
5 changes: 3 additions & 2 deletions packages/sanity/src/core/config/configPropertyReducers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ import {
DuplicateAction,
PublishAction,
UnpublishAction,
} from '../../desk/actions'
import {DocumentBadgeComponent, LiveEditBadge} from '../../desk/badges'
DocumentBadgeComponent,
LiveEditBadge,
} from '../../desk'
import type {
DocumentLanguageFilterComponent,
DocumentLanguageFilterContext,
Expand Down
3 changes: 1 addition & 2 deletions packages/sanity/src/core/config/form/_renderField.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import {FieldProps, RenderFieldCallback} from '../../../form'
import {defaultRenderField} from '../../../form/studio/defaults'
import {FieldProps, RenderFieldCallback, defaultRenderField} from '../../../form'
import {PluginOptions, SourceOptions} from '../types'
import {_RenderMiddleware} from './_types'

Expand Down
3 changes: 1 addition & 2 deletions packages/sanity/src/core/config/form/_renderInput.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import {InputProps, RenderInputCallback} from '../../../form'
import {defaultRenderInput} from '../../../form/studio/defaults'
import {InputProps, RenderInputCallback, defaultRenderInput} from '../../../form'
import {PluginOptions, SourceOptions} from '../types'
import {_RenderMiddleware} from './_types'

Expand Down
3 changes: 1 addition & 2 deletions packages/sanity/src/core/config/form/_renderItem.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import {ItemProps, RenderItemCallback} from '../../../form'
import {defaultRenderItem} from '../../../form/studio/defaults'
import {ItemProps, RenderItemCallback, defaultRenderItem} from '../../../form'
import {PluginOptions, SourceOptions} from '../types'
import {_RenderMiddleware} from './_types'

Expand Down
1 change: 1 addition & 0 deletions packages/sanity/src/core/field/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export * from './diff'
export * from './paths'
export * from './preview'
export * from './types'
export * from './validation'
1 change: 1 addition & 0 deletions packages/sanity/src/core/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export * from './preview'
export * from './schema'
export * from './store'
export * from './studio'
export * from './studioClient'
export * from './templates'
export * from './theme'
export * from './user-color'
Expand Down
4 changes: 2 additions & 2 deletions packages/sanity/src/core/preview/components/SanityPreview.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {isImage, SchemaType} from '@sanity/types'
import {isImage, SchemaType, SortOrdering} from '@sanity/types'
import React, {createElement, CSSProperties, useCallback, useMemo, useState} from 'react'
import {PreviewProps} from '../../components'
import {Previewable, SortOrdering} from '../types'
import {Previewable} from '../types'
import {unstable_useDocumentPreview as useDocumentPreview} from '../useDocumentPreview'
import {useVisibility} from '../useVisibility'
import {_HIDE_DELAY} from './_constants'
Expand Down
2 changes: 1 addition & 1 deletion packages/sanity/src/core/preview/createPathObserver.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {uniq} from 'lodash'
import {Observable, of as observableOf} from 'rxjs'
import {switchMap} from 'rxjs/operators'
import {isRecord} from '../../core'
import {isRecord} from '../util'
import {ApiConfig, FieldName, PreviewPath, Previewable} from './types'
import {props} from './utils/props'

Expand Down
3 changes: 2 additions & 1 deletion packages/sanity/src/core/preview/createPreviewObserver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ import {
isCrossDatasetReference,
isCrossDatasetReferenceSchemaType,
isReferenceSchemaType,
PrepareViewOptions,
} from '@sanity/types'
import {isPlainObject} from 'lodash'
import {invokePrepare, prepareForPreview} from './utils/prepareForPreview'
import type {ApiConfig, PreviewPath, PreparedSnapshot, PrepareViewOptions} from './types'
import type {ApiConfig, PreviewPath, PreparedSnapshot} from './types'
import {getPreviewPaths} from './utils/getPreviewPaths'
import {Previewable, PreviewableType} from './types'

Expand Down
2 changes: 0 additions & 2 deletions packages/sanity/src/core/preview/types.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import {PreviewConfig, PreviewValue, Reference, SanityDocumentLike, SchemaType} from '@sanity/types'
import {Observable} from 'rxjs'

export type {SortOrdering, PrepareViewOptions} from '@sanity/types'

export type Id = string

export type Previewable = (
Expand Down
10 changes: 8 additions & 2 deletions packages/sanity/src/core/preview/utils/prepareForPreview.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
import {isTitledListValue, PreviewValue, SchemaType, TitledListValue} from '@sanity/types'
import {
isTitledListValue,
PrepareViewOptions,
PreviewValue,
SchemaType,
TitledListValue,
} from '@sanity/types'
import {debounce, flatten, get, isPlainObject, pick, uniqBy} from 'lodash'
import {INVALID_PREVIEW_FALLBACK} from '../constants'
import {PrepareViewOptions, PreviewableType} from '../types'
import {PreviewableType} from '../types'
import {isRecord} from '../../util'
import {isPortableTextArray, extractTextFromBlocks} from './portableText'
import {keysOf} from './keysOf'
Expand Down
1 change: 1 addition & 0 deletions packages/sanity/src/core/schema/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
export * from './createSchema'
export * from './helpers'
1 change: 1 addition & 0 deletions packages/sanity/src/core/studio/components/navbar/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export * from './StudioLogo'
export * from './StudioNavbar'
export * from './search'
export * from './tools'
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
export * from './SearchField'
export * from './search'
3 changes: 1 addition & 2 deletions packages/sanity/src/core/studio/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
export * from './components/navbar'

export * from './Studio'
export * from './StudioLayout'
export * from './StudioProvider'
export * from './activeWorkspaceMatcher'
export * from './components'
export * from './colorScheme'
export * from './renderStudio'
export * from './source'
Expand Down
4 changes: 3 additions & 1 deletion packages/sanity/src/core/studio/workspaces/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
export {useWorkspaces} from './useWorkspaces'
export {WorkspacesContext} from './WorkspacesContext'
export {WorkspacesProvider} from './WorkspacesProvider'

export {useWorkspaces} from './useWorkspaces'
export type {WorkspaceLike} from './types'
export * from './validateWorkspaces'
File renamed without changes.
1 change: 1 addition & 0 deletions packages/sanity/src/core/util/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export * from './PartialExcept'
export * from './createHookFromObservableFactory'
export * from './draftUtils'
export * from './empty'
export * from './globalScope'
export * from './isNonNullable'
export * from './isRecord'
Expand Down
3 changes: 1 addition & 2 deletions packages/sanity/src/desk/DeskToolProvider.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, {useMemo, useState} from 'react'
import {useConfigContextFromSource} from '../core/config/useConfigContextFromSource'
import {useSource} from '../core/studio'
import {useConfigContextFromSource, useSource} from '../core'
import {DeskToolContext} from './DeskToolContext'
import {createStructureBuilder, DefaultDocumentNodeResolver} from './structureBuilder'
import {StructureResolver, UnresolvedPaneNode} from './types'
Expand Down
3 changes: 1 addition & 2 deletions packages/sanity/src/desk/actions/GetHookCollectionState.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import type {ThrottleSettings} from 'lodash'
import React, {useCallback, useMemo, useRef, useState} from 'react'
import {isNonNullable} from '../../core/util/isNonNullable'
import {useThrottledCallback} from '../../core/util/useThrottledCallback'
import {isNonNullable, useThrottledCallback} from '../../core'
import {getHookId} from './actionId'
import {HookStateContainer} from './HookStateContainer'
import {cancelIdleCallback, requestIdleCallback} from './requestIdleCallback'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {RestoreIcon} from '@sanity/icons'
import React, {useCallback, useMemo, useState} from 'react'
import {useDocumentOperation} from '../../../core/hooks'
import {useDocumentOperation} from '../../../core'
import {useRouter} from '../../../router'
import {DocumentActionComponent, DocumentActionModalProps} from '../types'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react'
import {Box, Card, Container, Flex, Stack, Text} from '@sanity/ui'
import {WarningOutlineIcon} from '@sanity/icons'
import {useSource} from '../../core/studio'
import {useSource} from '../../core'

export function MissingDocumentTypesMessage() {
const {name: sourceName} = useSource()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
import {
AvailabilityResponse,
CrossProjectTokenStore,
DEFAULT_STUDIO_CLIENT_OPTIONS,
DocumentStore,
useCrossProjectTokenStore,
useDocumentStore,
Expand All @@ -20,7 +21,6 @@ import {
getPublishedId,
useClient,
} from '../../../core'
import {DEFAULT_STUDIO_CLIENT_OPTIONS} from '../../../core/studioClient'

// this is used in place of `instanceof` so the matching can be more robust and
// won't have any issues with dual packages etc
Expand Down
3 changes: 1 addition & 2 deletions packages/sanity/src/desk/components/deskTool/DeskTool.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@ import {PortalProvider, useToast} from '@sanity/ui'
import React, {memo, Fragment, useState, useEffect, useCallback} from 'react'
import styled from 'styled-components'
import isHotkey from 'is-hotkey'
import {useSchema} from '../../../core/hooks'
import {useSchema, _isCustomDocumentTypeDefinition} from '../../../core'
import {useRouter} from '../../../router'
import {LOADING_PANE} from '../../constants'
import {LoadingPane, DeskToolPane} from '../../panes'
import {useResolvedPanes} from '../../structureResolvers'
import {PaneNode} from '../../types'
import {PaneLayout} from '../pane'
import {useDeskTool} from '../../useDeskTool'
import {_isCustomDocumentTypeDefinition} from '../../../core/util'
import {NoDocumentTypesScreen} from './NoDocumentTypesScreen'

interface DeskToolProps {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import React, {useEffect, useMemo, useState} from 'react'
import {ErrorBoundary} from '@sanity/ui'
import {SourceProvider, useWorkspace} from '../../../core/studio'
import {Tool} from '../../../core/config'
import {isRecord} from '../../../core/util'
import {SourceProvider, useWorkspace, Tool, isRecord} from '../../../core'
import {DeskToolOptions} from '../../types'
import {useRouter} from '../../../router'
import {DeskToolProvider} from '../../DeskToolProvider'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ import {UnknownIcon} from '@sanity/icons'
import {Box, Button, Inline, Text, Tooltip} from '@sanity/ui'
import {partition, uniqBy} from 'lodash'
import React, {memo, useCallback, useMemo} from 'react'
import {useTemplates} from '../../../core/hooks'
import {InitialValueTemplateItem} from '../../../core/templates'
import {useTemplates, InitialValueTemplateItem} from '../../../core'
import {DeskToolPaneActionHandler, PaneMenuItem, PaneMenuItemGroup} from '../../types'
import {IntentButton} from '../IntentButton'
import {PaneContextMenuButton} from '../pane/PaneContextMenuButton'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, {forwardRef, useContext, useMemo} from 'react'
import {StateLink} from '../../../router'
import {useUnique} from '../../../core/util'
import {useUnique} from '../../../core'
import {PaneRouterContext} from './PaneRouterContext'

interface ParameterizedLinkProps {
Expand Down
2 changes: 1 addition & 1 deletion packages/sanity/src/desk/deskTool.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {MasterDetailIcon} from '@sanity/icons'
import {lazy} from 'react'
import {createPlugin} from '../core/config'
import {createPlugin} from '../core'
import {getIntentState} from './getIntentState'
import {router} from './router'
import {DeskToolOptions} from './types'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {useToast} from '@sanity/ui'
import React, {memo, useEffect} from 'react'
import {useDocumentOperationEvent} from '../../../core/hooks'
import {useDocumentOperationEvent} from '../../../core'
import {useDocumentPane} from './useDocumentPane'

function getOpErrorTitle(op: string): string {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {fromString as pathFromString} from '@sanity/util/paths'
import isHotkey from 'is-hotkey'
import {useMemoObservable} from 'react-rx'
import {
DEFAULT_STUDIO_CLIENT_OPTIONS,
DocumentPresence,
getPublishedId,
isDev,
Expand All @@ -26,7 +27,6 @@ import {PatchEvent, StateTree, toMutationPatches, useFormState} from '../../../f
import {usePaneRouter} from '../../components'
import {PaneMenuItem} from '../../types'
import {useDeskTool} from '../../useDeskTool'
import {DEFAULT_STUDIO_CLIENT_OPTIONS} from '../../../core/studioClient'
import {setAtPath} from '../../../form/store/stateTreeHelper'
import {getExpandOperations} from '../../../form/store/utils/getExpandOperations'
import {DocumentPaneContext, DocumentPaneContextValue} from './DocumentPaneContext'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from 'react'
import {Box, Card, Container, Flex, Text} from '@sanity/ui'
import {ReadOnlyIcon} from '@sanity/icons'
import styled from 'styled-components'
import {useCurrentUser} from '../../../../core/store/user/hooks'
import {useCurrentUser} from '../../../../core'

const Root = styled(Card)`
position: relative;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {Template} from '../../../core/templates'
import {Template} from '../../../core'

interface InitialValueOptions {
documentType: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {SanityDocumentLike} from '@sanity/types'
import HLRU from 'hashlru'
import {isRecord, isString} from '../../../../core/util'
import {isRecord, isString} from '../../../../core'

const lru = HLRU(1000)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {Box, Flex, useElementRect} from '@sanity/ui'
import React, {useEffect, useMemo, useState, memo, useLayoutEffect} from 'react'
import {useSyncState} from '../../../../../core/hooks'
import {useSyncState} from '../../../../../core'
import {useDocumentPane} from '../../useDocumentPane'
import {DocumentBadges} from './DocumentBadges'
import {PublishStatus} from './PublishStatus'
Expand Down
3 changes: 1 addition & 2 deletions packages/sanity/src/desk/panes/document/usePreviewUrl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ import {SanityDocument} from '@sanity/types'
import {useAsObservable} from 'react-rx'
import {debounceTime, switchMap, catchError} from 'rxjs/operators'
import {from, of} from 'rxjs'
import {useSource} from '../../../core/studio'
import {isRecord} from '../../../core/util'
import {useSource, isRecord} from '../../../core'

const isSanityDocument = (value: unknown): value is SanityDocument =>
isRecord(value) && typeof value._id === 'string' && typeof value._type === 'string'
Expand Down
2 changes: 1 addition & 1 deletion packages/sanity/src/desk/panes/documentList/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
SanityDocument,
SchemaType,
} from '@sanity/types'
import {getPublishedId, collate} from '../../../core/util'
import {getPublishedId, collate} from '../../../core'
import {DocumentListPaneItem, SortOrder, SortOrderBy} from './types'

export function getDocumentKey(value: DocumentListPaneItem, index: number): string {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ import {VirtualListChangeOpts} from '@sanity/ui'
import {useEffect, useState, useCallback, useMemo, useRef} from 'react'
import {of} from 'rxjs'
import {filter as filterEvents} from 'rxjs/operators'
import {useClient} from '../../../core/hooks'
import {DEFAULT_STUDIO_CLIENT_OPTIONS} from '../../../core/studioClient'
import {DEFAULT_STUDIO_CLIENT_OPTIONS, useClient} from '../../../core'
import {DocumentListPaneItem, QueryResult, SortOrder, SortOrderBy} from './types'
import {removePublishedWithDrafts, toOrderClause} from './helpers'
import {DEFAULT_ORDERING, FULL_LIST_LIMIT, PARTIAL_PAGE_LIMIT} from './constants'
Expand Down
2 changes: 1 addition & 1 deletion packages/sanity/src/desk/panes/loading/getWaitMessages.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {Observable, of, merge} from 'rxjs'
import {mapTo, delay} from 'rxjs/operators'
import {isDev} from '../../../core/environment'
import {isDev} from '../../../core'

/**
* @internal
Expand Down
2 changes: 1 addition & 1 deletion packages/sanity/src/desk/panes/unknown/UnknownPaneType.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {Box, Text} from '@sanity/ui'
import React from 'react'
import {isRecord} from '../../../core/util'
import {isRecord} from '../../../core'
import {Pane, PaneContent, PaneHeader} from '../../components/pane'

interface UnknownPaneProps {
Expand Down
8 changes: 5 additions & 3 deletions packages/sanity/src/desk/structureBuilder/DocumentList.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import {SchemaType, SortOrderingItem} from '@sanity/types'
import {SanityClient} from '@sanity/client'
import {ComposeIcon} from '@sanity/icons'
import {InitialValueTemplateItem} from '../../core/templates'
import {SourceClientOptions} from '../../core/config'
import {DEFAULT_STUDIO_CLIENT_OPTIONS} from '../../core/studioClient'
import {
DEFAULT_STUDIO_CLIENT_OPTIONS,
InitialValueTemplateItem,
SourceClientOptions,
} from '../../core'
import {SerializeError, HELP_URL} from './SerializeError'
import {SerializeOptions, Child} from './StructureNodes'
import {ChildResolver, ChildResolverOptions, ItemChild} from './ChildResolver'
Expand Down

0 comments on commit 2ddf5bd

Please sign in to comment.