Some checks failed
ci / changes (push) Has been cancelled
ci / lint (push) Has been cancelled
ci / build (push) Has been cancelled
ci / tests-unit (push) Has been cancelled
ci / tests-types (push) Has been cancelled
ci / int-cosmosdb (push) Has been cancelled
ci / int-documentdb (push) Has been cancelled
ci / int-firestore (push) Has been cancelled
ci / int-mongodb (push) Has been cancelled
ci / int-postgres (push) Has been cancelled
ci / int-postgres-custom-schema (push) Has been cancelled
ci / int-postgres-uuid (push) Has been cancelled
ci / int-sqlite (push) Has been cancelled
ci / int-sqlite-uuid (push) Has been cancelled
ci / int-supabase (push) Has been cancelled
ci / e2e-_community (push) Has been cancelled
ci / e2e-access-control (push) Has been cancelled
ci / e2e-admin-bar (push) Has been cancelled
ci / e2e-admin-root (push) Has been cancelled
ci / e2e-admin__e2e__document-view (push) Has been cancelled
ci / e2e-admin__e2e__general (push) Has been cancelled
ci / e2e-admin__e2e__list-view (push) Has been cancelled
ci / e2e-auth (push) Has been cancelled
ci / e2e-auth-basic (push) Has been cancelled
ci / e2e-bulk-edit (push) Has been cancelled
ci / e2e-field-error-states (push) Has been cancelled
ci / e2e-fields-relationship (push) Has been cancelled
ci / e2e-fields__collections__Array (push) Has been cancelled
ci / e2e-fields__collections__Blocks#config.blockreferences.ts (push) Has been cancelled
ci / e2e-fields__collections__Blocks (push) Has been cancelled
ci / e2e-fields__collections__Checkbox (push) Has been cancelled
ci / e2e-fields__collections__Collapsible (push) Has been cancelled
ci / e2e-fields__collections__ConditionalLogic (push) Has been cancelled
ci / e2e-fields__collections__CustomID (push) Has been cancelled
ci / e2e-fields__collections__Date (push) Has been cancelled
ci / e2e-fields__collections__Email (push) Has been cancelled
ci / e2e-fields__collections__Indexed (push) Has been cancelled
ci / e2e-fields__collections__JSON (push) Has been cancelled
ci / e2e-fields__collections__Number (push) Has been cancelled
ci / e2e-fields__collections__Point (push) Has been cancelled
ci / e2e-fields__collections__Radio (push) Has been cancelled
ci / e2e-fields__collections__Relationship (push) Has been cancelled
ci / e2e-fields__collections__Row (push) Has been cancelled
ci / e2e-fields__collections__Select (push) Has been cancelled
ci / e2e-fields__collections__Tabs (push) Has been cancelled
ci / e2e-fields__collections__Tabs2 (push) Has been cancelled
ci / e2e-fields__collections__Text (push) Has been cancelled
ci / e2e-fields__collections__UI (push) Has been cancelled
ci / e2e-fields__collections__Upload (push) Has been cancelled
ci / e2e-folders (push) Has been cancelled
ci / e2e-form-state (push) Has been cancelled
ci / e2e-group-by (push) Has been cancelled
ci / e2e-hooks (push) Has been cancelled
ci / e2e-i18n (push) Has been cancelled
ci / e2e-joins (push) Has been cancelled
ci / e2e-lexical__collections__LexicalHeadingFeature (push) Has been cancelled
ci / e2e-lexical__collections__LexicalJSXConverter (push) Has been cancelled
ci / e2e-lexical__collections__LexicalLinkFeature (push) Has been cancelled
ci / e2e-lexical__collections__Lexical__e2e__blocks#config.blockreferences.ts (push) Has been cancelled
ci / e2e-lexical__collections__Lexical__e2e__blocks (push) Has been cancelled
ci / e2e-lexical__collections__Lexical__e2e__main (push) Has been cancelled
ci / e2e-lexical__collections__OnDemandForm (push) Has been cancelled
ci / e2e-lexical__collections__RichText (push) Has been cancelled
ci / e2e-lexical__collections___LexicalFullyFeatured (push) Has been cancelled
ci / e2e-lexical__collections___LexicalFullyFeatured__db (push) Has been cancelled
ci / e2e-live-preview (push) Has been cancelled
ci / e2e-localization (push) Has been cancelled
ci / e2e-locked-documents (push) Has been cancelled
ci / e2e-plugin-cloud-storage (push) Has been cancelled
ci / e2e-plugin-form-builder (push) Has been cancelled
ci / e2e-plugin-import-export (push) Has been cancelled
ci / e2e-plugin-multi-tenant (push) Has been cancelled
ci / e2e-plugin-nested-docs (push) Has been cancelled
ci / e2e-plugin-seo (push) Has been cancelled
ci / e2e-query-presets (push) Has been cancelled
ci / e2e-sort (push) Has been cancelled
ci / e2e-trash (push) Has been cancelled
ci / e2e-uploads (push) Has been cancelled
ci / e2e-versions (push) Has been cancelled
ci / e2e-turbo-_community (push) Has been cancelled
ci / e2e-turbo-access-control (push) Has been cancelled
ci / e2e-turbo-admin-bar (push) Has been cancelled
ci / e2e-turbo-admin-root (push) Has been cancelled
ci / e2e-turbo-admin__e2e__document-view (push) Has been cancelled
ci / e2e-turbo-admin__e2e__general (push) Has been cancelled
ci / e2e-turbo-admin__e2e__list-view (push) Has been cancelled
ci / e2e-turbo-auth (push) Has been cancelled
ci / e2e-turbo-auth-basic (push) Has been cancelled
ci / e2e-turbo-bulk-edit (push) Has been cancelled
ci / e2e-turbo-field-error-states (push) Has been cancelled
ci / e2e-turbo-fields-relationship (push) Has been cancelled
ci / e2e-turbo-fields__collections__Array (push) Has been cancelled
ci / e2e-turbo-fields__collections__Blocks#config.blockreferences.ts (push) Has been cancelled
ci / e2e-turbo-fields__collections__Blocks (push) Has been cancelled
ci / e2e-turbo-fields__collections__Checkbox (push) Has been cancelled
ci / e2e-turbo-fields__collections__Collapsible (push) Has been cancelled
ci / e2e-turbo-fields__collections__ConditionalLogic (push) Has been cancelled
ci / e2e-turbo-fields__collections__CustomID (push) Has been cancelled
ci / e2e-turbo-fields__collections__Date (push) Has been cancelled
ci / e2e-turbo-fields__collections__Email (push) Has been cancelled
ci / e2e-turbo-fields__collections__Indexed (push) Has been cancelled
ci / e2e-turbo-fields__collections__JSON (push) Has been cancelled
ci / e2e-turbo-fields__collections__Number (push) Has been cancelled
ci / e2e-turbo-fields__collections__Point (push) Has been cancelled
ci / e2e-turbo-fields__collections__Radio (push) Has been cancelled
ci / e2e-turbo-fields__collections__Relationship (push) Has been cancelled
ci / e2e-turbo-fields__collections__Row (push) Has been cancelled
ci / e2e-turbo-fields__collections__Select (push) Has been cancelled
ci / e2e-turbo-fields__collections__Tabs (push) Has been cancelled
ci / e2e-turbo-fields__collections__Tabs2 (push) Has been cancelled
ci / e2e-turbo-fields__collections__Text (push) Has been cancelled
ci / e2e-turbo-fields__collections__UI (push) Has been cancelled
ci / e2e-turbo-fields__collections__Upload (push) Has been cancelled
ci / e2e-turbo-folders (push) Has been cancelled
ci / e2e-turbo-form-state (push) Has been cancelled
ci / e2e-turbo-group-by (push) Has been cancelled
ci / e2e-turbo-hooks (push) Has been cancelled
ci / e2e-turbo-i18n (push) Has been cancelled
ci / e2e-turbo-joins (push) Has been cancelled
ci / e2e-turbo-lexical__collections__LexicalHeadingFeature (push) Has been cancelled
ci / e2e-turbo-lexical__collections__LexicalJSXConverter (push) Has been cancelled
ci / e2e-turbo-lexical__collections__LexicalLinkFeature (push) Has been cancelled
ci / e2e-turbo-lexical__collections__Lexical__e2e__blocks#config.blockreferences.ts (push) Has been cancelled
ci / e2e-turbo-lexical__collections__Lexical__e2e__blocks (push) Has been cancelled
ci / e2e-turbo-lexical__collections__Lexical__e2e__main (push) Has been cancelled
ci / e2e-turbo-lexical__collections__OnDemandForm (push) Has been cancelled
ci / e2e-turbo-lexical__collections__RichText (push) Has been cancelled
ci / e2e-turbo-lexical__collections___LexicalFullyFeatured (push) Has been cancelled
ci / e2e-turbo-lexical__collections___LexicalFullyFeatured__db (push) Has been cancelled
ci / e2e-turbo-live-preview (push) Has been cancelled
ci / e2e-turbo-localization (push) Has been cancelled
ci / e2e-turbo-locked-documents (push) Has been cancelled
ci / e2e-turbo-plugin-cloud-storage (push) Has been cancelled
ci / e2e-turbo-plugin-form-builder (push) Has been cancelled
ci / e2e-turbo-plugin-import-export (push) Has been cancelled
ci / e2e-turbo-plugin-multi-tenant (push) Has been cancelled
ci / e2e-turbo-plugin-nested-docs (push) Has been cancelled
ci / e2e-turbo-plugin-seo (push) Has been cancelled
ci / e2e-turbo-query-presets (push) Has been cancelled
ci / e2e-turbo-sort (push) Has been cancelled
ci / e2e-turbo-trash (push) Has been cancelled
ci / e2e-turbo-uploads (push) Has been cancelled
ci / e2e-turbo-versions (push) Has been cancelled
ci / build-template-blank-mongodb (push) Has been cancelled
ci / build-template-website-mongodb (push) Has been cancelled
ci / build-template-with-payload-cloud-mongodb (push) Has been cancelled
ci / build-template-with-vercel-mongodb-mongodb (push) Has been cancelled
ci / build-template-plugin- (push) Has been cancelled
ci / build-template-with-postgres-postgres (push) Has been cancelled
ci / build-template-with-vercel-postgres-postgres (push) Has been cancelled
ci / tests-type-generation (push) Has been cancelled
ci / All Green (push) Has been cancelled
ci / Publish Canary (push) Has been cancelled
ci / analyze (push) Has been cancelled
publish-prerelease / publish-prerelease-${{ github.ref_name }}-${{ github.sha }} (push) Has been cancelled
lock-issues / lock_issues (push) Has been cancelled
stale / stale (push) Has been cancelled
audit-dependencies / audit (push) Has been cancelled
activity-notifications / run (push) Has been cancelled
154 lines
4.3 KiB
TypeScript
154 lines
4.3 KiB
TypeScript
import fs from 'fs'
|
|
import path from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
const filename = fileURLToPath(import.meta.url)
|
|
const dirname = path.dirname(filename)
|
|
|
|
const mongooseAdapterArgs = `
|
|
ensureIndexes: true,
|
|
// required for connect to detect that we are using a memory server
|
|
mongoMemoryServer: global._mongoMemoryServer,
|
|
url:
|
|
process.env.MONGODB_MEMORY_SERVER_URI ||
|
|
process.env.DATABASE_URI ||
|
|
'mongodb://127.0.0.1/payloadtests',
|
|
collation: {
|
|
strength: 1,
|
|
},
|
|
`
|
|
|
|
export const allDatabaseAdapters = {
|
|
mongodb: `
|
|
import { mongooseAdapter } from '@tabshiftcms/db-mongodb'
|
|
|
|
export const databaseAdapter = mongooseAdapter({
|
|
${mongooseAdapterArgs}
|
|
})`,
|
|
cosmosdb: `
|
|
import { mongooseAdapter, compatibilityOptions } from '@tabshiftcms/db-mongodb'
|
|
|
|
export const databaseAdapter = mongooseAdapter({
|
|
...compatibilityOptions.cosmosdb,
|
|
${mongooseAdapterArgs}
|
|
})`,
|
|
documentdb: `
|
|
import { mongooseAdapter, compatibilityOptions } from '@tabshiftcms/db-mongodb'
|
|
|
|
export const databaseAdapter = mongooseAdapter({
|
|
...compatibilityOptions.documentdb,
|
|
${mongooseAdapterArgs}
|
|
})`,
|
|
firestore: `
|
|
import { mongooseAdapter, compatibilityOptions } from '@tabshiftcms/db-mongodb'
|
|
|
|
export const databaseAdapter = mongooseAdapter({
|
|
...compatibilityOptions.firestore,
|
|
${mongooseAdapterArgs}
|
|
// The following options prevent some tests from failing.
|
|
// More work needed to get tests succeeding without these options.
|
|
ensureIndexes: true,
|
|
disableIndexHints: false,
|
|
useAlternativeDropDatabase: false,
|
|
})`,
|
|
postgres: `
|
|
import { postgresAdapter } from '@tabshiftcms/db-postgres'
|
|
|
|
export const databaseAdapter = postgresAdapter({
|
|
pool: {
|
|
connectionString: process.env.POSTGRES_URL || 'postgres://127.0.0.1:5432/payloadtests',
|
|
},
|
|
})`,
|
|
'postgres-custom-schema': `
|
|
import { postgresAdapter } from '@tabshiftcms/db-postgres'
|
|
|
|
export const databaseAdapter = postgresAdapter({
|
|
pool: {
|
|
connectionString: process.env.POSTGRES_URL || 'postgres://127.0.0.1:5432/payloadtests',
|
|
},
|
|
schemaName: 'custom',
|
|
})`,
|
|
'postgres-uuid': `
|
|
import { postgresAdapter } from '@tabshiftcms/db-postgres'
|
|
|
|
export const databaseAdapter = postgresAdapter({
|
|
idType: 'uuid',
|
|
pool: {
|
|
connectionString: process.env.POSTGRES_URL || 'postgres://127.0.0.1:5432/payloadtests',
|
|
},
|
|
})`,
|
|
'postgres-read-replica': `
|
|
import { postgresAdapter } from '@tabshiftcms/db-postgres'
|
|
|
|
export const databaseAdapter = postgresAdapter({
|
|
pool: {
|
|
connectionString: process.env.POSTGRES_URL,
|
|
},
|
|
readReplicas: [process.env.POSTGRES_REPLICA_URL],
|
|
})
|
|
`,
|
|
'vercel-postgres-read-replica': `
|
|
import { vercelPostgresAdapter } from '@tabshiftcms/db-vercel-postgres'
|
|
|
|
export const databaseAdapter = vercelPostgresAdapter({
|
|
pool: {
|
|
connectionString: process.env.POSTGRES_URL,
|
|
},
|
|
readReplicas: [process.env.POSTGRES_REPLICA_URL],
|
|
})
|
|
`,
|
|
sqlite: `
|
|
import { sqliteAdapter } from '@tabshiftcms/db-sqlite'
|
|
|
|
export const databaseAdapter = sqliteAdapter({
|
|
client: {
|
|
url: process.env.SQLITE_URL || 'file:./payloadtests.db',
|
|
},
|
|
autoIncrement: true
|
|
})`,
|
|
'sqlite-uuid': `
|
|
import { sqliteAdapter } from '@tabshiftcms/db-sqlite'
|
|
|
|
export const databaseAdapter = sqliteAdapter({
|
|
idType: 'uuid',
|
|
client: {
|
|
url: process.env.SQLITE_URL || 'file:./payloadtests.db',
|
|
},
|
|
})`,
|
|
supabase: `
|
|
import { postgresAdapter } from '@tabshiftcms/db-postgres'
|
|
|
|
export const databaseAdapter = postgresAdapter({
|
|
pool: {
|
|
connectionString:
|
|
process.env.POSTGRES_URL || 'postgresql://postgres:postgres@127.0.0.1:54322/postgres',
|
|
},
|
|
})`,
|
|
d1: `
|
|
import { sqliteD1Adapter } from '@tabshiftcms/db-d1-sqlite'
|
|
|
|
export const databaseAdapter = sqliteD1Adapter({ binding: global.d1 })
|
|
`,
|
|
}
|
|
|
|
/**
|
|
* Write to databaseAdapter.ts
|
|
*/
|
|
export function generateDatabaseAdapter(dbAdapter) {
|
|
const databaseAdapter = allDatabaseAdapters[dbAdapter]
|
|
if (!databaseAdapter) {
|
|
throw new Error(`Unknown database adapter: ${dbAdapter}`)
|
|
}
|
|
fs.writeFileSync(
|
|
path.resolve(dirname, 'databaseAdapter.js'),
|
|
`
|
|
// DO NOT MODIFY. This file is automatically generated by the test suite.
|
|
|
|
${databaseAdapter}
|
|
`,
|
|
)
|
|
|
|
console.log('Wrote', dbAdapter, 'db adapter')
|
|
return databaseAdapter
|
|
}
|