fiscalia_bo-nest-helpers 0.2.23 → 0.2.24

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.
@@ -53,6 +53,7 @@ __decorate([
53
53
  ], FeatureDto.prototype, "geometry", void 0);
54
54
  __decorate([
55
55
  (0, class_validator_1.IsString)(),
56
+ (0, class_validator_1.IsOptional)(),
56
57
  (0, class_validator_1.IsNotEmpty)(),
57
58
  __metadata("design:type", String)
58
59
  ], FeatureDto.prototype, "id", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"ms-geojson.dto.js","sourceRoot":"","sources":["../../../src/ms-geojson/dto/ms-geojson.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyC;AACzC,qDAOyB;AAEzB,MAAa,WAAW;CAIvB;AAHC;IAAC,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;gDACC;AAHhC,kCAIC;AAED,MAAM,WAAW;CAQhB;AAPC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;yCACA;AAEb;IAAC,IAAA,yBAAO,GAAE;IACT,IAAA,8BAAY,EAAC,CAAC,CAAC;8BACH,MAAM;gDAAC;AAGtB,MAAM,UAAU;CAIf;AAHC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wCACA;AAGf,MAAa,UAAU;CAiBtB;AAhBC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wCACA;AAEb;IAAC,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,WAAW,CAAC;8BACd,WAAW;4CAAC;AAEtB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;sCACF;AAGX;IAAC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;IACtB,IAAA,4BAAU,GAAE;;8CACoB;AAhBnC,gCAiBC"}
1
+ {"version":3,"file":"ms-geojson.dto.js","sourceRoot":"","sources":["../../../src/ms-geojson/dto/ms-geojson.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyC;AACzC,qDAQyB;AAEzB,MAAa,WAAW;CAIvB;AAHC;IAAC,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;gDACC;AAHhC,kCAIC;AAED,MAAM,WAAW;CAQhB;AAPC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;yCACA;AAEb;IAAC,IAAA,yBAAO,GAAE;IACT,IAAA,8BAAY,EAAC,CAAC,CAAC;8BACH,MAAM;gDAAC;AAGtB,MAAM,UAAU;CAIf;AAHC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wCACA;AAGf,MAAa,UAAU;CAiBtB;AAhBC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wCACA;AAEb;IAAC,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,WAAW,CAAC;8BACd,WAAW;4CAAC;AAEtB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;;sCACF;AAEX;IAAC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;IACtB,IAAA,4BAAU,GAAE;;8CACoB;AAhBnC,gCAiBC"}
@@ -1,5 +1,7 @@
1
1
  import { Coordinates } from './dto/ms-geojson.dto';
2
2
  export declare class MsGeoJsonService {
3
+ isJsonString(str: string): boolean;
4
+ isObject(value: any): boolean;
3
5
  validateJson(dataGEOJSON: any): Promise<void>;
4
6
  validateArrayCoordinatesGeoJson(coordinatesPolygon: any, { coordinates }: Coordinates, reverseCoordinates: boolean): Promise<any>;
5
7
  }
@@ -13,8 +13,22 @@ const class_validator_1 = require("class-validator");
13
13
  const turf = require("@turf/turf");
14
14
  const class_transformer_1 = require("class-transformer");
15
15
  let MsGeoJsonService = class MsGeoJsonService {
16
+ isJsonString(str) {
17
+ try {
18
+ JSON.parse(str);
19
+ }
20
+ catch (e) {
21
+ return false;
22
+ }
23
+ return true;
24
+ }
25
+ isObject(value) {
26
+ return value !== null && typeof value === 'object';
27
+ }
16
28
  async validateJson(dataGEOJSON) {
17
29
  var _a;
30
+ if (!Array.isArray(dataGEOJSON))
31
+ throw new Error('La entrada de datos es inválida.');
18
32
  for (const item of dataGEOJSON) {
19
33
  if (((_a = item.geometry) === null || _a === void 0 ? void 0 : _a.coordinates) && Array.isArray(item.geometry.coordinates[0])) {
20
34
  const setCoordinatesValidate = [];
@@ -34,43 +48,58 @@ let MsGeoJsonService = class MsGeoJsonService {
34
48
  }
35
49
  }
36
50
  async validateArrayCoordinatesGeoJson(coordinatesPolygon, { coordinates }, reverseCoordinates) {
37
- const coordinatesReal = JSON.parse(JSON.stringify(coordinatesPolygon));
38
- let response = {
39
- index: null,
40
- isPointInside: false,
41
- };
42
- await this.validateJson(coordinatesPolygon);
43
- let setCoordinates = coordinates;
44
- if (reverseCoordinates) {
45
- setCoordinates = [coordinates[1], coordinates[0]];
46
- }
47
- for (const [i, cood] of coordinatesReal.entries()) {
48
- if (cood.geometry.type === 'MultiPolygon') {
49
- const polygonGeoJSON = turf.multiPolygon(cood.geometry.coordinates);
50
- const pointGeoJSON = turf.point(setCoordinates);
51
- const isPointInside = turf.booleanPointInPolygon(pointGeoJSON, polygonGeoJSON);
52
- if (isPointInside) {
53
- response = {
54
- index: i,
55
- isPointInside,
56
- };
57
- break;
58
- }
51
+ try {
52
+ const coordinatesReal = this.isObject(coordinatesPolygon)
53
+ ? JSON.parse(JSON.stringify(coordinatesPolygon))
54
+ : this.isJsonString(coordinatesPolygon)
55
+ ? JSON.parse(coordinatesPolygon)
56
+ : {};
57
+ const coordinatesClone = this.isObject(coordinatesPolygon)
58
+ ? JSON.parse(JSON.stringify(coordinatesPolygon))
59
+ : this.isJsonString(coordinatesPolygon)
60
+ ? JSON.parse(coordinatesPolygon)
61
+ : {};
62
+ let response = {
63
+ index: null,
64
+ isPointInside: false,
65
+ };
66
+ await this.validateJson(coordinatesClone);
67
+ let setCoordinates = coordinates;
68
+ if (reverseCoordinates) {
69
+ setCoordinates = [coordinates[1], coordinates[0]];
59
70
  }
60
- else if (cood.geometry.type === 'Polygon') {
61
- const polygonGeoJSON = turf.polygon(cood.geometry.coordinates);
62
- const pointGeoJSON = turf.point(setCoordinates);
63
- const isPointInside = turf.booleanPointInPolygon(pointGeoJSON, polygonGeoJSON);
64
- if (isPointInside) {
65
- response = {
66
- index: i,
67
- isPointInside,
68
- };
69
- break;
71
+ for (const [i, cood] of coordinatesReal.entries()) {
72
+ if (cood.geometry.type === 'MultiPolygon') {
73
+ const polygonGeoJSON = turf.multiPolygon(cood.geometry.coordinates);
74
+ const pointGeoJSON = turf.point(setCoordinates);
75
+ const isPointInside = turf.booleanPointInPolygon(pointGeoJSON, polygonGeoJSON);
76
+ if (isPointInside) {
77
+ response = {
78
+ index: i,
79
+ isPointInside,
80
+ };
81
+ break;
82
+ }
83
+ }
84
+ else if (cood.geometry.type === 'Polygon') {
85
+ const polygonGeoJSON = turf.polygon(cood.geometry.coordinates);
86
+ const pointGeoJSON = turf.point(setCoordinates);
87
+ const isPointInside = turf.booleanPointInPolygon(pointGeoJSON, polygonGeoJSON);
88
+ if (isPointInside) {
89
+ response = {
90
+ index: i,
91
+ isPointInside,
92
+ };
93
+ break;
94
+ }
70
95
  }
71
96
  }
97
+ return response;
98
+ }
99
+ catch (error) {
100
+ console.error(`geoJson: ${error.message}`);
101
+ throw `geoJson: ${error.message}`;
72
102
  }
73
- return response;
74
103
  }
75
104
  };
76
105
  MsGeoJsonService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"ms-geojson.service.js","sourceRoot":"","sources":["../../src/ms-geojson/ms-geojson.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ms-geojson.service.js","sourceRoot":"","sources":["../../src/ms-geojson/ms-geojson.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fiscalia_bo-nest-helpers",
3
- "version": "0.2.23",
3
+ "version": "0.2.24",
4
4
  "description": "Helpers y servicios para NestJS",
5
5
  "author": "UTIC - Ministerio Público",
6
6
  "contact": {