create-payload-app 1.0.0 → 3.0.0-alpha.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -0
- package/dist/lib/configure-payload-config.d.ts +11 -0
- package/dist/lib/configure-payload-config.d.ts.map +1 -0
- package/dist/lib/configure-payload-config.js +15 -53
- package/dist/lib/configure-payload-config.js.map +1 -0
- package/dist/lib/create-project.d.ts +14 -0
- package/dist/lib/create-project.d.ts.map +1 -0
- package/dist/lib/create-project.js +84 -24
- package/dist/lib/create-project.js.map +1 -0
- package/dist/lib/create-project.spec.d.ts +2 -0
- package/dist/lib/create-project.spec.d.ts.map +1 -0
- package/dist/lib/create-project.spec.js +30 -75
- package/dist/lib/create-project.spec.js.map +1 -0
- package/dist/lib/generate-secret.d.ts +2 -0
- package/dist/lib/generate-secret.d.ts.map +1 -0
- package/dist/lib/generate-secret.js +1 -1
- package/dist/lib/generate-secret.js.map +1 -0
- package/dist/lib/init-next.d.ts +29 -0
- package/dist/lib/init-next.d.ts.map +1 -0
- package/dist/lib/init-next.js +285 -0
- package/dist/lib/init-next.js.map +1 -0
- package/dist/lib/packages.d.ts +9 -0
- package/dist/lib/packages.d.ts.map +1 -0
- package/dist/lib/packages.js +8 -52
- package/dist/lib/packages.js.map +1 -0
- package/dist/lib/parse-project-name.d.ts +3 -0
- package/dist/lib/parse-project-name.d.ts.map +1 -0
- package/dist/lib/parse-project-name.js +53 -12
- package/dist/lib/parse-project-name.js.map +1 -0
- package/dist/lib/parse-template.d.ts +3 -0
- package/dist/lib/parse-template.d.ts.map +1 -0
- package/dist/lib/parse-template.js +50 -20
- package/dist/lib/parse-template.js.map +1 -0
- package/dist/lib/select-db.d.ts +3 -0
- package/dist/lib/select-db.d.ts.map +1 -0
- package/dist/lib/select-db.js +72 -31
- package/dist/lib/select-db.js.map +1 -0
- package/dist/lib/templates.d.ts +4 -0
- package/dist/lib/templates.d.ts.map +1 -0
- package/dist/lib/templates.js +17 -11
- package/dist/lib/templates.js.map +1 -0
- package/dist/lib/wrap-next-config.d.ts +12 -0
- package/dist/lib/wrap-next-config.d.ts.map +1 -0
- package/dist/lib/wrap-next-config.js +110 -0
- package/dist/lib/wrap-next-config.js.map +1 -0
- package/dist/lib/wrap-next-config.spec.d.ts +2 -0
- package/dist/lib/wrap-next-config.spec.d.ts.map +1 -0
- package/dist/lib/wrap-next-config.spec.js +98 -0
- package/dist/lib/wrap-next-config.spec.js.map +1 -0
- package/dist/lib/write-env-file.d.ts +10 -0
- package/dist/lib/write-env-file.d.ts.map +1 -0
- package/dist/lib/write-env-file.js +9 -6
- package/dist/lib/write-env-file.js.map +1 -0
- package/dist/main.d.ts +7 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +176 -60
- package/dist/main.js.map +1 -0
- package/dist/scripts/pack-template-files.d.ts +2 -0
- package/dist/scripts/pack-template-files.d.ts.map +1 -0
- package/dist/scripts/pack-template-files.js +43 -0
- package/dist/scripts/pack-template-files.js.map +1 -0
- package/dist/template/src/app/(payload)/admin/[[...segments]]/page.tsx +17 -0
- package/dist/template/src/app/(payload)/api/[...slug]/route.ts +9 -0
- package/dist/template/src/app/(payload)/api/graphql/route.ts +6 -0
- package/dist/template/src/app/(payload)/api/graphql-playground/route.ts +6 -0
- package/dist/template/src/app/(payload)/custom.scss +0 -0
- package/dist/template/src/app/(payload)/layout.tsx +16 -0
- package/dist/template/src/app/my-route/route.ts +14 -0
- package/dist/template/src/collections/Users.ts +13 -0
- package/dist/template/src/payload.config.ts +38 -0
- package/dist/types.d.ts +55 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -0
- package/dist/utils/copy-recursive-sync.d.ts +5 -0
- package/dist/utils/copy-recursive-sync.d.ts.map +1 -0
- package/dist/utils/copy-recursive-sync.js +34 -0
- package/dist/utils/copy-recursive-sync.js.map +1 -0
- package/dist/utils/log.d.ts +6 -0
- package/dist/utils/log.d.ts.map +1 -0
- package/dist/utils/log.js +62 -15
- package/dist/utils/log.js.map +1 -0
- package/dist/utils/messages.d.ts +11 -0
- package/dist/utils/messages.d.ts.map +1 -0
- package/dist/utils/messages.js +47 -16
- package/dist/utils/messages.js.map +1 -0
- package/package.json +27 -10
@@ -8,11 +8,47 @@ Object.defineProperty(exports, "parseTemplate", {
|
|
8
8
|
return parseTemplate;
|
9
9
|
}
|
10
10
|
});
|
11
|
-
const _prompts = /*#__PURE__*/
|
12
|
-
function
|
13
|
-
|
14
|
-
|
11
|
+
const _prompts = /*#__PURE__*/ _interop_require_wildcard(require("@clack/prompts"));
|
12
|
+
function _getRequireWildcardCache(nodeInterop) {
|
13
|
+
if (typeof WeakMap !== "function") return null;
|
14
|
+
var cacheBabelInterop = new WeakMap();
|
15
|
+
var cacheNodeInterop = new WeakMap();
|
16
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
17
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
18
|
+
})(nodeInterop);
|
19
|
+
}
|
20
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
21
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
22
|
+
return obj;
|
23
|
+
}
|
24
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
25
|
+
return {
|
26
|
+
default: obj
|
27
|
+
};
|
28
|
+
}
|
29
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
30
|
+
if (cache && cache.has(obj)) {
|
31
|
+
return cache.get(obj);
|
32
|
+
}
|
33
|
+
var newObj = {
|
34
|
+
__proto__: null
|
15
35
|
};
|
36
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
37
|
+
for(var key in obj){
|
38
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
39
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
40
|
+
if (desc && (desc.get || desc.set)) {
|
41
|
+
Object.defineProperty(newObj, key, desc);
|
42
|
+
} else {
|
43
|
+
newObj[key] = obj[key];
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
newObj.default = obj;
|
48
|
+
if (cache) {
|
49
|
+
cache.set(obj, newObj);
|
50
|
+
}
|
51
|
+
return newObj;
|
16
52
|
}
|
17
53
|
async function parseTemplate(args, validTemplates) {
|
18
54
|
if (args['--template']) {
|
@@ -21,26 +57,20 @@ async function parseTemplate(args, validTemplates) {
|
|
21
57
|
if (!template) throw new Error('Invalid template given');
|
22
58
|
return template;
|
23
59
|
}
|
24
|
-
const response = await
|
25
|
-
|
26
|
-
|
60
|
+
const response = await _prompts.select({
|
61
|
+
message: 'Choose project template',
|
62
|
+
options: validTemplates.map((p)=>{
|
27
63
|
return {
|
28
|
-
|
29
|
-
title: p.name,
|
64
|
+
label: p.name,
|
30
65
|
value: p.name
|
31
66
|
};
|
32
|
-
})
|
33
|
-
message: 'Choose project template',
|
34
|
-
type: 'select',
|
35
|
-
validate: (value)=>!!value.length
|
36
|
-
}, {
|
37
|
-
onCancel: ()=>{
|
38
|
-
process.exit(0);
|
39
|
-
}
|
67
|
+
})
|
40
68
|
});
|
41
|
-
|
42
|
-
|
69
|
+
if (_prompts.isCancel(response)) {
|
70
|
+
process.exit(0);
|
71
|
+
}
|
72
|
+
const template = validTemplates.find((t)=>t.name === response);
|
43
73
|
return template;
|
44
74
|
}
|
45
75
|
|
46
|
-
//# sourceMappingURL=
|
76
|
+
//# sourceMappingURL=parse-template.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/lib/parse-template.ts"],"sourcesContent":["import * as p from '@clack/prompts'\n\nimport type { CliArgs, ProjectTemplate } from '../types.js'\n\nexport async function parseTemplate(\n args: CliArgs,\n validTemplates: ProjectTemplate[],\n): Promise<ProjectTemplate | undefined> {\n if (args['--template']) {\n const templateName = args['--template']\n const template = validTemplates.find((t) => t.name === templateName)\n if (!template) throw new Error('Invalid template given')\n return template\n }\n\n const response = await p.select<{ label: string; value: string }[], string>({\n message: 'Choose project template',\n options: validTemplates.map((p) => {\n return {\n label: p.name,\n value: p.name,\n }\n }),\n })\n if (p.isCancel(response)) {\n process.exit(0)\n }\n\n const template = validTemplates.find((t) => t.name === response)\n\n return template\n}\n"],"names":["parseTemplate","args","validTemplates","templateName","template","find","t","name","Error","response","p","select","message","options","map","label","value","isCancel","process","exit"],"mappings":";;;;+BAIsBA;;;eAAAA;;;iEAJH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIZ,eAAeA,cACpBC,IAAa,EACbC,cAAiC;IAEjC,IAAID,IAAI,CAAC,aAAa,EAAE;QACtB,MAAME,eAAeF,IAAI,CAAC,aAAa;QACvC,MAAMG,WAAWF,eAAeG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKJ;QACvD,IAAI,CAACC,UAAU,MAAM,IAAII,MAAM;QAC/B,OAAOJ;IACT;IAEA,MAAMK,WAAW,MAAMC,SAAEC,MAAM,CAA6C;QAC1EC,SAAS;QACTC,SAASX,eAAeY,GAAG,CAAC,CAACJ;YAC3B,OAAO;gBACLK,OAAOL,EAAEH,IAAI;gBACbS,OAAON,EAAEH,IAAI;YACf;QACF;IACF;IACA,IAAIG,SAAEO,QAAQ,CAACR,WAAW;QACxBS,QAAQC,IAAI,CAAC;IACf;IAEA,MAAMf,WAAWF,eAAeG,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKE;IAEvD,OAAOL;AACT"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"select-db.d.ts","sourceRoot":"","sources":["../../src/lib/select-db.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAU,MAAM,aAAa,CAAA;AAqB7D,wBAAsB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA8CrF"}
|
package/dist/lib/select-db.js
CHANGED
@@ -8,13 +8,54 @@ Object.defineProperty(exports, "selectDb", {
|
|
8
8
|
return selectDb;
|
9
9
|
}
|
10
10
|
});
|
11
|
+
const _prompts = /*#__PURE__*/ _interop_require_wildcard(require("@clack/prompts"));
|
11
12
|
const _slugify = /*#__PURE__*/ _interop_require_default(require("@sindresorhus/slugify"));
|
12
|
-
const _prompts = /*#__PURE__*/ _interop_require_default(require("prompts"));
|
13
13
|
function _interop_require_default(obj) {
|
14
14
|
return obj && obj.__esModule ? obj : {
|
15
15
|
default: obj
|
16
16
|
};
|
17
17
|
}
|
18
|
+
function _getRequireWildcardCache(nodeInterop) {
|
19
|
+
if (typeof WeakMap !== "function") return null;
|
20
|
+
var cacheBabelInterop = new WeakMap();
|
21
|
+
var cacheNodeInterop = new WeakMap();
|
22
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
23
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
24
|
+
})(nodeInterop);
|
25
|
+
}
|
26
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
27
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
28
|
+
return obj;
|
29
|
+
}
|
30
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
31
|
+
return {
|
32
|
+
default: obj
|
33
|
+
};
|
34
|
+
}
|
35
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
36
|
+
if (cache && cache.has(obj)) {
|
37
|
+
return cache.get(obj);
|
38
|
+
}
|
39
|
+
var newObj = {
|
40
|
+
__proto__: null
|
41
|
+
};
|
42
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
43
|
+
for(var key in obj){
|
44
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
45
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
46
|
+
if (desc && (desc.get || desc.set)) {
|
47
|
+
Object.defineProperty(newObj, key, desc);
|
48
|
+
} else {
|
49
|
+
newObj[key] = obj[key];
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
newObj.default = obj;
|
54
|
+
if (cache) {
|
55
|
+
cache.set(obj, newObj);
|
56
|
+
}
|
57
|
+
return newObj;
|
58
|
+
}
|
18
59
|
const dbChoiceRecord = {
|
19
60
|
mongodb: {
|
20
61
|
dbConnectionPrefix: 'mongodb://127.0.0.1/',
|
@@ -35,43 +76,43 @@ async function selectDb(args, projectName) {
|
|
35
76
|
}
|
36
77
|
dbType = args['--db'];
|
37
78
|
} else {
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
process.exit(0);
|
52
|
-
}
|
79
|
+
dbType = await _prompts.select({
|
80
|
+
initialValue: 'mongodb',
|
81
|
+
message: `Select a database`,
|
82
|
+
options: [
|
83
|
+
{
|
84
|
+
label: 'MongoDB',
|
85
|
+
value: 'mongodb'
|
86
|
+
},
|
87
|
+
{
|
88
|
+
label: 'Postgres',
|
89
|
+
value: 'postgres'
|
90
|
+
}
|
91
|
+
]
|
53
92
|
});
|
54
|
-
dbType
|
93
|
+
if (_prompts.isCancel(dbType)) process.exit(0);
|
55
94
|
}
|
56
95
|
const dbChoice = dbChoiceRecord[dbType];
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
}
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
96
|
+
let dbUri = undefined;
|
97
|
+
const initialDbUri = `${dbChoice.dbConnectionPrefix}${projectName === '.' ? `payload-${getRandomDigitSuffix()}` : (0, _slugify.default)(projectName)}`;
|
98
|
+
if (args['--db-accept-recommended']) {
|
99
|
+
dbUri = initialDbUri;
|
100
|
+
} else if (args['--db-connection-string']) {
|
101
|
+
dbUri = args['--db-connection-string'];
|
102
|
+
} else {
|
103
|
+
dbUri = await _prompts.text({
|
104
|
+
initialValue: initialDbUri,
|
105
|
+
message: `Enter ${dbChoice.title.split(' ')[0]} connection string`
|
106
|
+
});
|
107
|
+
if (_prompts.isCancel(dbUri)) process.exit(0);
|
108
|
+
}
|
68
109
|
return {
|
69
|
-
|
70
|
-
|
110
|
+
type: dbChoice.value,
|
111
|
+
dbUri
|
71
112
|
};
|
72
113
|
}
|
73
114
|
function getRandomDigitSuffix() {
|
74
115
|
return (Math.random() * Math.pow(10, 6)).toFixed(0);
|
75
116
|
}
|
76
117
|
|
77
|
-
//# sourceMappingURL=
|
118
|
+
//# sourceMappingURL=select-db.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/lib/select-db.ts"],"sourcesContent":["import * as p from '@clack/prompts'\nimport slugify from '@sindresorhus/slugify'\n\nimport type { CliArgs, DbDetails, DbType } from '../types.js'\n\ntype DbChoice = {\n dbConnectionPrefix: `${string}/`\n title: string\n value: DbType\n}\n\nconst dbChoiceRecord: Record<DbType, DbChoice> = {\n mongodb: {\n dbConnectionPrefix: 'mongodb://127.0.0.1/',\n title: 'MongoDB',\n value: 'mongodb',\n },\n postgres: {\n dbConnectionPrefix: 'postgres://127.0.0.1:5432/',\n title: 'PostgreSQL (beta)',\n value: 'postgres',\n },\n}\n\nexport async function selectDb(args: CliArgs, projectName: string): Promise<DbDetails> {\n let dbType: DbType | symbol | undefined = undefined\n if (args['--db']) {\n if (!Object.values(dbChoiceRecord).some((dbChoice) => dbChoice.value === args['--db'])) {\n throw new Error(\n `Invalid database type given. Valid types are: ${Object.values(dbChoiceRecord)\n .map((dbChoice) => dbChoice.value)\n .join(', ')}`,\n )\n }\n dbType = args['--db'] as DbType\n } else {\n dbType = await p.select<{ label: string; value: DbType }[], DbType>({\n initialValue: 'mongodb',\n message: `Select a database`,\n options: [\n { label: 'MongoDB', value: 'mongodb' },\n { label: 'Postgres', value: 'postgres' },\n ],\n })\n if (p.isCancel(dbType)) process.exit(0)\n }\n\n const dbChoice = dbChoiceRecord[dbType]\n\n let dbUri: string | symbol | undefined = undefined\n const initialDbUri = `${dbChoice.dbConnectionPrefix}${\n projectName === '.' ? `payload-${getRandomDigitSuffix()}` : slugify(projectName)\n }`\n\n if (args['--db-accept-recommended']) {\n dbUri = initialDbUri\n } else if (args['--db-connection-string']) {\n dbUri = args['--db-connection-string']\n } else {\n dbUri = await p.text({\n initialValue: initialDbUri,\n message: `Enter ${dbChoice.title.split(' ')[0]} connection string`, // strip beta from title\n })\n if (p.isCancel(dbUri)) process.exit(0)\n }\n\n return {\n type: dbChoice.value,\n dbUri,\n }\n}\n\nfunction getRandomDigitSuffix(): string {\n return (Math.random() * Math.pow(10, 6)).toFixed(0)\n}\n"],"names":["selectDb","dbChoiceRecord","mongodb","dbConnectionPrefix","title","value","postgres","args","projectName","dbType","undefined","Object","values","some","dbChoice","Error","map","join","p","select","initialValue","message","options","label","isCancel","process","exit","dbUri","initialDbUri","getRandomDigitSuffix","slugify","text","split","type","Math","random","pow","toFixed"],"mappings":";;;;+BAwBsBA;;;eAAAA;;;iEAxBH;gEACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUpB,MAAMC,iBAA2C;IAC/CC,SAAS;QACPC,oBAAoB;QACpBC,OAAO;QACPC,OAAO;IACT;IACAC,UAAU;QACRH,oBAAoB;QACpBC,OAAO;QACPC,OAAO;IACT;AACF;AAEO,eAAeL,SAASO,IAAa,EAAEC,WAAmB;IAC/D,IAAIC,SAAsCC;IAC1C,IAAIH,IAAI,CAAC,OAAO,EAAE;QAChB,IAAI,CAACI,OAAOC,MAAM,CAACX,gBAAgBY,IAAI,CAAC,CAACC,WAAaA,SAAST,KAAK,KAAKE,IAAI,CAAC,OAAO,GAAG;YACtF,MAAM,IAAIQ,MACR,CAAC,8CAA8C,EAAEJ,OAAOC,MAAM,CAACX,gBAC5De,GAAG,CAAC,CAACF,WAAaA,SAAST,KAAK,EAChCY,IAAI,CAAC,MAAM,CAAC;QAEnB;QACAR,SAASF,IAAI,CAAC,OAAO;IACvB,OAAO;QACLE,SAAS,MAAMS,SAAEC,MAAM,CAA6C;YAClEC,cAAc;YACdC,SAAS,CAAC,iBAAiB,CAAC;YAC5BC,SAAS;gBACP;oBAAEC,OAAO;oBAAWlB,OAAO;gBAAU;gBACrC;oBAAEkB,OAAO;oBAAYlB,OAAO;gBAAW;aACxC;QACH;QACA,IAAIa,SAAEM,QAAQ,CAACf,SAASgB,QAAQC,IAAI,CAAC;IACvC;IAEA,MAAMZ,WAAWb,cAAc,CAACQ,OAAO;IAEvC,IAAIkB,QAAqCjB;IACzC,MAAMkB,eAAe,CAAC,EAAEd,SAASX,kBAAkB,CAAC,EAClDK,gBAAgB,MAAM,CAAC,QAAQ,EAAEqB,uBAAuB,CAAC,GAAGC,IAAAA,gBAAO,EAACtB,aACrE,CAAC;IAEF,IAAID,IAAI,CAAC,0BAA0B,EAAE;QACnCoB,QAAQC;IACV,OAAO,IAAIrB,IAAI,CAAC,yBAAyB,EAAE;QACzCoB,QAAQpB,IAAI,CAAC,yBAAyB;IACxC,OAAO;QACLoB,QAAQ,MAAMT,SAAEa,IAAI,CAAC;YACnBX,cAAcQ;YACdP,SAAS,CAAC,MAAM,EAAEP,SAASV,KAAK,CAAC4B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC;QACpE;QACA,IAAId,SAAEM,QAAQ,CAACG,QAAQF,QAAQC,IAAI,CAAC;IACtC;IAEA,OAAO;QACLO,MAAMnB,SAAST,KAAK;QACpBsB;IACF;AACF;AAEA,SAASE;IACP,OAAO,AAACK,CAAAA,KAAKC,MAAM,KAAKD,KAAKE,GAAG,CAAC,IAAI,EAAC,EAAGC,OAAO,CAAC;AACnD"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAIlD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAQ9D;AAED,wBAAgB,iBAAiB,IAAI,eAAe,EAAE,CA6CrD"}
|
package/dist/lib/templates.js
CHANGED
@@ -9,14 +9,14 @@ function _export(target, all) {
|
|
9
9
|
});
|
10
10
|
}
|
11
11
|
_export(exports, {
|
12
|
-
validateTemplate: function() {
|
13
|
-
return validateTemplate;
|
14
|
-
},
|
15
12
|
getValidTemplates: function() {
|
16
13
|
return getValidTemplates;
|
14
|
+
},
|
15
|
+
validateTemplate: function() {
|
16
|
+
return validateTemplate;
|
17
17
|
}
|
18
18
|
});
|
19
|
-
const _log = require("../utils/log");
|
19
|
+
const _log = require("../utils/log.js");
|
20
20
|
function validateTemplate(templateName) {
|
21
21
|
const validTemplates = getValidTemplates();
|
22
22
|
if (!validTemplates.map((t)=>t.name).includes(templateName)) {
|
@@ -28,43 +28,49 @@ function validateTemplate(templateName) {
|
|
28
28
|
}
|
29
29
|
function getValidTemplates() {
|
30
30
|
return [
|
31
|
+
{
|
32
|
+
name: 'blank-3.0',
|
33
|
+
type: 'starter',
|
34
|
+
description: 'Blank 3.0 Template',
|
35
|
+
url: 'https://github.com/payloadcms/payload/templates/blank-3.0'
|
36
|
+
},
|
31
37
|
{
|
32
38
|
name: 'blank',
|
33
|
-
description: 'Blank Template',
|
34
39
|
type: 'starter',
|
40
|
+
description: 'Blank Template',
|
35
41
|
url: 'https://github.com/payloadcms/payload/templates/blank'
|
36
42
|
},
|
37
43
|
{
|
38
44
|
name: 'website',
|
39
|
-
description: 'Website Template',
|
40
45
|
type: 'starter',
|
46
|
+
description: 'Website Template',
|
41
47
|
url: 'https://github.com/payloadcms/payload/templates/website'
|
42
48
|
},
|
43
49
|
{
|
44
50
|
name: 'ecommerce',
|
45
|
-
description: 'E-commerce Template',
|
46
51
|
type: 'starter',
|
52
|
+
description: 'E-commerce Template',
|
47
53
|
url: 'https://github.com/payloadcms/payload/templates/ecommerce'
|
48
54
|
},
|
49
55
|
{
|
50
56
|
name: 'plugin',
|
51
|
-
description: 'Template for creating a Payload plugin',
|
52
57
|
type: 'plugin',
|
58
|
+
description: 'Template for creating a Payload plugin',
|
53
59
|
url: 'https://github.com/payloadcms/payload-plugin-template'
|
54
60
|
},
|
55
61
|
{
|
56
62
|
name: 'payload-demo',
|
57
|
-
description: 'Payload demo site at https://demo.payloadcms.com',
|
58
63
|
type: 'starter',
|
64
|
+
description: 'Payload demo site at https://demo.payloadcms.com',
|
59
65
|
url: 'https://github.com/payloadcms/public-demo'
|
60
66
|
},
|
61
67
|
{
|
62
68
|
name: 'payload-website',
|
63
|
-
description: 'Payload website CMS at https://payloadcms.com',
|
64
69
|
type: 'starter',
|
70
|
+
description: 'Payload website CMS at https://payloadcms.com',
|
65
71
|
url: 'https://github.com/payloadcms/website-cms'
|
66
72
|
}
|
67
73
|
];
|
68
74
|
}
|
69
75
|
|
70
|
-
//# sourceMappingURL=
|
76
|
+
//# sourceMappingURL=templates.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/lib/templates.ts"],"sourcesContent":["import type { ProjectTemplate } from '../types.js'\n\nimport { error, info } from '../utils/log.js'\n\nexport function validateTemplate(templateName: string): boolean {\n const validTemplates = getValidTemplates()\n if (!validTemplates.map((t) => t.name).includes(templateName)) {\n error(`'${templateName}' is not a valid template.`)\n info(`Valid templates: ${validTemplates.map((t) => t.name).join(', ')}`)\n return false\n }\n return true\n}\n\nexport function getValidTemplates(): ProjectTemplate[] {\n return [\n {\n name: 'blank-3.0',\n type: 'starter',\n description: 'Blank 3.0 Template',\n url: 'https://github.com/payloadcms/payload/templates/blank-3.0',\n },\n {\n name: 'blank',\n type: 'starter',\n description: 'Blank Template',\n url: 'https://github.com/payloadcms/payload/templates/blank',\n },\n {\n name: 'website',\n type: 'starter',\n description: 'Website Template',\n url: 'https://github.com/payloadcms/payload/templates/website',\n },\n {\n name: 'ecommerce',\n type: 'starter',\n description: 'E-commerce Template',\n url: 'https://github.com/payloadcms/payload/templates/ecommerce',\n },\n {\n name: 'plugin',\n type: 'plugin',\n description: 'Template for creating a Payload plugin',\n url: 'https://github.com/payloadcms/payload-plugin-template',\n },\n {\n name: 'payload-demo',\n type: 'starter',\n description: 'Payload demo site at https://demo.payloadcms.com',\n url: 'https://github.com/payloadcms/public-demo',\n },\n {\n name: 'payload-website',\n type: 'starter',\n description: 'Payload website CMS at https://payloadcms.com',\n url: 'https://github.com/payloadcms/website-cms',\n },\n ]\n}\n"],"names":["getValidTemplates","validateTemplate","templateName","validTemplates","map","t","name","includes","error","info","join","type","description","url"],"mappings":";;;;;;;;;;;IAcgBA,iBAAiB;eAAjBA;;IAVAC,gBAAgB;eAAhBA;;;qBAFY;AAErB,SAASA,iBAAiBC,YAAoB;IACnD,MAAMC,iBAAiBH;IACvB,IAAI,CAACG,eAAeC,GAAG,CAAC,CAACC,IAAMA,EAAEC,IAAI,EAAEC,QAAQ,CAACL,eAAe;QAC7DM,IAAAA,UAAK,EAAC,CAAC,CAAC,EAAEN,aAAa,0BAA0B,CAAC;QAClDO,IAAAA,SAAI,EAAC,CAAC,iBAAiB,EAAEN,eAAeC,GAAG,CAAC,CAACC,IAAMA,EAAEC,IAAI,EAAEI,IAAI,CAAC,MAAM,CAAC;QACvE,OAAO;IACT;IACA,OAAO;AACT;AAEO,SAASV;IACd,OAAO;QACL;YACEM,MAAM;YACNK,MAAM;YACNC,aAAa;YACbC,KAAK;QACP;QACA;YACEP,MAAM;YACNK,MAAM;YACNC,aAAa;YACbC,KAAK;QACP;QACA;YACEP,MAAM;YACNK,MAAM;YACNC,aAAa;YACbC,KAAK;QACP;QACA;YACEP,MAAM;YACNK,MAAM;YACNC,aAAa;YACbC,KAAK;QACP;QACA;YACEP,MAAM;YACNK,MAAM;YACNC,aAAa;YACbC,KAAK;QACP;QACA;YACEP,MAAM;YACNK,MAAM;YACNC,aAAa;YACbC,KAAK;QACP;QACA;YACEP,MAAM;YACNK,MAAM;YACNC,aAAa;YACbC,KAAK;QACP;KACD;AACH"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
export declare const withPayloadImportStatement = "import { withPayload } from '@payloadcms/next'\n";
|
2
|
+
export declare const wrapNextConfig: (args: {
|
3
|
+
nextConfigPath: string;
|
4
|
+
}) => void;
|
5
|
+
/**
|
6
|
+
* Parses config content with AST and wraps it with withPayload function
|
7
|
+
*/
|
8
|
+
export declare function parseAndModifyConfigContent(content: string): {
|
9
|
+
modifiedConfigContent: string;
|
10
|
+
success: boolean;
|
11
|
+
};
|
12
|
+
//# sourceMappingURL=wrap-next-config.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"wrap-next-config.d.ts","sourceRoot":"","sources":["../../src/lib/wrap-next-config.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,0BAA0B,qDAAqD,CAAA;AAE5F,eAAO,MAAM,cAAc,SAAU;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,SAU9D,CAAA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG;IAC5D,qBAAqB,EAAE,MAAM,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAA;CACjB,CAgDA"}
|
@@ -0,0 +1,110 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
function _export(target, all) {
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
7
|
+
enumerable: true,
|
8
|
+
get: all[name]
|
9
|
+
});
|
10
|
+
}
|
11
|
+
_export(exports, {
|
12
|
+
parseAndModifyConfigContent: function() {
|
13
|
+
return parseAndModifyConfigContent;
|
14
|
+
},
|
15
|
+
withPayloadImportStatement: function() {
|
16
|
+
return withPayloadImportStatement;
|
17
|
+
},
|
18
|
+
wrapNextConfig: function() {
|
19
|
+
return wrapNextConfig;
|
20
|
+
}
|
21
|
+
});
|
22
|
+
const _chalk = /*#__PURE__*/ _interop_require_default(require("chalk"));
|
23
|
+
const _esprima = require("esprima");
|
24
|
+
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
25
|
+
const _log = require("../utils/log.js");
|
26
|
+
function _interop_require_default(obj) {
|
27
|
+
return obj && obj.__esModule ? obj : {
|
28
|
+
default: obj
|
29
|
+
};
|
30
|
+
}
|
31
|
+
const withPayloadImportStatement = `import { withPayload } from '@payloadcms/next'\n`;
|
32
|
+
const wrapNextConfig = (args)=>{
|
33
|
+
const { nextConfigPath } = args;
|
34
|
+
const configContent = _fs.default.readFileSync(nextConfigPath, 'utf8');
|
35
|
+
const { modifiedConfigContent: newConfig, success } = parseAndModifyConfigContent(configContent);
|
36
|
+
if (!success) {
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
_fs.default.writeFileSync(nextConfigPath, newConfig);
|
40
|
+
};
|
41
|
+
function parseAndModifyConfigContent(content) {
|
42
|
+
content = withPayloadImportStatement + content;
|
43
|
+
const ast = (0, _esprima.parseModule)(content, {
|
44
|
+
loc: true
|
45
|
+
});
|
46
|
+
const exportDefaultDeclaration = ast.body.find((p)=>p.type === 'ExportDefaultDeclaration');
|
47
|
+
const exportNamedDeclaration = ast.body.find((p)=>p.type === 'ExportNamedDeclaration');
|
48
|
+
if (!exportDefaultDeclaration && !exportNamedDeclaration) {
|
49
|
+
throw new Error('Could not find ExportDefaultDeclaration in next.config.js');
|
50
|
+
}
|
51
|
+
if (exportDefaultDeclaration && exportDefaultDeclaration.declaration?.loc) {
|
52
|
+
const modifiedConfigContent = insertBeforeAndAfter(content, exportDefaultDeclaration.declaration.loc);
|
53
|
+
return {
|
54
|
+
modifiedConfigContent,
|
55
|
+
success: true
|
56
|
+
};
|
57
|
+
} else if (exportNamedDeclaration) {
|
58
|
+
const exportSpecifier = exportNamedDeclaration.specifiers.find((s)=>s.type === 'ExportSpecifier' && s.exported?.name === 'default' && s.local?.type === 'Identifier' && s.local?.name);
|
59
|
+
if (exportSpecifier) {
|
60
|
+
(0, _log.warning)('Could not automatically wrap next.config.js with withPayload.');
|
61
|
+
(0, _log.warning)('Automatic wrapping of named exports as default not supported yet.');
|
62
|
+
warnUserWrapNotSuccessful();
|
63
|
+
return {
|
64
|
+
modifiedConfigContent: content,
|
65
|
+
success: false
|
66
|
+
};
|
67
|
+
}
|
68
|
+
}
|
69
|
+
(0, _log.warning)('Could not automatically wrap next.config.js with withPayload.');
|
70
|
+
warnUserWrapNotSuccessful();
|
71
|
+
return {
|
72
|
+
modifiedConfigContent: content,
|
73
|
+
success: false
|
74
|
+
};
|
75
|
+
}
|
76
|
+
function warnUserWrapNotSuccessful() {
|
77
|
+
// Output directions for user to update next.config.js
|
78
|
+
const withPayloadMessage = `
|
79
|
+
|
80
|
+
${_chalk.default.bold(`Please manually wrap your existing next.config.js with the withPayload function. Here is an example:`)}
|
81
|
+
|
82
|
+
import withPayload from '@payloadcms/next/withPayload'
|
83
|
+
|
84
|
+
const nextConfig = {
|
85
|
+
// Your Next.js config here
|
86
|
+
}
|
87
|
+
|
88
|
+
export default withPayload(nextConfig)
|
89
|
+
|
90
|
+
`;
|
91
|
+
(0, _log.log)(withPayloadMessage);
|
92
|
+
}
|
93
|
+
function insertBeforeAndAfter(content, loc) {
|
94
|
+
const { end, start } = loc;
|
95
|
+
const lines = content.split('\n');
|
96
|
+
const insert = (line, column, text)=>{
|
97
|
+
return line.slice(0, column) + text + line.slice(column);
|
98
|
+
};
|
99
|
+
// insert ) after end
|
100
|
+
lines[end.line - 1] = insert(lines[end.line - 1], end.column, ')');
|
101
|
+
// insert withPayload before start
|
102
|
+
if (start.line === end.line) {
|
103
|
+
lines[end.line - 1] = insert(lines[end.line - 1], start.column, 'withPayload(');
|
104
|
+
} else {
|
105
|
+
lines[start.line - 1] = insert(lines[start.line - 1], start.column, 'withPayload(');
|
106
|
+
}
|
107
|
+
return lines.join('\n');
|
108
|
+
}
|
109
|
+
|
110
|
+
//# sourceMappingURL=wrap-next-config.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/lib/wrap-next-config.ts"],"sourcesContent":["import chalk from 'chalk'\nimport { parseModule } from 'esprima'\nimport fs from 'fs'\n\nimport { warning } from '../utils/log.js'\nimport { log } from '../utils/log.js'\n\nexport const withPayloadImportStatement = `import { withPayload } from '@payloadcms/next'\\n`\n\nexport const wrapNextConfig = (args: { nextConfigPath: string }) => {\n const { nextConfigPath } = args\n const configContent = fs.readFileSync(nextConfigPath, 'utf8')\n const { modifiedConfigContent: newConfig, success } = parseAndModifyConfigContent(configContent)\n\n if (!success) {\n return\n }\n\n fs.writeFileSync(nextConfigPath, newConfig)\n}\n\n/**\n * Parses config content with AST and wraps it with withPayload function\n */\nexport function parseAndModifyConfigContent(content: string): {\n modifiedConfigContent: string\n success: boolean\n} {\n content = withPayloadImportStatement + content\n const ast = parseModule(content, { loc: true })\n const exportDefaultDeclaration = ast.body.find((p) => p.type === 'ExportDefaultDeclaration') as\n | Directive\n | undefined\n\n const exportNamedDeclaration = ast.body.find((p) => p.type === 'ExportNamedDeclaration') as\n | ExportNamedDeclaration\n | undefined\n\n if (!exportDefaultDeclaration && !exportNamedDeclaration) {\n throw new Error('Could not find ExportDefaultDeclaration in next.config.js')\n }\n\n if (exportDefaultDeclaration && exportDefaultDeclaration.declaration?.loc) {\n const modifiedConfigContent = insertBeforeAndAfter(\n content,\n exportDefaultDeclaration.declaration.loc,\n )\n return { modifiedConfigContent, success: true }\n } else if (exportNamedDeclaration) {\n const exportSpecifier = exportNamedDeclaration.specifiers.find(\n (s) =>\n s.type === 'ExportSpecifier' &&\n s.exported?.name === 'default' &&\n s.local?.type === 'Identifier' &&\n s.local?.name,\n )\n\n if (exportSpecifier) {\n warning('Could not automatically wrap next.config.js with withPayload.')\n warning('Automatic wrapping of named exports as default not supported yet.')\n\n warnUserWrapNotSuccessful()\n return {\n modifiedConfigContent: content,\n success: false,\n }\n }\n }\n\n warning('Could not automatically wrap next.config.js with withPayload.')\n warnUserWrapNotSuccessful()\n return {\n modifiedConfigContent: content,\n success: false,\n }\n}\n\nfunction warnUserWrapNotSuccessful() {\n // Output directions for user to update next.config.js\n const withPayloadMessage = `\n\n ${chalk.bold(`Please manually wrap your existing next.config.js with the withPayload function. Here is an example:`)}\n\n import withPayload from '@payloadcms/next/withPayload'\n\n const nextConfig = {\n // Your Next.js config here\n }\n\n export default withPayload(nextConfig)\n\n`\n\n log(withPayloadMessage)\n}\n\ntype Directive = {\n declaration?: {\n loc: Loc\n }\n}\n\ntype ExportNamedDeclaration = {\n declaration: null\n loc: Loc\n specifiers: {\n exported: {\n loc: Loc\n name: string\n type: string\n }\n loc: Loc\n local: {\n loc: Loc\n name: string\n type: string\n }\n type: string\n }[]\n type: string\n}\n\ntype Loc = {\n end: { column: number; line: number }\n start: { column: number; line: number }\n}\n\nfunction insertBeforeAndAfter(content: string, loc: Loc) {\n const { end, start } = loc\n const lines = content.split('\\n')\n\n const insert = (line: string, column: number, text: string) => {\n return line.slice(0, column) + text + line.slice(column)\n }\n\n // insert ) after end\n lines[end.line - 1] = insert(lines[end.line - 1], end.column, ')')\n // insert withPayload before start\n if (start.line === end.line) {\n lines[end.line - 1] = insert(lines[end.line - 1], start.column, 'withPayload(')\n } else {\n lines[start.line - 1] = insert(lines[start.line - 1], start.column, 'withPayload(')\n }\n\n return lines.join('\\n')\n}\n"],"names":["parseAndModifyConfigContent","withPayloadImportStatement","wrapNextConfig","args","nextConfigPath","configContent","fs","readFileSync","modifiedConfigContent","newConfig","success","writeFileSync","content","ast","parseModule","loc","exportDefaultDeclaration","body","find","p","type","exportNamedDeclaration","Error","declaration","insertBeforeAndAfter","exportSpecifier","specifiers","s","exported","name","local","warning","warnUserWrapNotSuccessful","withPayloadMessage","chalk","bold","log","end","start","lines","split","insert","line","column","text","slice","join"],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"wrap-next-config.spec.d.ts","sourceRoot":"","sources":["../../src/lib/wrap-next-config.spec.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,98 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
const _wrapnextconfig = require("./wrap-next-config.js");
|
6
|
+
const _prompts = /*#__PURE__*/ _interop_require_wildcard(require("@clack/prompts"));
|
7
|
+
function _getRequireWildcardCache(nodeInterop) {
|
8
|
+
if (typeof WeakMap !== "function") return null;
|
9
|
+
var cacheBabelInterop = new WeakMap();
|
10
|
+
var cacheNodeInterop = new WeakMap();
|
11
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
12
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
13
|
+
})(nodeInterop);
|
14
|
+
}
|
15
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
16
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
17
|
+
return obj;
|
18
|
+
}
|
19
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
20
|
+
return {
|
21
|
+
default: obj
|
22
|
+
};
|
23
|
+
}
|
24
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
25
|
+
if (cache && cache.has(obj)) {
|
26
|
+
return cache.get(obj);
|
27
|
+
}
|
28
|
+
var newObj = {
|
29
|
+
__proto__: null
|
30
|
+
};
|
31
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
32
|
+
for(var key in obj){
|
33
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
34
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
35
|
+
if (desc && (desc.get || desc.set)) {
|
36
|
+
Object.defineProperty(newObj, key, desc);
|
37
|
+
} else {
|
38
|
+
newObj[key] = obj[key];
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
newObj.default = obj;
|
43
|
+
if (cache) {
|
44
|
+
cache.set(obj, newObj);
|
45
|
+
}
|
46
|
+
return newObj;
|
47
|
+
}
|
48
|
+
const defaultNextConfig = `/** @type {import('next').NextConfig} */
|
49
|
+
const nextConfig = {};
|
50
|
+
|
51
|
+
export default nextConfig;
|
52
|
+
`;
|
53
|
+
const nextConfigWithFunc = `const nextConfig = {
|
54
|
+
// Your Next.js config here
|
55
|
+
}
|
56
|
+
|
57
|
+
export default someFunc(nextConfig)
|
58
|
+
`;
|
59
|
+
const nextConfigWithFuncMultiline = `const nextConfig = {
|
60
|
+
// Your Next.js config here
|
61
|
+
}
|
62
|
+
|
63
|
+
export default someFunc(
|
64
|
+
nextConfig
|
65
|
+
)
|
66
|
+
`;
|
67
|
+
const nextConfigExportNamedDefault = `const nextConfig = {
|
68
|
+
// Your Next.js config here
|
69
|
+
}
|
70
|
+
const wrapped = someFunc(asdf)
|
71
|
+
export { wrapped as default }
|
72
|
+
`;
|
73
|
+
describe('parseAndInsertWithPayload', ()=>{
|
74
|
+
it('should parse the default next config', ()=>{
|
75
|
+
const { modifiedConfigContent } = (0, _wrapnextconfig.parseAndModifyConfigContent)(defaultNextConfig);
|
76
|
+
expect(modifiedConfigContent).toContain(_wrapnextconfig.withPayloadImportStatement);
|
77
|
+
expect(modifiedConfigContent).toContain('withPayload(nextConfig)');
|
78
|
+
});
|
79
|
+
it('should parse the config with a function', ()=>{
|
80
|
+
const { modifiedConfigContent } = (0, _wrapnextconfig.parseAndModifyConfigContent)(nextConfigWithFunc);
|
81
|
+
expect(modifiedConfigContent).toContain('withPayload(someFunc(nextConfig))');
|
82
|
+
});
|
83
|
+
it('should parse the config with a function on a new line', ()=>{
|
84
|
+
const { modifiedConfigContent } = (0, _wrapnextconfig.parseAndModifyConfigContent)(nextConfigWithFuncMultiline);
|
85
|
+
expect(modifiedConfigContent).toContain(_wrapnextconfig.withPayloadImportStatement);
|
86
|
+
expect(modifiedConfigContent).toMatch(/withPayload\(someFunc\(\n nextConfig\n\)\)/);
|
87
|
+
});
|
88
|
+
// Unsupported: export { wrapped as default }
|
89
|
+
it('should give warning with a named export as default', ()=>{
|
90
|
+
const warnLogSpy = jest.spyOn(_prompts.log, 'warn').mockImplementation(()=>{});
|
91
|
+
const { modifiedConfigContent, success } = (0, _wrapnextconfig.parseAndModifyConfigContent)(nextConfigExportNamedDefault);
|
92
|
+
expect(modifiedConfigContent).toContain(_wrapnextconfig.withPayloadImportStatement);
|
93
|
+
expect(success).toBe(false);
|
94
|
+
expect(warnLogSpy).toHaveBeenCalledWith(expect.stringContaining('Could not automatically wrap'));
|
95
|
+
});
|
96
|
+
});
|
97
|
+
|
98
|
+
//# sourceMappingURL=wrap-next-config.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/lib/wrap-next-config.spec.ts"],"sourcesContent":["import { parseAndModifyConfigContent, withPayloadImportStatement } from './wrap-next-config.js'\nimport * as p from '@clack/prompts'\n\nconst defaultNextConfig = `/** @type {import('next').NextConfig} */\nconst nextConfig = {};\n\nexport default nextConfig;\n`\n\nconst nextConfigWithFunc = `const nextConfig = {\n // Your Next.js config here\n}\n\nexport default someFunc(nextConfig)\n`\nconst nextConfigWithFuncMultiline = `const nextConfig = {\n // Your Next.js config here\n}\n\nexport default someFunc(\n nextConfig\n)\n`\n\nconst nextConfigExportNamedDefault = `const nextConfig = {\n // Your Next.js config here\n}\nconst wrapped = someFunc(asdf)\nexport { wrapped as default }\n`\n\ndescribe('parseAndInsertWithPayload', () => {\n it('should parse the default next config', () => {\n const { modifiedConfigContent } = parseAndModifyConfigContent(defaultNextConfig)\n expect(modifiedConfigContent).toContain(withPayloadImportStatement)\n expect(modifiedConfigContent).toContain('withPayload(nextConfig)')\n })\n it('should parse the config with a function', () => {\n const { modifiedConfigContent } = parseAndModifyConfigContent(nextConfigWithFunc)\n expect(modifiedConfigContent).toContain('withPayload(someFunc(nextConfig))')\n })\n\n it('should parse the config with a function on a new line', () => {\n const { modifiedConfigContent } = parseAndModifyConfigContent(nextConfigWithFuncMultiline)\n expect(modifiedConfigContent).toContain(withPayloadImportStatement)\n expect(modifiedConfigContent).toMatch(/withPayload\\(someFunc\\(\\n nextConfig\\n\\)\\)/)\n })\n\n // Unsupported: export { wrapped as default }\n it('should give warning with a named export as default', () => {\n const warnLogSpy = jest.spyOn(p.log, 'warn').mockImplementation(() => {})\n\n const { modifiedConfigContent, success } = parseAndModifyConfigContent(\n nextConfigExportNamedDefault,\n )\n expect(modifiedConfigContent).toContain(withPayloadImportStatement)\n expect(success).toBe(false)\n\n expect(warnLogSpy).toHaveBeenCalledWith(expect.stringContaining('Could not automatically wrap'))\n })\n})\n"],"names":["defaultNextConfig","nextConfigWithFunc","nextConfigWithFuncMultiline","nextConfigExportNamedDefault","describe","it","modifiedConfigContent","parseAndModifyConfigContent","expect","toContain","withPayloadImportStatement","toMatch","warnLogSpy","jest","spyOn","p","log","mockImplementation","success","toBe","toHaveBeenCalledWith","stringContaining"],"mappings":";;;;gCAAwE;iEACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnB,MAAMA,oBAAoB,CAAC;;;;AAI3B,CAAC;AAED,MAAMC,qBAAqB,CAAC;;;;;AAK5B,CAAC;AACD,MAAMC,8BAA8B,CAAC;;;;;;;AAOrC,CAAC;AAED,MAAMC,+BAA+B,CAAC;;;;;AAKtC,CAAC;AAEDC,SAAS,6BAA6B;IACpCC,GAAG,wCAAwC;QACzC,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,IAAAA,2CAA2B,EAACP;QAC9DQ,OAAOF,uBAAuBG,SAAS,CAACC,0CAA0B;QAClEF,OAAOF,uBAAuBG,SAAS,CAAC;IAC1C;IACAJ,GAAG,2CAA2C;QAC5C,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,IAAAA,2CAA2B,EAACN;QAC9DO,OAAOF,uBAAuBG,SAAS,CAAC;IAC1C;IAEAJ,GAAG,yDAAyD;QAC1D,MAAM,EAAEC,qBAAqB,EAAE,GAAGC,IAAAA,2CAA2B,EAACL;QAC9DM,OAAOF,uBAAuBG,SAAS,CAACC,0CAA0B;QAClEF,OAAOF,uBAAuBK,OAAO,CAAC;IACxC;IAEA,6CAA6C;IAC7CN,GAAG,sDAAsD;QACvD,MAAMO,aAAaC,KAAKC,KAAK,CAACC,SAAEC,GAAG,EAAE,QAAQC,kBAAkB,CAAC,KAAO;QAEvE,MAAM,EAAEX,qBAAqB,EAAEY,OAAO,EAAE,GAAGX,IAAAA,2CAA2B,EACpEJ;QAEFK,OAAOF,uBAAuBG,SAAS,CAACC,0CAA0B;QAClEF,OAAOU,SAASC,IAAI,CAAC;QAErBX,OAAOI,YAAYQ,oBAAoB,CAACZ,OAAOa,gBAAgB,CAAC;IAClE;AACF"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import type { CliArgs, ProjectTemplate } from '../types.js';
|
2
|
+
/** Parse and swap .env.example values and write .env */
|
3
|
+
export declare function writeEnvFile(args: {
|
4
|
+
cliArgs: CliArgs;
|
5
|
+
databaseUri: string;
|
6
|
+
payloadSecret: string;
|
7
|
+
projectDir: string;
|
8
|
+
template?: ProjectTemplate;
|
9
|
+
}): Promise<void>;
|
10
|
+
//# sourceMappingURL=write-env-file.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"write-env-file.d.ts","sourceRoot":"","sources":["../../src/lib/write-env-file.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAI3D,wDAAwD;AACxD,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CA6ChB"}
|