nextpress-core 3.2.1 → 3.3.0
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/cli/np-run-dev.js +1 -1
- package/cli/np-run-start.js +1 -1
- package/lib/nextjs-lib/acf-functions/core/acf-builder.ts +27 -17
- package/lib/nextjs-lib/acf-functions/services/define-field-group.ts +0 -1
- package/lib/nextjs-lib/acf-functions/services/define-field.ts +11 -0
- package/lib/nextjs-lib/acf-functions/services/define-layout.ts +0 -1
- package/lib/nextjs-lib/acf-functions/services/map-fields/map-fields.ts +2 -1
- package/package.json +1 -1
package/cli/np-run-dev.js
CHANGED
|
@@ -17,7 +17,7 @@ const composeBaseArgs = [
|
|
|
17
17
|
async function startDev() {
|
|
18
18
|
await startComposer(composeBaseArgs,
|
|
19
19
|
async () => {
|
|
20
|
-
console.log('Running Nextpress in development mode');
|
|
20
|
+
console.log('Running Nextpress in development mode (This can take a while)');
|
|
21
21
|
const dockerArgs = [
|
|
22
22
|
...composeBaseArgs,
|
|
23
23
|
'up',
|
package/cli/np-run-start.js
CHANGED
|
@@ -17,7 +17,7 @@ const composeBaseArgs = [
|
|
|
17
17
|
async function start() {
|
|
18
18
|
await startComposer(composeBaseArgs,
|
|
19
19
|
async () => {
|
|
20
|
-
console.log('Running Nextpress in production mode');
|
|
20
|
+
console.log('Running Nextpress in production mode (This can take a while)');
|
|
21
21
|
const dockerArgs = [
|
|
22
22
|
...composeBaseArgs,
|
|
23
23
|
'up',
|
|
@@ -40,15 +40,16 @@ export class ACFBuilder {
|
|
|
40
40
|
* @returns {this} Current instance.
|
|
41
41
|
*/
|
|
42
42
|
public registerFieldGroups(fieldGroups: NextpressFieldGroup[]): this {
|
|
43
|
-
|
|
43
|
+
const keyedFieldGroups: ACFFieldGroup[] = [];
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
keyedFieldGroups = fieldGroups.map(fieldGroup => ({
|
|
45
|
+
for (const fieldGroup of fieldGroups) {
|
|
46
|
+
keyedFieldGroups.push({
|
|
48
47
|
...fieldGroup,
|
|
49
48
|
key: `group_${this.formatKeySuffix(fieldGroup.title)}`,
|
|
50
49
|
fields: this.setFieldKeys(fieldGroup.fields, fieldGroup.title),
|
|
51
|
-
})
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
this.fieldKeyMap.clear();
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
this.fieldGroups = [...this.fieldGroups, ...keyedFieldGroups];
|
|
@@ -64,7 +65,9 @@ export class ACFBuilder {
|
|
|
64
65
|
* @returns {ACFField[]} Array of fields with generated keys.
|
|
65
66
|
*/
|
|
66
67
|
private setFieldKeys(fields: NextpressField[], parentName: string): ACFField[] {
|
|
67
|
-
|
|
68
|
+
const fieldsResult: ACFField[] = [];
|
|
69
|
+
|
|
70
|
+
for (const field of fields) {
|
|
68
71
|
const keySuffix = this.formatKeySuffix(`${parentName}_${field.name}`);
|
|
69
72
|
|
|
70
73
|
const childFields = field.sub_fields
|
|
@@ -79,8 +82,8 @@ export class ACFBuilder {
|
|
|
79
82
|
|
|
80
83
|
this.fieldKeyMap.set(field.name, key);
|
|
81
84
|
|
|
82
|
-
|
|
83
|
-
|
|
85
|
+
const conditionalLogic = field.conditional_logic
|
|
86
|
+
? field.conditional_logic.map((group) => {
|
|
84
87
|
return group.map((cl) => {
|
|
85
88
|
const resolvedKey = this.fieldKeyMap.get(cl.field);
|
|
86
89
|
|
|
@@ -89,16 +92,19 @@ export class ACFBuilder {
|
|
|
89
92
|
field: resolvedKey !== undefined ? resolvedKey : cl.field
|
|
90
93
|
};
|
|
91
94
|
});
|
|
92
|
-
})
|
|
93
|
-
|
|
95
|
+
})
|
|
96
|
+
: undefined;
|
|
94
97
|
|
|
95
|
-
|
|
98
|
+
fieldsResult.push({
|
|
96
99
|
...field,
|
|
97
100
|
key,
|
|
98
101
|
sub_fields: childFields,
|
|
99
102
|
layouts: childLayouts,
|
|
100
|
-
|
|
101
|
-
|
|
103
|
+
...(conditionalLogic && { conditional_logic: conditionalLogic }),
|
|
104
|
+
} as any);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return fieldsResult;
|
|
102
108
|
}
|
|
103
109
|
|
|
104
110
|
/**
|
|
@@ -109,19 +115,23 @@ export class ACFBuilder {
|
|
|
109
115
|
* @returns {ACFLayout[]} Array of layouts with generated keys.
|
|
110
116
|
*/
|
|
111
117
|
private setLayoutKeys(layouts: NextpressLayout[], parentName: string): ACFLayout[] {
|
|
112
|
-
|
|
118
|
+
const layoutResults: ACFLayout[] = [];
|
|
119
|
+
|
|
120
|
+
for (const layout of layouts) {
|
|
113
121
|
const keySuffix = this.formatKeySuffix(`${parentName}_${layout.name}`);
|
|
114
122
|
|
|
115
123
|
const childFields = layout.sub_fields
|
|
116
124
|
? this.setFieldKeys(layout.sub_fields, `${parentName}_${layout.name}`)
|
|
117
125
|
: undefined;
|
|
118
126
|
|
|
119
|
-
|
|
127
|
+
layoutResults.push({
|
|
120
128
|
...layout,
|
|
121
129
|
key: `layout_${keySuffix}`,
|
|
122
130
|
sub_fields: childFields || [],
|
|
123
|
-
}
|
|
124
|
-
}
|
|
131
|
+
})
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return layoutResults;
|
|
125
135
|
}
|
|
126
136
|
|
|
127
137
|
/**
|
|
@@ -3,7 +3,6 @@ import { NextpressFieldGroup } from "../types/acf-field-group";
|
|
|
3
3
|
/**
|
|
4
4
|
* Defines field group configuration and applies typing.
|
|
5
5
|
*
|
|
6
|
-
* @template T - Field group type extending NextpressFieldGroup.
|
|
7
6
|
* @param {T} layout - Field group configuration object.
|
|
8
7
|
* @returns {T} Passed field group configuration object.
|
|
9
8
|
*/
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NextpressField } from "../types/acf-field";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Defines layout configuration and applies typing.
|
|
5
|
+
*
|
|
6
|
+
* @param {T} field - Field configuration object.
|
|
7
|
+
* @returns {T} Passed layout configuration object.
|
|
8
|
+
*/
|
|
9
|
+
export function defineField<const T extends NextpressField>(field: T): T {
|
|
10
|
+
return field;
|
|
11
|
+
}
|
|
@@ -3,7 +3,6 @@ import { NextpressLayout } from "../types/acf-layout";
|
|
|
3
3
|
/**
|
|
4
4
|
* Defines layout configuration and applies typing.
|
|
5
5
|
*
|
|
6
|
-
* @template T - Layout type extending NextpressLayout.
|
|
7
6
|
* @param {T} layout - Layout configuration object.
|
|
8
7
|
* @returns {T} Passed layout configuration object.
|
|
9
8
|
*/
|
|
@@ -16,7 +16,7 @@ const components = await acfComponentAutoloader();
|
|
|
16
16
|
* @returns {unknown[] | { [key: string]: unknown }} Parsed object or array.
|
|
17
17
|
*/
|
|
18
18
|
function parsePhp(string?: string): unknown[] | { [key: string]: unknown } {
|
|
19
|
-
return unserialize(string
|
|
19
|
+
return unserialize(string || 'a:0:{}') ?? [];
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -348,6 +348,7 @@ export async function mapField(field: NextpressField, rawValues: ACFRawValues):
|
|
|
348
348
|
* @returns {Promise<{ [key: string]: any }>} Promise resolving to layout values object.
|
|
349
349
|
*/
|
|
350
350
|
export async function mapLayout(layout: NextpressLayout, rawValues: ACFRawValues) {
|
|
351
|
+
if (!layout) return;
|
|
351
352
|
const values: { [key: string]: any } = {};
|
|
352
353
|
|
|
353
354
|
for (const subField of layout.sub_fields) {
|