@websolutespa/payload-plugin-seo 0.1.2 → 0.1.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @websolutespa/payload-plugin-seo
2
2
 
3
+ ## 0.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - - Add rules field localization
8
+
3
9
  ## 0.1.2
4
10
 
5
11
  ### Patch Changes
package/dist/index.js CHANGED
@@ -99,6 +99,7 @@ var findVal = /* @__PURE__ */ __name((obj, keyToFind) => {
99
99
  }, "findVal");
100
100
 
101
101
  // src/seo.ts
102
+ var import_bom_core = require("@websolutespa/bom-core");
102
103
  var import_payload_utils2 = require("@websolutespa/payload-utils");
103
104
 
104
105
  // src/api/tokens.service.ts
@@ -264,7 +265,8 @@ var MetatagsRule = {
264
265
  components: {
265
266
  Field: TextWithTokens
266
267
  }
267
- }
268
+ },
269
+ localized: true
268
270
  },
269
271
  {
270
272
  name: "description",
@@ -273,7 +275,8 @@ var MetatagsRule = {
273
275
  components: {
274
276
  Field: TextWithTokens
275
277
  }
276
- }
278
+ },
279
+ localized: true
277
280
  },
278
281
  {
279
282
  name: "keywords",
@@ -282,7 +285,8 @@ var MetatagsRule = {
282
285
  components: {
283
286
  Field: TextWithTokens
284
287
  }
285
- }
288
+ },
289
+ localized: true
286
290
  },
287
291
  {
288
292
  label: "Available Tokens",
@@ -335,7 +339,7 @@ var replaceTokens = /* @__PURE__ */ __name(async (req, collection, doc, str, loc
335
339
  switch (fieldConfig?.type) {
336
340
  case "text":
337
341
  case "textarea": {
338
- str = str.replace(token, locale && fieldConfig?.localized ? fieldValue[locale.code] ?? fieldValue[defaultLocale2] : fieldValue);
342
+ str = str.replace(token, locale && fieldConfig?.localized ? fieldValue[locale.code] ?? fieldValue[defaultLocale2] ?? Object.values(fieldValue)[0] : fieldValue);
339
343
  break;
340
344
  }
341
345
  case "richText": {
@@ -381,6 +385,7 @@ var setCollectionMetatags = /* @__PURE__ */ __name(({ req, doc, query }) => asyn
381
385
  return doc;
382
386
  }
383
387
  const { payload: payload2 } = req;
388
+ const defaultLocale2 = req.payload.config.localization ? req.payload.config.localization.defaultLocale : "en";
384
389
  const result = await payload2.find({
385
390
  collection: options.slug.metatagsRule,
386
391
  where: {
@@ -393,7 +398,8 @@ var setCollectionMetatags = /* @__PURE__ */ __name(({ req, doc, query }) => asyn
393
398
  ]
394
399
  },
395
400
  pagination: false,
396
- overrideAccess: true
401
+ overrideAccess: true,
402
+ locale: "all"
397
403
  });
398
404
  let rules = result.docs;
399
405
  rules = rules.sort((a, b) => a.collections.length === 0 ? 1 : b.collections.length === 0 ? -1 : 0);
@@ -401,18 +407,29 @@ var setCollectionMetatags = /* @__PURE__ */ __name(({ req, doc, query }) => asyn
401
407
  for (const rule of rules) {
402
408
  for (const metafield of metaFields) {
403
409
  doc.meta = doc.meta || {};
404
- const ruleValue = rule[metafield];
405
- if (!ruleValue || doc.meta[metafield]) {
410
+ if (doc.meta[metafield]) {
406
411
  continue;
407
412
  }
408
413
  if (req.locale === "all") {
409
414
  const locales = req.payload?.config.localization ? req.payload.config.localization.locales : [];
410
415
  for (const locale of locales) {
411
- doc.meta[metafield] = doc.meta[metafield] || {};
412
- doc.meta[metafield][locale.code] = await replaceTokens(req, collection, doc, ruleValue, locale);
416
+ let ruleValue = rule[metafield];
417
+ if ((0, import_bom_core.isObject)(ruleValue)) {
418
+ ruleValue = ruleValue[locale.code] ?? ruleValue[defaultLocale2] ?? Object.values(ruleValue)[0];
419
+ }
420
+ if (ruleValue) {
421
+ doc.meta[metafield] = doc.meta[metafield] || {};
422
+ doc.meta[metafield][locale.code] = await replaceTokens(req, collection, doc, ruleValue, locale);
423
+ }
413
424
  }
414
425
  } else {
415
- doc.meta[metafield] = await replaceTokens(req, collection, doc, ruleValue, null);
426
+ let ruleValue = rule[metafield];
427
+ if ((0, import_bom_core.isObject)(ruleValue)) {
428
+ ruleValue = ruleValue[req.locale ?? defaultLocale2] ?? ruleValue[defaultLocale2] ?? Object.values(ruleValue)[0];
429
+ }
430
+ if (ruleValue) {
431
+ doc.meta[metafield] = await replaceTokens(req, collection, doc, ruleValue, null);
432
+ }
416
433
  }
417
434
  }
418
435
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@websolutespa/payload-plugin-seo",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "SEO plugin for PayloadCms",
5
5
  "keywords": [
6
6
  "payload",