@contrail/flexplm 1.5.1-alpha.5843ce4 → 1.5.1-alpha.8727255

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.
@@ -79,7 +79,7 @@ export declare class BaseProcessPublishAssortment {
79
79
  private sendToFlexPLM;
80
80
  private saveToLocalFile;
81
81
  private handleVibeIQFile;
82
- sendPublishPayloadEvent(outboundEvent: any): Promise<void>;
82
+ private sendPublishPayloadEvent;
83
83
  private getCurrentDateString;
84
84
  getItemFamilyChanges(pcd: PublishChangeData, changeDetail: any, assortmentItemFullChangeMap: Map<string, any>, assortmentItemDeleteMap: Map<string, any>): Map<string, ItemFamilyChanges>;
85
85
  getEventsForPublishChangeData(publishChangeData: PublishChangeData): Promise<SeasonalPayload[]>;
@@ -576,10 +576,11 @@ class BaseProcessPublishAssortment {
576
576
  events
577
577
  };
578
578
  const flexPLMConnect = new flexplm_connect_1.FlexPLMConnect(this.config);
579
- const [result] = await Promise.all([
579
+ const [sendResult] = await Promise.allSettled([
580
580
  flexPLMConnect.sendToFlexPLM(outboundPublishEvent),
581
581
  this.sendPublishPayloadEvent(outboundPublishEvent)
582
582
  ]);
583
+ const result = sendResult.status === 'fulfilled' ? sendResult.value : { error: sendResult.reason?.message };
583
584
  const isResultObject = typeof result === 'object' && result !== null;
584
585
  const resultWithOutboundPublishEvent = isResultObject
585
586
  ? { ...result, outboundPublishEvent }
@@ -631,10 +632,11 @@ class BaseProcessPublishAssortment {
631
632
  };
632
633
  if (sendMode === 'vibeiqfile') {
633
634
  const flexPLMConnect = new flexplm_connect_1.FlexPLMConnect(this.config);
634
- const [result] = await Promise.all([
635
+ const [sendResult] = await Promise.allSettled([
635
636
  flexPLMConnect.sendToFlexPLM(outboundPublishEvent),
636
637
  this.sendPublishPayloadEvent(outboundPublishEvent)
637
638
  ]);
639
+ const result = sendResult.status === 'fulfilled' ? sendResult.value : { error: sendResult.reason?.message };
638
640
  return { ...result, outboundPublishEvent };
639
641
  }
640
642
  else {
@@ -645,7 +647,7 @@ class BaseProcessPublishAssortment {
645
647
  };
646
648
  }
647
649
  }
648
- async sendPublishPayloadEvent(outboundEvent) {
650
+ async sendPublishPayloadEvent(outboundPublishEvent) {
649
651
  console.info('sendPublishPayloadEvent()');
650
652
  let initialEvent = {};
651
653
  if (this.config?.event) {
@@ -656,7 +658,7 @@ class BaseProcessPublishAssortment {
656
658
  const eventBody = {
657
659
  originSystemType: 'VibeIQ',
658
660
  objectClass: 'AssortmentPublishedToFlexPLM',
659
- outboundEvent,
661
+ outboundPublishEvent,
660
662
  initialEvent
661
663
  };
662
664
  await new sdk_1.Entities().create({
@@ -1709,7 +1709,7 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
1709
1709
  afterEach(() => {
1710
1710
  jest.restoreAllMocks();
1711
1711
  });
1712
- it('sendToFlexPLM merges outboundPublishEvent into result and calls sendPublishPayloadEvent in parallel', async () => {
1712
+ it('should merge outboundPublishEvent into result and call sendPublishPayloadEvent in parallel', async () => {
1713
1713
  const bppa = new base_process_publish_assortment_1.BaseProcessPublishAssortment(config, dc, mapFileUtil);
1714
1714
  const flexResponse = { status: 200, data: { ok: true } };
1715
1715
  let flexResolved = false;
@@ -1738,7 +1738,7 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
1738
1738
  expect(spyEvent).toHaveBeenCalledWith(passedOutboundPublishEvent);
1739
1739
  expect(result).toEqual({ ...flexResponse, outboundPublishEvent: passedOutboundPublishEvent });
1740
1740
  });
1741
- it('handleVibeIQFile (vibeiqfile) merges outboundPublishEvent into FlexPLM result and calls sendPublishPayloadEvent', async () => {
1741
+ it('should merge outboundPublishEvent into FlexPLM result and call sendPublishPayloadEvent when mode is vibeiqfile', async () => {
1742
1742
  const bppa = new base_process_publish_assortment_1.BaseProcessPublishAssortment(config, dc, mapFileUtil);
1743
1743
  const flexResponse = { status: 200, data: { ok: true } };
1744
1744
  const spyFlex = jest.spyOn(flexplm_connect_1.FlexPLMConnect.prototype, 'sendToFlexPLM')
@@ -1761,7 +1761,7 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
1761
1761
  expect(spyEvent).toHaveBeenCalledWith(passedOutboundPublishEvent);
1762
1762
  expect(result).toEqual({ ...flexResponse, outboundPublishEvent: passedOutboundPublishEvent });
1763
1763
  });
1764
- it('handleVibeIQFile (vibeiqfile-dontsendtoflexplm) skips FlexPLM but still calls sendPublishPayloadEvent', async () => {
1764
+ it('should skip FlexPLM but still call sendPublishPayloadEvent when mode is vibeiqfile-dontsendtoflexplm', async () => {
1765
1765
  const bppa = new base_process_publish_assortment_1.BaseProcessPublishAssortment(config, dc, mapFileUtil);
1766
1766
  const spyFlex = jest.spyOn(flexplm_connect_1.FlexPLMConnect.prototype, 'sendToFlexPLM')
1767
1767
  .mockResolvedValue({});
@@ -1777,31 +1777,31 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
1777
1777
  outboundPublishEvent: passedOutboundPublishEvent
1778
1778
  });
1779
1779
  });
1780
- it('sendPublishPayloadEvent creates an external-event with initialEvent parsed from config', async () => {
1780
+ it('should create an external-event with initialEvent parsed from config', async () => {
1781
1781
  const bppa = new base_process_publish_assortment_1.BaseProcessPublishAssortment(config, dc, mapFileUtil);
1782
- const outboundEvent = { foo: 'bar' };
1783
- await bppa.sendPublishPayloadEvent(outboundEvent);
1782
+ const outboundPublishEvent = { foo: 'bar' };
1783
+ await bppa.sendPublishPayloadEvent(outboundPublishEvent);
1784
1784
  expect(createCallArg).toEqual({
1785
1785
  entityName: 'external-event',
1786
1786
  object: {
1787
1787
  originSystemType: 'VibeIQ',
1788
1788
  objectClass: 'AssortmentPublishedToFlexPLM',
1789
- outboundEvent,
1789
+ outboundPublishEvent,
1790
1790
  initialEvent: { sourceEventId: 'src-1' }
1791
1791
  }
1792
1792
  });
1793
1793
  });
1794
- it('sendPublishPayloadEvent defaults initialEvent to {} when config has no event', async () => {
1794
+ it('should default initialEvent to {} when config has no event', async () => {
1795
1795
  const bareConfig = { taskId: 'task-x' };
1796
1796
  const bppa = new base_process_publish_assortment_1.BaseProcessPublishAssortment(bareConfig, dc, mapFileUtil);
1797
- const outboundEvent = { hello: 'world' };
1798
- await bppa.sendPublishPayloadEvent(outboundEvent);
1797
+ const outboundPublishEvent = { hello: 'world' };
1798
+ await bppa.sendPublishPayloadEvent(outboundPublishEvent);
1799
1799
  expect(createCallArg).toEqual({
1800
1800
  entityName: 'external-event',
1801
1801
  object: {
1802
1802
  originSystemType: 'VibeIQ',
1803
1803
  objectClass: 'AssortmentPublishedToFlexPLM',
1804
- outboundEvent,
1804
+ outboundPublishEvent,
1805
1805
  initialEvent: {}
1806
1806
  }
1807
1807
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrail/flexplm",
3
- "version": "1.5.1-alpha.5843ce4",
3
+ "version": "1.5.1-alpha.8727255",
4
4
  "description": "Library used for integration with flexplm.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -2033,7 +2033,7 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
2033
2033
  jest.restoreAllMocks();
2034
2034
  });
2035
2035
 
2036
- it('sendToFlexPLM merges outboundPublishEvent into result and calls sendPublishPayloadEvent in parallel', async () => {
2036
+ it('should merge outboundPublishEvent into result and call sendPublishPayloadEvent in parallel', async () => {
2037
2037
  const bppa = new BaseProcessPublishAssortment(config, dc, mapFileUtil);
2038
2038
  const flexResponse = { status: 200, data: { ok: true } };
2039
2039
 
@@ -2045,7 +2045,7 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
2045
2045
  flexResolved = true;
2046
2046
  return flexResponse as any;
2047
2047
  });
2048
- const spyEvent = jest.spyOn(bppa, 'sendPublishPayloadEvent')
2048
+ const spyEvent = jest.spyOn(bppa as any, 'sendPublishPayloadEvent')
2049
2049
  .mockImplementation(async () => {
2050
2050
  await new Promise(r => setTimeout(r, 5));
2051
2051
  eventResolved = true;
@@ -2067,13 +2067,13 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
2067
2067
  expect(result).toEqual({ ...flexResponse, outboundPublishEvent: passedOutboundPublishEvent });
2068
2068
  });
2069
2069
 
2070
- it('handleVibeIQFile (vibeiqfile) merges outboundPublishEvent into FlexPLM result and calls sendPublishPayloadEvent', async () => {
2070
+ it('should merge outboundPublishEvent into FlexPLM result and call sendPublishPayloadEvent when mode is vibeiqfile', async () => {
2071
2071
  const bppa = new BaseProcessPublishAssortment(config, dc, mapFileUtil);
2072
2072
  const flexResponse = { status: 200, data: { ok: true } };
2073
2073
 
2074
2074
  const spyFlex = jest.spyOn(FlexPLMConnect.prototype, 'sendToFlexPLM')
2075
2075
  .mockResolvedValue(flexResponse as any);
2076
- const spyEvent = jest.spyOn(bppa, 'sendPublishPayloadEvent')
2076
+ const spyEvent = jest.spyOn(bppa as any, 'sendPublishPayloadEvent')
2077
2077
  .mockResolvedValue(undefined as any);
2078
2078
 
2079
2079
  const result = await (bppa as any).handleVibeIQFile(events, eventType, 'vibeiqfile');
@@ -2096,12 +2096,12 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
2096
2096
  expect(result).toEqual({ ...flexResponse, outboundPublishEvent: passedOutboundPublishEvent });
2097
2097
  });
2098
2098
 
2099
- it('handleVibeIQFile (vibeiqfile-dontsendtoflexplm) skips FlexPLM but still calls sendPublishPayloadEvent', async () => {
2099
+ it('should skip FlexPLM but still call sendPublishPayloadEvent when mode is vibeiqfile-dontsendtoflexplm', async () => {
2100
2100
  const bppa = new BaseProcessPublishAssortment(config, dc, mapFileUtil);
2101
2101
 
2102
2102
  const spyFlex = jest.spyOn(FlexPLMConnect.prototype, 'sendToFlexPLM')
2103
2103
  .mockResolvedValue({} as any);
2104
- const spyEvent = jest.spyOn(bppa, 'sendPublishPayloadEvent')
2104
+ const spyEvent = jest.spyOn(bppa as any, 'sendPublishPayloadEvent')
2105
2105
  .mockResolvedValue(undefined as any);
2106
2106
 
2107
2107
  const result = await (bppa as any).handleVibeIQFile(events, eventType, 'vibeiqfile-dontsendtoflexplm');
@@ -2117,36 +2117,36 @@ describe('sendToFlexPLM / handleVibeIQFile / sendPublishPayloadEvent', () => {
2117
2117
  });
2118
2118
  });
2119
2119
 
2120
- it('sendPublishPayloadEvent creates an external-event with initialEvent parsed from config', async () => {
2120
+ it('should create an external-event with initialEvent parsed from config', async () => {
2121
2121
  const bppa = new BaseProcessPublishAssortment(config, dc, mapFileUtil);
2122
- const outboundEvent = { foo: 'bar' };
2122
+ const outboundPublishEvent = { foo: 'bar' };
2123
2123
 
2124
- await bppa.sendPublishPayloadEvent(outboundEvent);
2124
+ await (bppa as any).sendPublishPayloadEvent(outboundPublishEvent);
2125
2125
 
2126
2126
  expect(createCallArg).toEqual({
2127
2127
  entityName: 'external-event',
2128
2128
  object: {
2129
2129
  originSystemType: 'VibeIQ',
2130
2130
  objectClass: 'AssortmentPublishedToFlexPLM',
2131
- outboundEvent,
2131
+ outboundPublishEvent,
2132
2132
  initialEvent: { sourceEventId: 'src-1' }
2133
2133
  }
2134
2134
  });
2135
2135
  });
2136
2136
 
2137
- it('sendPublishPayloadEvent defaults initialEvent to {} when config has no event', async () => {
2137
+ it('should default initialEvent to {} when config has no event', async () => {
2138
2138
  const bareConfig = { taskId: 'task-x' } as unknown as FCConfig;
2139
2139
  const bppa = new BaseProcessPublishAssortment(bareConfig, dc, mapFileUtil);
2140
- const outboundEvent = { hello: 'world' };
2140
+ const outboundPublishEvent = { hello: 'world' };
2141
2141
 
2142
- await bppa.sendPublishPayloadEvent(outboundEvent);
2142
+ await (bppa as any).sendPublishPayloadEvent(outboundPublishEvent);
2143
2143
 
2144
2144
  expect(createCallArg).toEqual({
2145
2145
  entityName: 'external-event',
2146
2146
  object: {
2147
2147
  originSystemType: 'VibeIQ',
2148
2148
  objectClass: 'AssortmentPublishedToFlexPLM',
2149
- outboundEvent,
2149
+ outboundPublishEvent,
2150
2150
  initialEvent: {}
2151
2151
  }
2152
2152
  });
@@ -693,10 +693,11 @@ export class BaseProcessPublishAssortment {
693
693
  };
694
694
 
695
695
  const flexPLMConnect = new FlexPLMConnect(this.config);
696
- const [result] = await Promise.all([
696
+ const [sendResult] = await Promise.allSettled([
697
697
  flexPLMConnect.sendToFlexPLM(outboundPublishEvent),
698
698
  this.sendPublishPayloadEvent(outboundPublishEvent)
699
699
  ]);
700
+ const result = sendResult.status === 'fulfilled' ? sendResult.value : { error: sendResult.reason?.message };
700
701
  const isResultObject = typeof result === 'object' && result !== null;
701
702
  const resultWithOutboundPublishEvent = isResultObject
702
703
  ? { ...result, outboundPublishEvent }
@@ -756,10 +757,11 @@ export class BaseProcessPublishAssortment {
756
757
 
757
758
  if (sendMode === 'vibeiqfile') {
758
759
  const flexPLMConnect = new FlexPLMConnect(this.config);
759
- const [result] = await Promise.all([
760
+ const [sendResult] = await Promise.allSettled([
760
761
  flexPLMConnect.sendToFlexPLM(outboundPublishEvent),
761
762
  this.sendPublishPayloadEvent(outboundPublishEvent)
762
763
  ]);
764
+ const result = sendResult.status === 'fulfilled' ? sendResult.value : { error: sendResult.reason?.message };
763
765
  return { ...result, outboundPublishEvent };
764
766
  } else {
765
767
  await this.sendPublishPayloadEvent(outboundPublishEvent);
@@ -770,10 +772,10 @@ export class BaseProcessPublishAssortment {
770
772
  }
771
773
  }
772
774
 
773
- public async sendPublishPayloadEvent(outboundEvent: any){
775
+ private async sendPublishPayloadEvent(outboundPublishEvent: AsyncEventsPayloadType){
774
776
  console.info('sendPublishPayloadEvent()');
775
777
  let initialEvent = {};
776
- if(this.config?.event){
778
+ if (this.config?.event){
777
779
  initialEvent = (typeof this.config?.event === 'string')
778
780
  ? JSON.parse(this.config?.event)
779
781
  : this.config?.event;
@@ -781,7 +783,7 @@ export class BaseProcessPublishAssortment {
781
783
  const eventBody = {
782
784
  originSystemType: 'VibeIQ',
783
785
  objectClass: 'AssortmentPublishedToFlexPLM',
784
- outboundEvent,
786
+ outboundPublishEvent,
785
787
  initialEvent
786
788
  };
787
789