chore: package type export consistency (#6232)

This commit is contained in:
Elliot DeNolf
2024-05-06 11:38:23 -04:00
committed by GitHub
parent 453e331014
commit 26151e39c9
30 changed files with 119 additions and 46 deletions

View File

@@ -72,9 +72,15 @@
"import": "./dist/index.js",
"require": "./dist/index.js",
"types": "./dist/index.d.ts"
},
"./*": {
"import": "./dist/exports/*.js",
"require": "./dist/exports/*.js",
"types": "./dist/exports/*.d.ts"
}
},
"main": "./dist/index.js",
"registry": "https://registry.npmjs.org/",
"types": "./dist/index.d.ts"
},
"homepage:": "https://payloadcms.com"

View File

@@ -1,8 +1,8 @@
import type { PluginConfig } from '../../../types.js'
import type { FormBuilderPluginConfig } from '../../../types.js'
export const createCharge = async (
beforeChangeData: any,
formConfig: PluginConfig,
formConfig: FormBuilderPluginConfig,
): Promise<any> => {
const { data, operation } = beforeChangeData

View File

@@ -1,10 +1,13 @@
import type { Email, FormattedEmail, PluginConfig } from '../../../types.js'
import type { Email, FormBuilderPluginConfig, FormattedEmail } from '../../../types.js'
import { serializeLexical } from '../../../utilities/lexical/serializeLexical.js'
import { replaceDoubleCurlys } from '../../../utilities/replaceDoubleCurlys.js'
import { serializeSlate } from '../../../utilities/slate/serializeSlate.js'
export const sendEmail = async (beforeChangeData: any, formConfig: PluginConfig): Promise<any> => {
export const sendEmail = async (
beforeChangeData: any,
formConfig: FormBuilderPluginConfig,
): Promise<any> => {
const { data, operation, req } = beforeChangeData
if (operation === 'create') {

View File

@@ -1,12 +1,14 @@
import type { CollectionConfig } from 'payload/types'
import type { PluginConfig } from '../../types.js'
import type { FormBuilderPluginConfig } from '../../types.js'
import { createCharge } from './hooks/createCharge.js'
import { sendEmail } from './hooks/sendEmail.js'
// all settings can be overridden by the config
export const generateSubmissionCollection = (formConfig: PluginConfig): CollectionConfig => {
export const generateSubmissionCollection = (
formConfig: FormBuilderPluginConfig,
): CollectionConfig => {
const formSlug = formConfig?.formOverrides?.slug || 'forms'
const newConfig: CollectionConfig = {

View File

@@ -2,12 +2,12 @@ import type { Block, CollectionConfig, Field } from 'payload/types'
import merge from 'deepmerge'
import type { FieldConfig, PluginConfig } from '../../types.js'
import type { FieldConfig, FormBuilderPluginConfig } from '../../types.js'
import { fields } from './fields.js'
// all settings can be overridden by the config
export const generateFormCollection = (formConfig: PluginConfig): CollectionConfig => {
export const generateFormCollection = (formConfig: FormBuilderPluginConfig): CollectionConfig => {
const redirect: Field = {
name: 'redirect',
type: 'group',

View File

@@ -1 +1,29 @@
export type { BeforeEmail, Email, FieldsConfig, HandlePayment, Redirect } from '../types.js'
export type {
BeforeEmail,
BlockConfig,
CheckboxField,
CountryField,
Email,
EmailField,
FieldConfig,
FieldValues,
FieldsConfig,
Form,
FormBuilderPluginConfig as PluginConfig,
FormFieldBlock,
FormSubmission,
FormattedEmail,
HandlePayment,
MessageField,
PaymentField,
PaymentFieldConfig,
PriceCondition,
Redirect,
SelectField,
SelectFieldOption,
StateField,
SubmissionValue,
TextAreaField,
TextField,
isValidBlockConfig,
} from '../types.js'

View File

@@ -1,6 +1,6 @@
import type { Config } from 'payload/config'
import type { PluginConfig } from './types.js'
import type { FormBuilderPluginConfig } from './types.js'
import { generateSubmissionCollection } from './collections/FormSubmissions/index.js'
import { generateFormCollection } from './collections/Forms/index.js'
@@ -9,9 +9,9 @@ export { fields } from './collections/Forms/fields.js'
export { getPaymentTotal } from './utilities/getPaymentTotal.js'
export const formBuilderPlugin =
(incomingFormConfig: PluginConfig) =>
(incomingFormConfig: FormBuilderPluginConfig) =>
(config: Config): Config => {
const formConfig: PluginConfig = {
const formConfig: FormBuilderPluginConfig = {
...incomingFormConfig,
fields: {
checkbox: true,

View File

@@ -40,7 +40,7 @@ export interface FieldsConfig {
export type BeforeEmail = (emails: FormattedEmail[]) => FormattedEmail[] | Promise<FormattedEmail[]>
export type HandlePayment = (data: any) => void
export interface PluginConfig {
export type FormBuilderPluginConfig = {
beforeEmail?: BeforeEmail
fields?: FieldsConfig
formOverrides?: Partial<CollectionConfig>

View File

@@ -49,9 +49,15 @@
"import": "./dist/index.js",
"require": "./dist/index.js",
"types": "./dist/index.d.ts"
},
"./*": {
"import": "./dist/exports/*.js",
"require": "./dist/exports/*.js",
"types": "./dist/exports/*.d.ts"
}
},
"main": "./dist/index.js",
"registry": "https://registry.npmjs.org/",
"types": "./dist/index.d.ts"
}
}

View File

@@ -1 +1 @@
export type { GenerateLabel, GenerateURL } from '../types.js'
export type { Breadcrumb, GenerateLabel, GenerateURL, NestedDocsPluginConfig } from '../types.js'

View File

@@ -4,7 +4,7 @@ import type {
PayloadRequestWithData,
} from 'payload/types'
import type { PluginConfig } from '../types.js'
import type { NestedDocsPluginConfig } from '../types.js'
import { populateBreadcrumbs } from '../utilities/populateBreadcrumbs.js'
@@ -12,7 +12,7 @@ type ResaveArgs = {
collection: CollectionConfig
doc: Record<string, unknown>
draft: boolean
pluginConfig: PluginConfig
pluginConfig: NestedDocsPluginConfig
req: PayloadRequestWithData
}
@@ -70,7 +70,7 @@ const resave = async ({ collection, doc, draft, pluginConfig, req }: ResaveArgs)
}
export const resaveChildren =
(pluginConfig: PluginConfig, collection: CollectionConfig): CollectionAfterChangeHook =>
(pluginConfig: NestedDocsPluginConfig, collection: CollectionConfig): CollectionAfterChangeHook =>
async ({ doc, req }) => {
await resave({
collection,

View File

@@ -1,12 +1,12 @@
import type { CollectionAfterChangeHook, CollectionConfig } from 'payload/types'
import type { PluginConfig } from '../types.js'
import type { NestedDocsPluginConfig } from '../types.js'
// This hook automatically re-saves a document after it is created
// so that we can build its breadcrumbs with the newly created document's ID.
export const resaveSelfAfterCreate =
(pluginConfig: PluginConfig, collection: CollectionConfig): CollectionAfterChangeHook =>
(pluginConfig: NestedDocsPluginConfig, collection: CollectionConfig): CollectionAfterChangeHook =>
async ({ doc, operation, req }) => {
const { locale, payload } = req
const breadcrumbSlug = pluginConfig.breadcrumbsFieldSlug || 'breadcrumbs'

View File

@@ -1,7 +1,7 @@
import type { Plugin } from 'payload/config'
import type { SingleRelationshipField } from 'payload/types'
import type { PluginConfig } from './types.js'
import type { NestedDocsPluginConfig } from './types.js'
import { createBreadcrumbsField } from './fields/breadcrumbs.js'
import { createParentField } from './fields/parent.js'
@@ -13,7 +13,7 @@ import { populateBreadcrumbs } from './utilities/populateBreadcrumbs.js'
export { createBreadcrumbsField, createParentField }
export const nestedDocsPlugin =
(pluginConfig: PluginConfig): Plugin =>
(pluginConfig: NestedDocsPluginConfig): Plugin =>
(config) => ({
...config,
collections: (config.collections || []).map((collection) => {

View File

@@ -1,4 +1,4 @@
export interface Breadcrumb {
export type Breadcrumb = {
doc: string
label: string
url?: string
@@ -14,7 +14,7 @@ export type GenerateLabel = (
currentDoc: Record<string, unknown>,
) => string
export interface PluginConfig {
export type NestedDocsPluginConfig = {
/**
* Should be supplied if using an alternative field name for the 'breadcrumbs' field in collections
*/

View File

@@ -1,9 +1,9 @@
import type { CollectionConfig } from 'payload/types'
import type { Breadcrumb, PluginConfig } from '../types.js'
import type { Breadcrumb, NestedDocsPluginConfig } from '../types.js'
export const formatBreadcrumb = (
pluginConfig: PluginConfig,
pluginConfig: NestedDocsPluginConfig,
collection: CollectionConfig,
docs: Array<Record<string, unknown>>,
): Breadcrumb => {

View File

@@ -1,10 +1,10 @@
import type { CollectionConfig } from 'payload/types'
import type { PluginConfig } from '../types.js'
import type { NestedDocsPluginConfig } from '../types.js'
export const getParents = async (
req: any,
pluginConfig: PluginConfig,
pluginConfig: NestedDocsPluginConfig,
collection: CollectionConfig,
doc: Record<string, unknown>,
docs: Array<Record<string, unknown>> = [],

View File

@@ -1,13 +1,13 @@
import type { CollectionConfig } from 'payload/types'
import type { PluginConfig } from '../types.js'
import type { NestedDocsPluginConfig } from '../types.js'
import { formatBreadcrumb } from './formatBreadcrumb.js'
import { getParents } from './getParents.js'
export const populateBreadcrumbs = async (
req: any,
pluginConfig: PluginConfig,
pluginConfig: NestedDocsPluginConfig,
collection: CollectionConfig,
data: any,
originalDoc?: any,

View File

@@ -24,6 +24,11 @@
"import": "./src/index.ts",
"require": "./src/index.ts",
"types": "./src/index.ts"
},
"./*": {
"import": "./src/exports/*.ts",
"require": "./src/exports/*.ts",
"types": "./src/exports/*.ts"
}
},
"main": "./src/index.ts",
@@ -51,6 +56,11 @@
"payload": "workspace:*"
},
"publishConfig": {
"./*": {
"import": "./dist/exports/*.js",
"require": "./dist/exports/*.js",
"types": "./dist/exports/*.d.ts"
},
"exports": {
".": {
"import": "./dist/index.js",

View File

@@ -0,0 +1 @@
export type { RedirectsPluginConfig } from '../types.js'

View File

@@ -1,11 +1,11 @@
import type { Config } from 'payload/config'
import type { PluginConfig } from './types.js'
import type { RedirectsPluginConfig } from './types.js'
import deepMerge from './deepMerge.js'
export const redirectsPlugin =
(pluginConfig: PluginConfig) =>
(pluginConfig: RedirectsPluginConfig) =>
(incomingConfig: Config): Config => ({
...incomingConfig,
collections: [

View File

@@ -1,6 +1,6 @@
import type { CollectionConfig } from 'payload/types'
export interface PluginConfig {
export type RedirectsPluginConfig = {
collections?: string[]
overrides?: Partial<CollectionConfig>
}

View File

@@ -63,6 +63,11 @@
"import": "./dist/index.js",
"require": "./dist/index.js",
"types": "./dist/index.d.ts"
},
"./*": {
"import": "./dist/exports/*.js",
"require": "./dist/exports/*.js",
"types": "./dist/exports/*.d.ts"
}
},
"main": "./dist/index.js",

View File

@@ -2,12 +2,12 @@ import type { CollectionConfig } from 'payload/types'
import deepMerge from 'deepmerge'
import type { PluginConfig } from '../types.js'
import type { SearchPluginConfig } from '../types.js'
import { LinkToDoc } from './ui/index.js'
// all settings can be overridden by the config
export const generateSearchCollection = (pluginConfig: PluginConfig): CollectionConfig =>
export const generateSearchCollection = (pluginConfig: SearchPluginConfig): CollectionConfig =>
deepMerge(
{
slug: 'search',

View File

@@ -1 +1 @@
export type { BeforeSync, DocToSync } from '../types.js'
export type { BeforeSync, DocToSync, SearchPluginConfig, SyncWithSearch } from '../types.js'

View File

@@ -1,18 +1,18 @@
import type { Config } from 'payload/config'
import type { PluginConfig } from './types.js'
import type { SearchPluginConfig } from './types.js'
import { deleteFromSearch } from './Search/hooks/deleteFromSearch.js'
import { syncWithSearch } from './Search/hooks/syncWithSearch.js'
import { generateSearchCollection } from './Search/index.js'
export const searchPlugin =
(incomingPluginConfig: PluginConfig) =>
(incomingPluginConfig: SearchPluginConfig) =>
(config: Config): Config => {
const { collections } = config
if (collections) {
const pluginConfig: PluginConfig = {
const pluginConfig: SearchPluginConfig = {
...incomingPluginConfig,
deleteDrafts: true,
syncDrafts: false,

View File

@@ -5,7 +5,7 @@ import type {
PayloadRequestWithData,
} from 'payload/types'
export interface DocToSync {
export type DocToSync = {
[key: string]: any
doc: {
relationTo: string
@@ -23,7 +23,7 @@ export type BeforeSync = (args: {
searchDoc: DocToSync
}) => DocToSync | Promise<DocToSync>
export interface PluginConfig {
export type SearchPluginConfig = {
beforeSync?: BeforeSync
collections?: string[]
defaultPriorities?: {
@@ -39,6 +39,6 @@ export interface PluginConfig {
export type SyncWithSearch = (
Args: Omit<Parameters<CollectionAfterChangeHook>[0], 'collection'> & {
collection: string
pluginConfig: PluginConfig
pluginConfig: SearchPluginConfig
},
) => ReturnType<CollectionAfterChangeHook>

View File

@@ -66,6 +66,11 @@
"import": "./dist/index.js",
"require": "./dist/index.js",
"types": "./dist/index.d.ts"
},
"./*": {
"import": "./dist/exports/*.js",
"require": "./dist/exports/*.js",
"types": "./dist/exports/*.d.ts"
}
},
"main": "./dist/index.js",

View File

@@ -1 +1,8 @@
export type { GenerateDescription, GenerateImage, GenerateTitle, GenerateURL } from '../types.js'
export type {
GenerateDescription,
GenerateImage,
GenerateTitle,
GenerateURL,
Meta,
SEOPluginConfig as PluginConfig,
} from '../types.js'

View File

@@ -10,7 +10,7 @@ import type {
GenerateImage,
GenerateTitle,
GenerateURL,
PluginConfig,
SEOPluginConfig,
} from './types.js'
import { MetaDescription } from './fields/MetaDescription.js'
@@ -21,7 +21,7 @@ import { Overview } from './ui/Overview.js'
import { Preview } from './ui/Preview.js'
export const seoPlugin =
(pluginConfig: PluginConfig) =>
(pluginConfig: SEOPluginConfig) =>
(config: Config): Config => {
const seoFields: GroupField[] = [
{

View File

@@ -20,7 +20,7 @@ export type GenerateURL = <T = any>(
args: DocumentInfoContext & { doc: T; locale?: string },
) => Promise<string> | string
export interface PluginConfig {
export type SEOPluginConfig = {
collections?: string[]
fieldOverrides?: {
description?: Partial<TextareaField>
@@ -38,7 +38,7 @@ export interface PluginConfig {
uploadsCollection?: string
}
export interface Meta {
export type Meta = {
description?: string
image?: any // TODO: type this
keywords?: string