@shushed/helpers 0.0.234 → 0.0.236

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.
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const schema = { "$schema": "http://json-schema.org/draft-07/schema#", "title": "PriceChange", "additionalProperties": false, "allOf": [{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Price", "type": "object", "additionalProperties": false, "properties": { "style_id": { "type": ["string", "null"] }, "colour_id": { "type": ["string", "null"] }, "pricelist_code": { "type": "string" }, "price_changes": { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": { "price": { "type": "integer", "minimum": 0 }, "price_type": { "type": "string", "enum": ["rrp", "perm", "pos"] }, "effective_from": { "type": "string", "format": "date-time" }, "effective_until": { "type": "string", "format": "date-time" } }, "includes_vat": { "type": "boolean" }, "required": ["price", "includes_vat", "price_type", "effective_from", "effective_until"] } }, "currency": { "title": "Currency", "$schema": "http://json-schema.org/draft-07/schema#", "type": "string", "enum": ["AFN", "ALL", "DZD", "USD", "EUR", "AOA", "XCD", "ARS", "AMD", "AWG", "AUD", "AZN", "BSD", "BHD", "BDT", "BBD", "BYN", "BZD", "XOF", "BMD", "BTN", "INR", "BOB", "BOV", "BAM", "BWP", "NOK", "BRL", "BND", "BGN", "BIF", "CVE", "KHR", "XAF", "CAD", "KYD", "CLF", "CLP", "CNY", "COP", "COU", "KMF", "CDF", "NZD", "CRC", "CUC", "CUP", "ANG", "CZK", "DKK", "DJF", "DOP", "EGP", "SVC", "ERN", "ETB", "FKP", "FJD", "XPF", "GMD", "GEL", "GHS", "GIP", "GTQ", "GBP", "GNF", "GYD", "HTG", "HNL", "HKD", "HUF", "ISK", "IDR", "XDR", "IRR", "IQD", "ILS", "JMD", "JPY", "JOD", "KZT", "KES", "KPW", "KRW", "KWD", "KGS", "LAK", "LBP", "LSL", "ZAR", "LRD", "LYD", "CHF", "MOP", "MGA", "MWK", "MYR", "MVR", "MRU", "MUR", "XUA", "MXN", "MXV", "MDL", "MNT", "MAD", "MZN", "MMK", "NAD", "NPR", "NIO", "NGN", "OMR", "PKR", "PAB", "PGK", "PYG", "PEN", "PHP", "PLN", "QAR", "MKD", "RON", "RUB", "RWF", "SHP", "WST", "STN", "SAR", "RSD", "SCR", "SLE", "SGD", "XSU", "SBD", "SOS", "SSP", "LKR", "SDG", "SRD", "SZL", "SEK", "CHE", "CHW", "SYP", "TWD", "TJS", "TZS", "THB", "TOP", "TTD", "TND", "TRY", "TMT", "UGX", "UAH", "AED", "USN", "UYI", "UYU", "UZS", "VUV", "VEF", "VED", "VND", "YER", "ZMW", "ZWL"] }, "channel": { "type": "string" } }, "required": ["style_id", "colour_id", "pricelist_code", "markdown", "currency", "channel"] }, { "type": "object", "additionalProperties": false, "required": ["style_id", "colour_id", "full_price", "markdown", "pos", "currency", "effective_from", "channel"] }], "$id": "https://shushed.example.com/messages/price-change.schema.json" };
3
+ const schema = { "$schema": "http://json-schema.org/draft-07/schema#", "title": "PriceChange", "additionalProperties": false, "allOf": [{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Price", "type": "object", "additionalProperties": false, "properties": { "style_id": { "type": ["string", "null"] }, "colour_id": { "type": ["string", "null"] }, "pricelist_code": { "type": "string" }, "sizes": { "type": "array", "items": { "type": "string" } }, "price_changes": { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": { "price": { "type": "integer", "minimum": 0 }, "price_type": { "type": "string", "enum": ["rrp", "perm", "pos"] }, "effective_from": { "type": "string", "format": "date-time" }, "effective_until": { "type": "string", "format": "date-time" } }, "includes_vat": { "type": "boolean" }, "required": ["price", "includes_vat", "price_type", "effective_from", "effective_until"] } }, "currency": { "title": "Currency", "$schema": "http://json-schema.org/draft-07/schema#", "type": "string", "enum": ["AFN", "ALL", "DZD", "USD", "EUR", "AOA", "XCD", "ARS", "AMD", "AWG", "AUD", "AZN", "BSD", "BHD", "BDT", "BBD", "BYN", "BZD", "XOF", "BMD", "BTN", "INR", "BOB", "BOV", "BAM", "BWP", "NOK", "BRL", "BND", "BGN", "BIF", "CVE", "KHR", "XAF", "CAD", "KYD", "CLF", "CLP", "CNY", "COP", "COU", "KMF", "CDF", "NZD", "CRC", "CUC", "CUP", "ANG", "CZK", "DKK", "DJF", "DOP", "EGP", "SVC", "ERN", "ETB", "FKP", "FJD", "XPF", "GMD", "GEL", "GHS", "GIP", "GTQ", "GBP", "GNF", "GYD", "HTG", "HNL", "HKD", "HUF", "ISK", "IDR", "XDR", "IRR", "IQD", "ILS", "JMD", "JPY", "JOD", "KZT", "KES", "KPW", "KRW", "KWD", "KGS", "LAK", "LBP", "LSL", "ZAR", "LRD", "LYD", "CHF", "MOP", "MGA", "MWK", "MYR", "MVR", "MRU", "MUR", "XUA", "MXN", "MXV", "MDL", "MNT", "MAD", "MZN", "MMK", "NAD", "NPR", "NIO", "NGN", "OMR", "PKR", "PAB", "PGK", "PYG", "PEN", "PHP", "PLN", "QAR", "MKD", "RON", "RUB", "RWF", "SHP", "WST", "STN", "SAR", "RSD", "SCR", "SLE", "SGD", "XSU", "SBD", "SOS", "SSP", "LKR", "SDG", "SRD", "SZL", "SEK", "CHE", "CHW", "SYP", "TWD", "TJS", "TZS", "THB", "TOP", "TTD", "TND", "TRY", "TMT", "UGX", "UAH", "AED", "USN", "UYI", "UYU", "UZS", "VUV", "VEF", "VED", "VND", "YER", "ZMW", "ZWL"] }, "channel": { "type": "string" } }, "required": ["sizes", "style_id", "colour_id", "pricelist_code", "markdown", "currency", "channel"] }, { "type": "object", "additionalProperties": false, "required": ["style_id", "colour_id", "full_price", "markdown", "pos", "currency", "effective_from", "channel"] }], "$id": "https://shushed.example.com/messages/price-change.schema.json" };
4
4
  exports.default = schema;
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const schema = { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Price", "type": "object", "additionalProperties": false, "properties": { "style_id": { "type": ["string", "null"] }, "colour_id": { "type": ["string", "null"] }, "pricelist_code": { "type": "string" }, "price_changes": { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": { "price": { "type": "integer", "minimum": 0 }, "price_type": { "type": "string", "enum": ["rrp", "perm", "pos"] }, "effective_from": { "type": "string", "format": "date-time" }, "effective_until": { "type": "string", "format": "date-time" } }, "includes_vat": { "type": "boolean" }, "required": ["price", "includes_vat", "price_type", "effective_from", "effective_until"] } }, "currency": { "title": "Currency", "$schema": "http://json-schema.org/draft-07/schema#", "type": "string", "enum": ["AFN", "ALL", "DZD", "USD", "EUR", "AOA", "XCD", "ARS", "AMD", "AWG", "AUD", "AZN", "BSD", "BHD", "BDT", "BBD", "BYN", "BZD", "XOF", "BMD", "BTN", "INR", "BOB", "BOV", "BAM", "BWP", "NOK", "BRL", "BND", "BGN", "BIF", "CVE", "KHR", "XAF", "CAD", "KYD", "CLF", "CLP", "CNY", "COP", "COU", "KMF", "CDF", "NZD", "CRC", "CUC", "CUP", "ANG", "CZK", "DKK", "DJF", "DOP", "EGP", "SVC", "ERN", "ETB", "FKP", "FJD", "XPF", "GMD", "GEL", "GHS", "GIP", "GTQ", "GBP", "GNF", "GYD", "HTG", "HNL", "HKD", "HUF", "ISK", "IDR", "XDR", "IRR", "IQD", "ILS", "JMD", "JPY", "JOD", "KZT", "KES", "KPW", "KRW", "KWD", "KGS", "LAK", "LBP", "LSL", "ZAR", "LRD", "LYD", "CHF", "MOP", "MGA", "MWK", "MYR", "MVR", "MRU", "MUR", "XUA", "MXN", "MXV", "MDL", "MNT", "MAD", "MZN", "MMK", "NAD", "NPR", "NIO", "NGN", "OMR", "PKR", "PAB", "PGK", "PYG", "PEN", "PHP", "PLN", "QAR", "MKD", "RON", "RUB", "RWF", "SHP", "WST", "STN", "SAR", "RSD", "SCR", "SLE", "SGD", "XSU", "SBD", "SOS", "SSP", "LKR", "SDG", "SRD", "SZL", "SEK", "CHE", "CHW", "SYP", "TWD", "TJS", "TZS", "THB", "TOP", "TTD", "TND", "TRY", "TMT", "UGX", "UAH", "AED", "USN", "UYI", "UYU", "UZS", "VUV", "VEF", "VED", "VND", "YER", "ZMW", "ZWL"] }, "channel": { "type": "string" } }, "required": ["style_id", "colour_id", "pricelist_code", "markdown", "currency", "channel"], "$id": "https://shushed.example.com/price.schema.json" };
3
+ const schema = { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Price", "type": "object", "additionalProperties": false, "properties": { "style_id": { "type": ["string", "null"] }, "colour_id": { "type": ["string", "null"] }, "pricelist_code": { "type": "string" }, "sizes": { "type": "array", "items": { "type": "string" } }, "price_changes": { "type": "array", "items": { "type": "object", "additionalProperties": false, "properties": { "price": { "type": "integer", "minimum": 0 }, "price_type": { "type": "string", "enum": ["rrp", "perm", "pos"] }, "effective_from": { "type": "string", "format": "date-time" }, "effective_until": { "type": "string", "format": "date-time" } }, "includes_vat": { "type": "boolean" }, "required": ["price", "includes_vat", "price_type", "effective_from", "effective_until"] } }, "currency": { "title": "Currency", "$schema": "http://json-schema.org/draft-07/schema#", "type": "string", "enum": ["AFN", "ALL", "DZD", "USD", "EUR", "AOA", "XCD", "ARS", "AMD", "AWG", "AUD", "AZN", "BSD", "BHD", "BDT", "BBD", "BYN", "BZD", "XOF", "BMD", "BTN", "INR", "BOB", "BOV", "BAM", "BWP", "NOK", "BRL", "BND", "BGN", "BIF", "CVE", "KHR", "XAF", "CAD", "KYD", "CLF", "CLP", "CNY", "COP", "COU", "KMF", "CDF", "NZD", "CRC", "CUC", "CUP", "ANG", "CZK", "DKK", "DJF", "DOP", "EGP", "SVC", "ERN", "ETB", "FKP", "FJD", "XPF", "GMD", "GEL", "GHS", "GIP", "GTQ", "GBP", "GNF", "GYD", "HTG", "HNL", "HKD", "HUF", "ISK", "IDR", "XDR", "IRR", "IQD", "ILS", "JMD", "JPY", "JOD", "KZT", "KES", "KPW", "KRW", "KWD", "KGS", "LAK", "LBP", "LSL", "ZAR", "LRD", "LYD", "CHF", "MOP", "MGA", "MWK", "MYR", "MVR", "MRU", "MUR", "XUA", "MXN", "MXV", "MDL", "MNT", "MAD", "MZN", "MMK", "NAD", "NPR", "NIO", "NGN", "OMR", "PKR", "PAB", "PGK", "PYG", "PEN", "PHP", "PLN", "QAR", "MKD", "RON", "RUB", "RWF", "SHP", "WST", "STN", "SAR", "RSD", "SCR", "SLE", "SGD", "XSU", "SBD", "SOS", "SSP", "LKR", "SDG", "SRD", "SZL", "SEK", "CHE", "CHW", "SYP", "TWD", "TJS", "TZS", "THB", "TOP", "TTD", "TND", "TRY", "TMT", "UGX", "UAH", "AED", "USN", "UYI", "UYU", "UZS", "VUV", "VEF", "VED", "VND", "YER", "ZMW", "ZWL"] }, "channel": { "type": "string" } }, "required": ["sizes", "style_id", "colour_id", "pricelist_code", "markdown", "currency", "channel"], "$id": "https://shushed.example.com/price.schema.json" };
4
4
  exports.default = schema;
@@ -64,15 +64,6 @@ class PubSubHelper extends runtime_1.default {
64
64
  return message;
65
65
  }
66
66
  async publish(options, payloads) {
67
- if (!pubSubPublishTopics[options.topicName]) {
68
- pubSubPublishTopics[options.topicName] = this.pubSub.topic(options.topicName, {
69
- batching: {
70
- maxMessages: 10,
71
- maxMilliseconds: 15
72
- },
73
- });
74
- }
75
- const topic = pubSubPublishTopics[options.topicName];
76
67
  const batches = payloads.length > 5 ? (0, lodash_chunk_1.default)(payloads, 10) : [payloads];
77
68
  let nextAttributes = {};
78
69
  const messageIds = [];
@@ -90,6 +81,9 @@ class PubSubHelper extends runtime_1.default {
90
81
  }
91
82
  for (const key in nextAttributes) {
92
83
  let resultForKey;
84
+ if (nextAttributes[key] === null || nextAttributes[key] === undefined) {
85
+ continue;
86
+ }
93
87
  if (typeof nextAttributes[key] === 'function') {
94
88
  resultForKey = nextAttributes[key](x, index);
95
89
  }
@@ -112,6 +106,25 @@ class PubSubHelper extends runtime_1.default {
112
106
  };
113
107
  let messageId = null;
114
108
  if (!options.dryRun) {
109
+ let topicName = '';
110
+ if (typeof options.topicName === 'function') {
111
+ options.topicName = options.topicName(message.data);
112
+ }
113
+ else if (typeof options.topicName === 'string') {
114
+ topicName = options.topicName;
115
+ }
116
+ else {
117
+ throw new Error('topicName must be a string or a function');
118
+ }
119
+ if (!pubSubPublishTopics[topicName]) {
120
+ pubSubPublishTopics[topicName] = this.pubSub.topic(topicName, {
121
+ batching: {
122
+ maxMessages: 10,
123
+ maxMilliseconds: 15
124
+ },
125
+ });
126
+ }
127
+ const topic = pubSubPublishTopics[topicName];
115
128
  messageId = await topic.publishMessage({
116
129
  data: Buffer.from(JSON.stringify(message.data)),
117
130
  attributes: message.attributes,
@@ -17,6 +17,12 @@ declare const schema: {
17
17
  readonly pricelist_code: {
18
18
  readonly type: "string";
19
19
  };
20
+ readonly sizes: {
21
+ readonly type: "array";
22
+ readonly items: {
23
+ readonly type: "string";
24
+ };
25
+ };
20
26
  readonly price_changes: {
21
27
  readonly type: "array";
22
28
  readonly items: {
@@ -56,7 +62,7 @@ declare const schema: {
56
62
  readonly type: "string";
57
63
  };
58
64
  };
59
- readonly required: readonly ["style_id", "colour_id", "pricelist_code", "markdown", "currency", "channel"];
65
+ readonly required: readonly ["sizes", "style_id", "colour_id", "pricelist_code", "markdown", "currency", "channel"];
60
66
  }, {
61
67
  readonly type: "object";
62
68
  readonly additionalProperties: false;
@@ -13,6 +13,12 @@ declare const schema: {
13
13
  readonly pricelist_code: {
14
14
  readonly type: "string";
15
15
  };
16
+ readonly sizes: {
17
+ readonly type: "array";
18
+ readonly items: {
19
+ readonly type: "string";
20
+ };
21
+ };
16
22
  readonly price_changes: {
17
23
  readonly type: "array";
18
24
  readonly items: {
@@ -52,7 +58,7 @@ declare const schema: {
52
58
  readonly type: "string";
53
59
  };
54
60
  };
55
- readonly required: readonly ["style_id", "colour_id", "pricelist_code", "markdown", "currency", "channel"];
61
+ readonly required: readonly ["sizes", "style_id", "colour_id", "pricelist_code", "markdown", "currency", "channel"];
56
62
  readonly $id: "https://shushed.example.com/price.schema.json";
57
63
  };
58
64
  export default schema;
@@ -4,6 +4,7 @@ export interface Price {
4
4
  style_id: (string | null);
5
5
  colour_id: (string | null);
6
6
  pricelist_code: string;
7
+ sizes: string[];
7
8
  price_changes?: {
8
9
  price: number;
9
10
  price_type: ("rrp" | "perm" | "pos");
@@ -3,6 +3,7 @@ export interface __MainSchema {
3
3
  style_id: (string | null);
4
4
  colour_id: (string | null);
5
5
  pricelist_code: string;
6
+ sizes: string[];
6
7
  price_changes?: {
7
8
  price: number;
8
9
  price_type: ("rrp" | "perm" | "pos");
@@ -52,7 +52,7 @@ declare class PubSubHelper extends Runtime {
52
52
  static decodeMessageFromRequest(req: PubSubMessage): Promise<ReceivedMessage>;
53
53
  static decodeMessageFromRequest(req: Context): Promise<ReceivedMessage>;
54
54
  publish(options: Partial<Message> & {
55
- topicName: string;
55
+ topicName: string | ((payload: any) => string);
56
56
  extraAttributes?: PublishAttributes;
57
57
  attributesGenerator?: PublishAttributesGenerator<Record<string, string>>;
58
58
  dryRun?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shushed/helpers",
3
- "version": "0.0.234",
3
+ "version": "0.0.236",
4
4
  "author": "",
5
5
  "license": "UNLICENSED",
6
6
  "description": "",