Compare commits

..

18 Commits

Author SHA1 Message Date
Elliot DeNolf
de0b37a4b2 0.5.0-beta.4 2023-10-06 09:40:00 -04:00
Elliot DeNolf
1e70d8854e chore: force beta packages for now 2023-10-06 09:38:30 -04:00
Elliot DeNolf
2497f2a65a 0.5.0-beta.3 2023-10-04 13:41:39 -04:00
Elliot DeNolf
90948146c6 chore: rename editors 2023-10-04 13:41:07 -04:00
Elliot DeNolf
e6a5132812 0.5.0-beta.2 2023-10-01 15:44:40 -04:00
Elliot DeNolf
53310281d0 feat: add editor import and replacement 2023-10-01 15:44:26 -04:00
Elliot DeNolf
3ac9dae1d2 0.5.0-beta.1 2023-09-29 12:13:02 -04:00
Elliot DeNolf
9c165a73cb chore: proper postgres adapter import replacement 2023-09-29 12:12:49 -04:00
Elliot DeNolf
9b58915aff 0.5.0-beta.0 2023-09-29 12:02:05 -04:00
Elliot DeNolf
c1daeb3432 feat: bump template branch to 2.0 2023-09-29 12:02:01 -04:00
Elliot DeNolf
ff8acde322 chore: check DATABASE_URI key 2023-09-19 15:53:06 -04:00
Elliot DeNolf
1bade389e4 test: reorganize tests 2023-09-19 15:42:04 -04:00
Elliot DeNolf
489de652a3 chore(templates): update branch on starter urls temporarily 2023-09-19 15:38:31 -04:00
Elliot DeNolf
166b06e5d8 chore: replace DATABASE_URI env value 2023-09-19 15:11:27 -04:00
Elliot DeNolf
ed143c7a67 test: add debug for cli 2023-09-19 14:58:24 -04:00
Elliot DeNolf
b29e2ae685 test: dependency and config replacement tests 2023-09-19 14:58:10 -04:00
Elliot DeNolf
9bafc0fcbf feat: update templates with bundler and db adapter 2023-09-19 14:23:47 -04:00
Elliot DeNolf
b3db078a5f feat: implement db selection 2023-09-18 12:13:50 -04:00
8 changed files with 911 additions and 1228 deletions

View File

@@ -37,7 +37,7 @@
"prompts": "^2.4.2",
"terminal-link": "^2.1.1"
},
"version": "0.5.2",
"version": "0.5.0-beta.4",
"devDependencies": {
"@types/command-exists": "^1.2.0",
"@types/degit": "^2.8.3",

View File

@@ -19,22 +19,16 @@ export async function configurePayloadConfig(args: {
try {
const packageObj = await fse.readJson(packageJsonPath)
packageObj.dependencies['payload'] = '^2.0.0'
// TODO: Likely revert this once we go to latest
packageObj.dependencies['payload'] = 'beta'
const dbPackage = dbPackages[args.dbDetails.type]
const bundlerPackage = bundlerPackages['webpack']
const editorPackage = editorPackages['slate']
const editorPackage = editorPackages['lexical']
// Delete all other db adapters
Object.values(dbPackages).forEach(p => {
if (p.packageName !== dbPackage.packageName) {
delete packageObj.dependencies[p.packageName]
}
})
packageObj.dependencies[dbPackage.packageName] = dbPackage.version
packageObj.dependencies[bundlerPackage.packageName] = bundlerPackage.version
packageObj.dependencies[editorPackage.packageName] = editorPackage.version
packageObj.dependencies[dbPackage.packageName] = 'beta'
packageObj.dependencies[bundlerPackage.packageName] = 'beta'
packageObj.dependencies[editorPackage.packageName] = 'beta'
await fse.writeJson(packageJsonPath, packageObj, { spaces: 2 })
} catch (err: unknown) {
@@ -65,7 +59,7 @@ export async function configurePayloadConfig(args: {
const dbReplacement = dbPackages[args.dbDetails.type]
const bundlerReplacement = bundlerPackages['webpack']
const editorReplacement = editorPackages['slate']
const editorReplacement = editorPackages['lexical']
let dbConfigStartLineIndex: number | undefined
let dbConfigEndLineIndex: number | undefined

View File

@@ -2,8 +2,7 @@ import fse from 'fs-extra'
import path from 'path'
import type { BundlerType, CliArgs, DbType, ProjectTemplate } from '../types'
import { createProject } from './create-project'
import { bundlerPackages, dbPackages, editorPackages } from './packages'
import exp from 'constants'
import { bundlerPackages, dbPackages } from './packages'
const projectDir = path.resolve(__dirname, './tmp')
describe('createProject', () => {
@@ -86,7 +85,7 @@ describe('createProject', () => {
const template: ProjectTemplate = {
name: 'blank',
type: 'starter',
url: 'https://github.com/payloadcms/payload/templates/blank',
url: 'https://github.com/payloadcms/payload/templates/blank#2.0',
description: 'Blank Template',
}
await createProject({
@@ -103,30 +102,15 @@ describe('createProject', () => {
const dbReplacement = dbPackages[db as DbType]
const bundlerReplacement = bundlerPackages[bundler as BundlerType]
const editorReplacement = editorPackages['slate']
const packageJsonPath = path.resolve(projectDir, 'package.json')
const packageJson = fse.readJsonSync(packageJsonPath)
// Check deps
expect(packageJson.dependencies['payload']).toEqual('^2.0.0')
expect(packageJson.dependencies[dbReplacement.packageName]).toEqual(
dbReplacement.version,
)
// Should only have one db adapter
expect(packageJson.dependencies[dbReplacement.packageName]).toBeDefined()
expect(
Object.keys(packageJson.dependencies).filter(n =>
n.startsWith('@payloadcms/db-'),
),
).toHaveLength(1)
expect(packageJson.dependencies[bundlerReplacement.packageName]).toEqual(
bundlerReplacement.version,
)
expect(packageJson.dependencies[editorReplacement.packageName]).toEqual(
editorReplacement.version,
)
packageJson.dependencies[bundlerReplacement.packageName],
).toBeDefined()
const payloadConfigPath = path.resolve(projectDir, 'src/payload.config.ts')
const content = fse.readFileSync(payloadConfigPath, 'utf-8')
@@ -147,9 +131,4 @@ describe('createProject', () => {
})
})
})
describe('Templates', () => {
it.todo('Verify that all templates are valid')
// Loop through all templates.ts that should have replacement comments, and verify that they are present
})
})

View File

@@ -4,21 +4,18 @@ type DbAdapterReplacement = {
packageName: string
importReplacement: string
configReplacement: string[]
version: string
}
type BundlerReplacement = {
packageName: string
importReplacement: string
configReplacement: string
version: string
}
type EditorReplacement = {
packageName: string
importReplacement: string
configReplacement: string
version: string
}
const mongodbReplacement: DbAdapterReplacement = {
@@ -30,7 +27,6 @@ const mongodbReplacement: DbAdapterReplacement = {
' url: process.env.DATABASE_URI,',
' }),',
],
version: '^1.0.0',
}
const postgresReplacement: DbAdapterReplacement = {
@@ -38,12 +34,11 @@ const postgresReplacement: DbAdapterReplacement = {
importReplacement: "import { postgresAdapter } from '@payloadcms/db-postgres'",
configReplacement: [
' db: postgresAdapter({',
' pool: {',
' client: {',
' connectionString: process.env.DATABASE_URI,',
' },',
' }),',
],
version: '^0.x', // up to, not including 1.0.0
}
export const dbPackages: Record<DbType, DbAdapterReplacement> = {
@@ -55,15 +50,13 @@ const webpackReplacement: BundlerReplacement = {
packageName: '@payloadcms/bundler-webpack',
importReplacement: "import { webpackBundler } from '@payloadcms/bundler-webpack'",
// Replacement of line containing `// bundler-config`
configReplacement: ' bundler: webpackBundler(),',
version: '^1.0.0',
configReplacement: ' bundler: webpackBundler(),',
}
const viteReplacement: BundlerReplacement = {
packageName: '@payloadcms/bundler-vite',
importReplacement: "import { viteBundler } from '@payloadcms/bundler-vite'",
configReplacement: ' bundler: viteBundler(),',
version: '^0.x', // up to, not including 1.0.0
}
export const bundlerPackages: Record<BundlerType, BundlerReplacement> = {
@@ -76,13 +69,11 @@ export const editorPackages: Record<EditorType, EditorReplacement> = {
packageName: '@payloadcms/richtext-slate',
importReplacement: "import { slateEditor } from '@payloadcms/richtext-slate'",
configReplacement: ' editor: slateEditor({}),',
version: '^1.0.0',
},
lexical: {
packageName: '@payloadcms/richtext-lexical',
importReplacement:
"import { lexicalEditor } from '@payloadcms/richtext-lexical'",
configReplacement: ' editor: lexicalEditor({}),',
version: '^0.x', // up to, not including 1.0.0
},
}

View File

@@ -16,7 +16,7 @@ const dbChoiceRecord: Record<DbType, DbChoice> = {
},
postgres: {
value: 'postgres',
title: 'PostgreSQL (beta)',
title: 'PostgreSQL',
dbConnectionPrefix: 'postgres://127.0.0.1:5432/',
},
}
@@ -70,7 +70,7 @@ export async function selectDb(
{
type: 'text',
name: 'value',
message: `Enter ${dbChoice.title.split(' ')[0]} connection string`, // strip beta from title
message: `Enter ${dbChoice.title} connection string`,
initial: `${dbChoice.dbConnectionPrefix}${
projectName === '.'
? `payload-${getRandomDigitSuffix()}`

View File

@@ -16,19 +16,19 @@ export async function getValidTemplates(): Promise<ProjectTemplate[]> {
{
name: 'blank',
type: 'starter',
url: 'https://github.com/payloadcms/payload/templates/blank',
url: 'https://github.com/payloadcms/payload/templates/blank#2.0',
description: 'Blank Template',
},
{
name: 'website',
type: 'starter',
url: 'https://github.com/payloadcms/payload/templates/website',
url: 'https://github.com/payloadcms/payload/templates/website#2.0',
description: 'Website Template',
},
{
name: 'ecommerce',
type: 'starter',
url: 'https://github.com/payloadcms/payload/templates/ecommerce',
url: 'https://github.com/payloadcms/payload/templates/ecommerce#2.0',
description: 'E-commerce Template',
},
{

View File

@@ -31,7 +31,6 @@ export class Main {
'--dry-run': Boolean,
'--beta': Boolean,
'-d': '--db',
'-h': '--help',
'-n': '--name',
'-t': '--template',

2062
yarn.lock

File diff suppressed because it is too large Load Diff