diff --git a/dev/app/api/demo/create-payment/route.ts b/dev/app/api/demo/create-payment/route.ts index 89832fb..308eec0 100644 --- a/dev/app/api/demo/create-payment/route.ts +++ b/dev/app/api/demo/create-payment/route.ts @@ -44,6 +44,7 @@ export async function POST(request: Request) { }, }) } catch (error) { + // eslint-disable-next-line no-console console.error('Failed to create payment:', error) return Response.json( { diff --git a/dev/app/my-route/route.ts b/dev/app/my-route/route.ts index a3bf0fe..8364e5f 100644 --- a/dev/app/my-route/route.ts +++ b/dev/app/my-route/route.ts @@ -1,13 +1,4 @@ -import configPromise from '@payload-config' -import { getPayload } from 'payload' -import { useBillingPlugin } from '../../../src/plugin' - -export const GET = async (request: Request) => { - const payload = await getPayload({ - config: configPromise, - }) - - +export const GET = async () => { return Response.json({ message: 'This is an example of a custom route.', }) diff --git a/eslint.config.js b/eslint.config.js index b831856..b11a6df 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -20,9 +20,13 @@ export const defaultESLintIgnores = [ '**/build/', '**/node_modules/', '**/temp/', + '**/dev/**', // Ignore dev demo directory ] export default [ + { + ignores: defaultESLintIgnores, + }, ...payloadEsLintConfig, { rules: { diff --git a/src/collections/invoices.ts b/src/collections/invoices.ts index fbf4a42..edc154d 100644 --- a/src/collections/invoices.ts +++ b/src/collections/invoices.ts @@ -1,4 +1,4 @@ -import { +import type { AccessArgs, CollectionAfterChangeHook, CollectionBeforeChangeHook, @@ -390,7 +390,7 @@ export function createInvoicesCollection(pluginConfig: BillingPluginConfig): Col ] satisfies CollectionBeforeChangeHook[], beforeValidate: [ ({ data }) => { - if (!data) return + if (!data) {return} // If using extractor, customer relationship is required if (customerRelationSlug && customerInfoExtractor && !data.customer) { diff --git a/src/collections/refunds.ts b/src/collections/refunds.ts index 059c39b..cfc6da4 100644 --- a/src/collections/refunds.ts +++ b/src/collections/refunds.ts @@ -1,7 +1,8 @@ import type { AccessArgs, CollectionConfig } from 'payload' -import { BillingPluginConfig, defaults } from '../plugin/config' +import type { BillingPluginConfig} from '../plugin/config'; +import { defaults } from '../plugin/config' import { extractSlug } from '../plugin/utils' -import { Payment } from '../plugin/types/index' +import type { Payment } from '../plugin/types/index' import { createContextLogger } from '../utils/logger' export function createRefundsCollection(pluginConfig: BillingPluginConfig): CollectionConfig { diff --git a/src/exports/client.tsx b/src/exports/client.tsx index 8a19c8a..5e78241 100644 --- a/src/exports/client.tsx +++ b/src/exports/client.tsx @@ -62,7 +62,7 @@ export const PaymentStatusBadge: React.FC<{ status: string }> = ({ status }) => // Test mode indicator components export const TestModeWarningBanner: React.FC<{ visible?: boolean }> = ({ visible = true }) => { - if (!visible) return null + if (!visible) {return null} return (
= ({ visible marginBottom: '20px', borderRadius: '4px' }}> - 🧪 TEST MODE - Payment system is running in test mode for development + 🧪 TEST MODE - Payment system is running in test mode for development
) } export const TestModeBadge: React.FC<{ visible?: boolean }> = ({ visible = true }) => { - if (!visible) return null + if (!visible) {return null} return ( -

🧪 Test Payment Controls

+

🧪 Test Payment Controls

diff --git a/src/exports/rsc.tsx b/src/exports/rsc.tsx index 0ba8351..3bece70 100644 --- a/src/exports/rsc.tsx +++ b/src/exports/rsc.tsx @@ -10,8 +10,8 @@ interface BillingServerStatsProps { payloadInstance?: unknown } -export const BillingServerStats: React.FC = async ({ - payloadInstance +export const BillingServerStats: React.FC = ({ + payloadInstance: _payloadInstance }) => { // In a real implementation, this would fetch data from the database // const stats = await payloadInstance?.find({ diff --git a/src/plugin/config.ts b/src/plugin/config.ts index 6c8658a..cfe468c 100644 --- a/src/plugin/config.ts +++ b/src/plugin/config.ts @@ -1,6 +1,6 @@ -import { CollectionConfig } from 'payload' -import { FieldsOverride } from './utils' -import { PaymentProvider } from './types/index' +import type { CollectionConfig } from 'payload' +import type { FieldsOverride } from './utils' +import type { PaymentProvider } from './types/index' export const defaults = { paymentsCollection: 'payments', diff --git a/src/plugin/types/invoices.ts b/src/plugin/types/invoices.ts index 8249b7a..b46e4e8 100644 --- a/src/plugin/types/invoices.ts +++ b/src/plugin/types/invoices.ts @@ -1,5 +1,5 @@ -import { Payment } from './payments' -import { Id } from './id' +import type { Payment } from './payments' +import type { Id } from './id' export interface Invoice { id: Id; diff --git a/src/plugin/types/payments.ts b/src/plugin/types/payments.ts index 5e803a9..0164514 100644 --- a/src/plugin/types/payments.ts +++ b/src/plugin/types/payments.ts @@ -1,6 +1,6 @@ -import { Refund } from './refunds' -import { Invoice } from './invoices' -import { Id } from './id' +import type { Refund } from './refunds' +import type { Invoice } from './invoices' +import type { Id } from './id' export interface Payment { id: Id; diff --git a/src/plugin/types/refunds.ts b/src/plugin/types/refunds.ts index df05c51..074f053 100644 --- a/src/plugin/types/refunds.ts +++ b/src/plugin/types/refunds.ts @@ -1,4 +1,4 @@ -import { Payment } from './payments' +import type { Payment } from './payments' export interface Refund { id: number; diff --git a/src/providers/test.ts b/src/providers/test.ts index 1e1de16..cc44525 100644 --- a/src/providers/test.ts +++ b/src/providers/test.ts @@ -281,10 +281,10 @@ export const testProvider = (testConfig: TestProviderConfig) => { { path: '/payload-billing/test/config', method: 'get', - handler: async (req) => { + handler: () => { const response: TestProviderConfigResponse = { enabled: testConfig.enabled, - scenarios: scenarios, + scenarios, methods: Object.entries(PAYMENT_METHODS).map(([id, method]) => ({ id, name: method.name, @@ -525,7 +525,7 @@ async function processTestPayment( pluginConfig: BillingPluginConfig ): Promise { try { - if (!session.scenario) return + if (!session.scenario) {return} // Map scenario outcome to payment status let finalStatus: Payment['status'] = 'pending' diff --git a/src/providers/utils.ts b/src/providers/utils.ts index 42fc3c3..9803177 100644 --- a/src/providers/utils.ts +++ b/src/providers/utils.ts @@ -91,7 +91,7 @@ export async function updatePaymentStatus( const paymentInTransaction = await payload.findByID({ collection: paymentsCollection, id: toPayloadId(paymentId), - req: { transactionID: transactionID } + req: { transactionID } }) as Payment // Check if version still matches @@ -115,7 +115,7 @@ export async function updatePaymentStatus( }, version: currentVersion + 1 }, - req: { transactionID: transactionID } + req: { transactionID } }) await payload.db.commitTransaction(transactionID) @@ -139,7 +139,7 @@ export async function updateInvoiceOnPaymentSuccess( payment: Payment, pluginConfig: BillingPluginConfig ): Promise { - if (!payment.invoice) return + if (!payment.invoice) {return} const invoicesCollection = extractSlug(pluginConfig.collections?.invoices || defaults.invoicesCollection) const invoiceId = typeof payment.invoice === 'object' @@ -206,7 +206,7 @@ export function logWebhookEvent( export function validateProductionUrl(url: string | undefined, urlType: string): void { const isProduction = process.env.NODE_ENV === 'production' - if (!isProduction) return + if (!isProduction) {return} if (!url) { throw new Error(`${urlType} URL is required for production`)