chore!: update plugin exports to be named and consistent (#6195)

BREAKING CHANGE: All plugins have been updated to use named exports and the names have been updated to be consistent.

// before
import { cloudStorage } from '@payloadcms/plugin-cloud-storage'
// current
import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'

//before
import { payloadCloud } from '@payloadcms/plugin-cloud'
// current
import { payloadCloudPlugin } from '@payloadcms/plugin-cloud'

//before
import formBuilder from '@payloadcms/plugin-form-builder'
// current
import { formBuilderPlugin } from '@payloadcms/plugin-form-builder'

//before
import { nestedDocs } from '@payloadcms/plugin-nested-docs'
// current
import { nestedDocsPlugin } from '@payloadcms/plugin-nested-docs'

//before
import { redirects } from '@payloadcms/plugin-redirects'
// current
import { redirectsPlugin } from '@payloadcms/plugin-redirects'

// before
import search from '@payloadcms/plugin-search'
// current
import { searchPlugin } from '@payloadcms/plugin-search'

//before
import { sentry } from '@payloadcms/plugin-sentry'
// current
import { sentryPlugin } from '@payloadcms/plugin-sentry'

// before
import { seo } from '@payloadcms/plugin-seo'
// current
import { seoPlugin } from '@payloadcms/plugin-seo'
This commit is contained in:
Paul
2024-05-03 13:36:36 -03:00
committed by GitHub
parent 9e5d521567
commit b642cb2d93
25 changed files with 50 additions and 58 deletions

View File

@@ -1 +1 @@
export { cloudStorage } from './plugin.js' export { cloudStoragePlugin } from './plugin.js'

View File

@@ -15,7 +15,7 @@ import { getBeforeChangeHook } from './hooks/beforeChange.js'
// Optionally, the adapter can specify any Webpack config overrides if they are necessary. // Optionally, the adapter can specify any Webpack config overrides if they are necessary.
export const cloudStorage = export const cloudStoragePlugin =
(pluginOptions: PluginOptions) => (pluginOptions: PluginOptions) =>
(incomingConfig: Config): Config => { (incomingConfig: Config): Config => {
const { collections: allCollectionOptions, enabled } = pluginOptions const { collections: allCollectionOptions, enabled } = pluginOptions

View File

@@ -1,3 +1,3 @@
export { payloadCloud } from './plugin.js' export { payloadCloudPlugin } from './plugin.js'
export { createKey } from './utilities/createKey.js' export { createKey } from './utilities/createKey.js'
export { getStorageClient } from './utilities/getStorageClient.js' export { getStorageClient } from './utilities/getStorageClient.js'

View File

@@ -4,7 +4,7 @@ import type { Payload } from 'payload'
import nodemailer from 'nodemailer' import nodemailer from 'nodemailer'
import { defaults } from 'payload/config' import { defaults } from 'payload/config'
import { payloadCloud } from './plugin.js' import { payloadCloudPlugin } from './plugin.js'
import { nodemailerAdapter } from '@payloadcms/email-nodemailer' import { nodemailerAdapter } from '@payloadcms/email-nodemailer'
const mockedPayload: Payload = jest.fn() as unknown as Payload const mockedPayload: Payload = jest.fn() as unknown as Payload
@@ -34,7 +34,7 @@ describe('plugin', () => {
describe('not in Payload Cloud', () => { describe('not in Payload Cloud', () => {
// eslint-disable-next-line jest/expect-expect // eslint-disable-next-line jest/expect-expect
it('should return unmodified config', async () => { it('should return unmodified config', async () => {
const plugin = payloadCloud() const plugin = payloadCloudPlugin()
const config = await plugin(createConfig()) const config = await plugin(createConfig())
assertNoCloudStorage(config) assertNoCloudStorage(config)
@@ -52,7 +52,7 @@ describe('plugin', () => {
describe('storage', () => { describe('storage', () => {
// eslint-disable-next-line jest/expect-expect // eslint-disable-next-line jest/expect-expect
it('should default to using payload cloud storage', async () => { it('should default to using payload cloud storage', async () => {
const plugin = payloadCloud() const plugin = payloadCloudPlugin()
const config = await plugin(createConfig()) const config = await plugin(createConfig())
assertCloudStorage(config) assertCloudStorage(config)
@@ -60,7 +60,7 @@ describe('plugin', () => {
// eslint-disable-next-line jest/expect-expect // eslint-disable-next-line jest/expect-expect
it('should allow opt-out', async () => { it('should allow opt-out', async () => {
const plugin = payloadCloud({ storage: false }) const plugin = payloadCloudPlugin({ storage: false })
const config = await plugin(createConfig()) const config = await plugin(createConfig())
assertNoCloudStorage(config) assertNoCloudStorage(config)
@@ -70,7 +70,7 @@ describe('plugin', () => {
describe('email', () => { describe('email', () => {
// eslint-disable-next-line jest/expect-expect // eslint-disable-next-line jest/expect-expect
it('should default to using payload cloud email', async () => { it('should default to using payload cloud email', async () => {
const plugin = payloadCloud() const plugin = payloadCloudPlugin()
const config = await plugin(createConfig()) const config = await plugin(createConfig())
expect(createTransportSpy).toHaveBeenCalledWith( expect(createTransportSpy).toHaveBeenCalledWith(
@@ -82,7 +82,7 @@ describe('plugin', () => {
// eslint-disable-next-line jest/expect-expect // eslint-disable-next-line jest/expect-expect
it('should allow opt-out', async () => { it('should allow opt-out', async () => {
const plugin = payloadCloud({ email: false }) const plugin = payloadCloudPlugin({ email: false })
const config = await plugin(createConfig()) const config = await plugin(createConfig())
expect(config.email).toBeUndefined() expect(config.email).toBeUndefined()
@@ -93,7 +93,7 @@ describe('plugin', () => {
delete process.env.PAYLOAD_CLOUD_EMAIL_API_KEY delete process.env.PAYLOAD_CLOUD_EMAIL_API_KEY
delete process.env.PAYLOAD_CLOUD_DEFAULT_DOMAIN delete process.env.PAYLOAD_CLOUD_DEFAULT_DOMAIN
const plugin = payloadCloud() const plugin = payloadCloudPlugin()
const config = await plugin(createConfig()) const config = await plugin(createConfig())
expect(config.email).toBeUndefined() expect(config.email).toBeUndefined()
@@ -120,7 +120,7 @@ describe('plugin', () => {
}), }),
}) })
const plugin = payloadCloud() const plugin = payloadCloudPlugin()
const config = await plugin(configWithTransport) const config = await plugin(configWithTransport)
expect(logSpy).toHaveBeenCalledWith( expect(logSpy).toHaveBeenCalledWith(
@@ -141,7 +141,7 @@ describe('plugin', () => {
}), }),
}) })
const plugin = payloadCloud() const plugin = payloadCloudPlugin()
const config = await plugin(configWithPartialEmail) const config = await plugin(configWithPartialEmail)
const emailConfig = config.email as Awaited<ReturnType<typeof nodemailerAdapter>> const emailConfig = config.email as Awaited<ReturnType<typeof nodemailerAdapter>>

View File

@@ -11,7 +11,7 @@ import {
} from './hooks/uploadCache.js' } from './hooks/uploadCache.js'
import { getStaticHandler } from './staticHandler.js' import { getStaticHandler } from './staticHandler.js'
export const payloadCloud = export const payloadCloudPlugin =
(pluginOptions?: PluginOptions) => (pluginOptions?: PluginOptions) =>
async (incomingConfig: Config): Promise<Config> => { async (incomingConfig: Config): Promise<Config> => {
let config = { ...incomingConfig } let config = { ...incomingConfig }

View File

@@ -8,7 +8,7 @@ import { generateFormCollection } from './collections/Forms/index.js'
export { fields } from './collections/Forms/fields.js' export { fields } from './collections/Forms/fields.js'
export { getPaymentTotal } from './utilities/getPaymentTotal.js' export { getPaymentTotal } from './utilities/getPaymentTotal.js'
const FormBuilder = export const formBuilderPlugin =
(incomingFormConfig: PluginConfig) => (incomingFormConfig: PluginConfig) =>
(config: Config): Config => { (config: Config): Config => {
const formConfig: PluginConfig = { const formConfig: PluginConfig = {
@@ -51,5 +51,3 @@ const FormBuilder =
], ],
} }
} }
export default FormBuilder

View File

@@ -12,7 +12,7 @@ import { populateBreadcrumbs } from './utilities/populateBreadcrumbs.js'
export { createBreadcrumbsField, createParentField } export { createBreadcrumbsField, createParentField }
export const nestedDocs = export const nestedDocsPlugin =
(pluginConfig: PluginConfig): Plugin => (pluginConfig: PluginConfig): Plugin =>
(config) => ({ (config) => ({
...config, ...config,

View File

@@ -4,7 +4,7 @@ import type { PluginConfig } from './types.js'
import deepMerge from './deepMerge.js' import deepMerge from './deepMerge.js'
const redirects = export const redirectsPlugin =
(pluginConfig: PluginConfig) => (pluginConfig: PluginConfig) =>
(incomingConfig: Config): Config => ({ (incomingConfig: Config): Config => ({
...incomingConfig, ...incomingConfig,
@@ -78,5 +78,3 @@ const redirects =
), ),
], ],
}) })
export { redirects }

View File

@@ -6,7 +6,7 @@ import deleteFromSearch from './Search/hooks/deleteFromSearch.js'
import syncWithSearch from './Search/hooks/syncWithSearch.js' import syncWithSearch from './Search/hooks/syncWithSearch.js'
import { generateSearchCollection } from './Search/index.js' import { generateSearchCollection } from './Search/index.js'
const Search = export const searchPlugin =
(incomingSearchConfig: SearchConfig) => (incomingSearchConfig: SearchConfig) =>
(config: Config): Config => { (config: Config): Config => {
const { collections } = config const { collections } = config
@@ -61,5 +61,3 @@ const Search =
return config return config
} }
export default Search

View File

@@ -1,2 +1,2 @@
export { sentry } from './plugin' export { sentryPlugin } from './plugin.js'
export type { PluginOptions } from './types' export type { PluginOptions } from './types.js'

View File

@@ -1,32 +1,32 @@
import type { Config } from 'payload/config' import type { Config } from 'payload/config'
import { defaults } from 'payload/config' import { defaults } from 'payload/config'
import { sentry } from './plugin' import { sentryPlugin } from './plugin'
describe('plugin', () => { describe('plugin', () => {
it('should run the plugin', () => { it('should run the plugin', () => {
const plugin = sentry({ enabled: true, dsn: 'asdf' }) const plugin = sentryPlugin({ enabled: true, dsn: 'asdf' })
const config = plugin(createConfig()) const config = plugin(createConfig())
assertPluginRan(config) assertPluginRan(config)
}) })
it('should default enable: true', () => { it('should default enable: true', () => {
const plugin = sentry({ dsn: 'asdf' }) const plugin = sentryPlugin({ dsn: 'asdf' })
const config = plugin(createConfig()) const config = plugin(createConfig())
assertPluginRan(config) assertPluginRan(config)
}) })
it('should not run if dsn is not provided', () => { it('should not run if dsn is not provided', () => {
const plugin = sentry({ enabled: true, dsn: null }) const plugin = sentryPlugin({ enabled: true, dsn: null })
const config = plugin(createConfig()) const config = plugin(createConfig())
assertPluginDidNotRun(config) assertPluginDidNotRun(config)
}) })
it('should respect enabled: false', () => { it('should respect enabled: false', () => {
const plugin = sentry({ enabled: false, dsn: null }) const plugin = sentryPlugin({ enabled: false, dsn: null })
const config = plugin(createConfig()) const config = plugin(createConfig())
assertPluginDidNotRun(config) assertPluginDidNotRun(config)

View File

@@ -6,7 +6,7 @@ import type { PluginOptions } from './types.js'
import { captureException } from './captureException.js' import { captureException } from './captureException.js'
import { startSentry } from './startSentry.js' import { startSentry } from './startSentry.js'
export const sentry = export const sentryPlugin =
(pluginOptions: PluginOptions) => (pluginOptions: PluginOptions) =>
(incomingConfig: Config): Config => { (incomingConfig: Config): Config => {
const config = { ...incomingConfig } const config = { ...incomingConfig }

View File

@@ -20,7 +20,7 @@ import { translations } from './translations/index.js'
import { Overview } from './ui/Overview.js' import { Overview } from './ui/Overview.js'
import { Preview } from './ui/Preview.js' import { Preview } from './ui/Preview.js'
const seo = export const seoPlugin =
(pluginConfig: PluginConfig) => (pluginConfig: PluginConfig) =>
(config: Config): Config => { (config: Config): Config => {
const seoFields: GroupField[] = [ const seoFields: GroupField[] = [
@@ -297,5 +297,3 @@ const seo =
}, },
} }
} }
export { seo }

View File

@@ -8,7 +8,7 @@ import type {
import type { Config, Plugin } from 'payload/config' import type { Config, Plugin } from 'payload/config'
import { BlobServiceClient } from '@azure/storage-blob' import { BlobServiceClient } from '@azure/storage-blob'
import { cloudStorage } from '@payloadcms/plugin-cloud-storage' import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
import { getGenerateURL } from './generateURL.js' import { getGenerateURL } from './generateURL.js'
import { getHandleDelete } from './handleDelete.js' import { getHandleDelete } from './handleDelete.js'
@@ -94,7 +94,7 @@ export const azureStorage: AzureStoragePlugin =
}), }),
} }
return cloudStorage({ return cloudStoragePlugin({
collections: collectionsWithAdapter, collections: collectionsWithAdapter,
})(config) })(config)
} }

View File

@@ -8,7 +8,7 @@ import type {
import type { Config, Plugin } from 'payload/config' import type { Config, Plugin } from 'payload/config'
import { Storage } from '@google-cloud/storage' import { Storage } from '@google-cloud/storage'
import { cloudStorage } from '@payloadcms/plugin-cloud-storage' import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
import { getGenerateURL } from './generateURL.js' import { getGenerateURL } from './generateURL.js'
import { getHandleDelete } from './handleDelete.js' import { getHandleDelete } from './handleDelete.js'
@@ -84,7 +84,7 @@ export const gcsStorage: GcsStoragePlugin =
}), }),
} }
return cloudStorage({ return cloudStoragePlugin({
collections: collectionsWithAdapter, collections: collectionsWithAdapter,
})(config) })(config)
} }

View File

@@ -7,7 +7,7 @@ import type {
import type { Config, Plugin } from 'payload/config' import type { Config, Plugin } from 'payload/config'
import * as AWS from '@aws-sdk/client-s3' import * as AWS from '@aws-sdk/client-s3'
import { cloudStorage } from '@payloadcms/plugin-cloud-storage' import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
import { getGenerateURL } from './generateURL.js' import { getGenerateURL } from './generateURL.js'
import { getHandleDelete } from './handleDelete.js' import { getHandleDelete } from './handleDelete.js'
@@ -97,7 +97,7 @@ export const s3Storage: S3StoragePlugin =
}), }),
} }
return cloudStorage({ return cloudStoragePlugin({
collections: collectionsWithAdapter, collections: collectionsWithAdapter,
})(config) })(config)
} }

View File

@@ -5,7 +5,7 @@ import type {
import type { Adapter, GeneratedAdapter } from '@payloadcms/plugin-cloud-storage/types' import type { Adapter, GeneratedAdapter } from '@payloadcms/plugin-cloud-storage/types'
import type { Config, Plugin } from 'payload/config' import type { Config, Plugin } from 'payload/config'
import { cloudStorage } from '@payloadcms/plugin-cloud-storage' import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
import { getGenerateUrl } from './generateURL.js' import { getGenerateUrl } from './generateURL.js'
import { getHandleDelete } from './handleDelete.js' import { getHandleDelete } from './handleDelete.js'
@@ -125,7 +125,7 @@ export const vercelBlobStorage: VercelBlobStoragePlugin =
}), }),
} }
return cloudStorage({ return cloudStoragePlugin({
collections: collectionsWithAdapter, collections: collectionsWithAdapter,
})(config) })(config)
} }

View File

@@ -1,6 +1,6 @@
import type { Adapter } from '@payloadcms/plugin-cloud-storage/types' import type { Adapter } from '@payloadcms/plugin-cloud-storage/types'
import { cloudStorage } from '@payloadcms/plugin-cloud-storage' import { cloudStoragePlugin } from '@payloadcms/plugin-cloud-storage'
import { azureBlobStorageAdapter } from '@payloadcms/plugin-cloud-storage/azure' import { azureBlobStorageAdapter } from '@payloadcms/plugin-cloud-storage/azure'
import { gcsAdapter } from '@payloadcms/plugin-cloud-storage/gcs' import { gcsAdapter } from '@payloadcms/plugin-cloud-storage/gcs'
import { s3Adapter } from '@payloadcms/plugin-cloud-storage/s3' import { s3Adapter } from '@payloadcms/plugin-cloud-storage/s3'
@@ -122,7 +122,7 @@ export default buildConfigWithDefaults({
) )
}, },
plugins: [ plugins: [
cloudStorage({ cloudStoragePlugin({
collections: { collections: {
[mediaSlug]: { [mediaSlug]: {
adapter, adapter,

View File

@@ -1,4 +1,4 @@
import { payloadCloud } from '@payloadcms/plugin-cloud' import { payloadCloudPlugin } from '@payloadcms/plugin-cloud'
import dotenv from 'dotenv' import dotenv from 'dotenv'
import path from 'path' import path from 'path'
@@ -23,6 +23,6 @@ export default buildConfigWithDefaults({
}, },
}) })
}, },
plugins: [payloadCloud()], plugins: [payloadCloudPlugin()],
serverURL: process.env.PAYLOAD_PUBLIC_SERVER_URL, serverURL: process.env.PAYLOAD_PUBLIC_SERVER_URL,
}) })

View File

@@ -1,6 +1,6 @@
import type { Block } from 'payload/types' import type { Block } from 'payload/types'
import formBuilder, { fields as formFields } from '@payloadcms/plugin-form-builder' import { formBuilderPlugin, fields as formFields } from '@payloadcms/plugin-form-builder'
import { slateEditor } from '@payloadcms/richtext-slate' import { slateEditor } from '@payloadcms/richtext-slate'
import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js'
@@ -43,7 +43,7 @@ export default buildConfigWithDefaults({
await seed(payload) await seed(payload)
}, },
plugins: [ plugins: [
formBuilder({ formBuilderPlugin({
// handlePayment: handleFormPayments, // handlePayment: handleFormPayments,
// beforeEmail: prepareFormEmails, // beforeEmail: prepareFormEmails,
fields: { fields: {

View File

@@ -1,4 +1,4 @@
import { nestedDocs } from '@payloadcms/plugin-nested-docs' import { nestedDocsPlugin } from '@payloadcms/plugin-nested-docs'
import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js'
import { devUser } from '../credentials.js' import { devUser } from '../credentials.js'
@@ -26,12 +26,12 @@ export default buildConfigWithDefaults({
await seed(payload) await seed(payload)
}, },
plugins: [ plugins: [
nestedDocs({ nestedDocsPlugin({
collections: ['pages'], collections: ['pages'],
generateLabel: (_, doc) => doc.title as string, generateLabel: (_, doc) => doc.title as string,
generateURL: (docs) => docs.reduce((url, doc) => `${url}/${doc.slug}`, ''), generateURL: (docs) => docs.reduce((url, doc) => `${url}/${doc.slug}`, ''),
}), }),
nestedDocs({ nestedDocsPlugin({
breadcrumbsFieldSlug: 'categorization', breadcrumbsFieldSlug: 'categorization',
collections: ['categories'], collections: ['categories'],
generateLabel: (_, doc) => doc.name as string, generateLabel: (_, doc) => doc.name as string,

View File

@@ -1,4 +1,4 @@
import { redirects } from '@payloadcms/plugin-redirects' import { redirectsPlugin } from '@payloadcms/plugin-redirects'
import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js'
import { devUser } from '../credentials.js' import { devUser } from '../credentials.js'
@@ -25,7 +25,7 @@ export default buildConfigWithDefaults({
await seed(payload) await seed(payload)
}, },
plugins: [ plugins: [
redirects({ redirectsPlugin({
collections: ['pages'], collections: ['pages'],
}), }),
], ],

View File

@@ -1,4 +1,4 @@
import searchPlugin from '@payloadcms/plugin-search' import { searchPlugin } from '@payloadcms/plugin-search'
import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js'
import { devUser } from '../credentials.js' import { devUser } from '../credentials.js'

View File

@@ -1,4 +1,4 @@
import { sentry } from '@payloadcms/plugin-sentry' import { sentryPlugin } from '@payloadcms/plugin-sentry'
import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js'
import { devUser } from '../credentials.js' import { devUser } from '../credentials.js'
@@ -24,7 +24,7 @@ export default buildConfigWithDefaults({
}) })
}, },
plugins: [ plugins: [
sentry({ sentryPlugin({
dsn: 'https://61edebe5ee6d4d38a9d6459c7323d777@o4505289711681536.ingest.sentry.io/4505357688242176', dsn: 'https://61edebe5ee6d4d38a9d6459c7323d777@o4505289711681536.ingest.sentry.io/4505357688242176',
options: { options: {
captureErrors: [400, 403, 404], captureErrors: [400, 403, 404],

View File

@@ -1,4 +1,4 @@
import { seo } from '@payloadcms/plugin-seo' import { seoPlugin } from '@payloadcms/plugin-seo'
import { en } from '@payloadcms/translations/languages/en' import { en } from '@payloadcms/translations/languages/en'
import { es } from '@payloadcms/translations/languages/es' import { es } from '@payloadcms/translations/languages/es'
@@ -41,7 +41,7 @@ export default buildConfigWithDefaults({
await seed(payload) await seed(payload)
}, },
plugins: [ plugins: [
seo({ seoPlugin({
collections: ['pages'], collections: ['pages'],
fieldOverrides: { fieldOverrides: {
title: { title: {