@pretto/places 0.5.0 → 0.8.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/README.md ADDED
@@ -0,0 +1,145 @@
1
+ # @pretto/places
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@pretto/places.svg?style=flat)](https://www.npmjs.com/package/@pretto/places)
4
+
5
+ Allows you to search for an address, a postcode or a French department.
6
+ You can also search a country.
7
+
8
+ ## FAQ
9
+
10
+ ### How to implement the library?
11
+
12
+ ```sh
13
+ yarn add @pretto/places
14
+ ```
15
+
16
+ For municipality and zipcode
17
+
18
+ ```jsx
19
+ import { municipalitySearch } from '@pretto/places'
20
+
21
+ const result = await municipalitySearch.get("paris", { limit: 21 })
22
+
23
+ // expected result : Paris (75001), Paris (75002), Paris (75003), ..., Paris (75020)
24
+ // result object format :
25
+ [
26
+ {
27
+ "label": "Paris (75001)",
28
+ "value": {
29
+ "city": "Paris",
30
+ "country": "fr",
31
+ "zipcode": "75001"
32
+ }
33
+ },
34
+ {
35
+ "label": "Paris (75002)",
36
+ "value": {
37
+ "city": "Paris",
38
+ "country": "fr",
39
+ "zipcode": "75002"
40
+ }
41
+ },
42
+ ...
43
+ ]
44
+ ```
45
+
46
+ For department only
47
+
48
+ ```jsx
49
+ import { municipalitySearch } from '@pretto/places'
50
+
51
+ const result = await municipalitySearch.get("paris", { departmentOnly: true, limit: 21 })
52
+
53
+ // expected result : Paris (75), Parisot(81), Parisot (82), Cormeilles-en-Parisis (95), ...
54
+ // result object format :
55
+ [
56
+ {
57
+ "label": "Paris (75)",
58
+ "value": {
59
+ "city": "Paris",
60
+ "country": "fr",
61
+ "zipcode": "75"
62
+ }
63
+ },
64
+ {
65
+ "label": "Parisot (81)",
66
+ "value": {
67
+ "city": "Parisot",
68
+ "country": "fr",
69
+ "zipcode": "81"
70
+ }
71
+ },
72
+ ...
73
+ ]
74
+ ```
75
+
76
+ For Address (France only)
77
+
78
+ ```jsx
79
+ import { addressSearch } from '@pretto/places'
80
+
81
+ const result = await addressSearch.get("55 rue de paradis", { limit: 10 })
82
+
83
+ // expected result : 55 Rue de Paradis 75010 Paris (75010), 55 Rue de Paradis 51160 Hautvillers (51160)...
84
+ // result object format :
85
+ [
86
+ {
87
+ "label": "55 Rue de Paradis 75010 Paris (75010)",
88
+ "value": {
89
+ "city": "Paris",
90
+ "country": "fr",
91
+ "street": "55 Rue de Paradis",
92
+ "zipcode": "75010"
93
+ }
94
+ },
95
+ {
96
+ "label": "55 Rue de Paradis 51160 Hautvillers (51160)",
97
+ "value": {
98
+ "city": "Hautvillers",
99
+ "country": "fr",
100
+ "street": "55 Rue de Paradis",
101
+ "zipcode": "51160"
102
+ }
103
+ },
104
+ ...
105
+ ]
106
+ ```
107
+
108
+ For country
109
+
110
+ ```jsx
111
+ import { countrySearch } from '@pretto/places'
112
+
113
+ const countriesApi = countrySearch.init(ALGOLIA_COUNTRIES_APP_ID, ALGOLIA_COUNTRIES_API_KEY)
114
+ const results = await countriesApi.get("al", { limit: 10 })
115
+
116
+ // expected result : Allemagne (99109), Albanie (99125), Algerie (99352)
117
+ // result object format :
118
+ [
119
+ {
120
+ "label": "Allemagne (99109)",
121
+ "value": "de"
122
+ },
123
+ {
124
+ "label": "Albanie (99125)",
125
+ "value": "al"
126
+ },
127
+ {
128
+ "label": "Algerie (99352)",
129
+ "value": "dz"
130
+ }
131
+ ]
132
+ ```
133
+
134
+ ### How to publish a new version?
135
+
136
+ When a branch is merged into master, it will automatically deploy a new version to npm.
137
+
138
+ ### How it works?
139
+
140
+ This library is based on the API of data.gouv.
141
+ These data are quite precise and are regularly updated:
142
+ ![title](https://adresse.data.gouv.fr/_next/image?url=%2Fimages%2Fdonnees-nationales%2Fschema-donnees-ban.svg&w=1080&q=75)
143
+
144
+ - https://adresse.data.gouv.fr/
145
+ - https://api.gouv.fr/
package/dist/index.js CHANGED
@@ -186,7 +186,7 @@ const get = (instance, search, options) => __awaiter(void 0, void 0, void 0, fun
186
186
  if (codeiso2 === '')
187
187
  return acc;
188
188
  const formatCountryName = convertFirstLetterToUpperCase(libcog.includes('(') ? libenr : libcog);
189
- const formatCog = cog.includes('X') ? `(${cog})` : '';
189
+ const formatCog = !cog.includes('X') ? `(${cog})` : '';
190
190
  const label = `${formatCountryName} ${formatCog}`;
191
191
  return [...acc, { label, value: codeiso2.toLowerCase() }];
192
192
  }, []);
package/dist/module.js CHANGED
@@ -176,7 +176,7 @@ const get = (instance, search, options) => __awaiter(void 0, void 0, void 0, fun
176
176
  if (codeiso2 === '')
177
177
  return acc;
178
178
  const formatCountryName = convertFirstLetterToUpperCase(libcog.includes('(') ? libenr : libcog);
179
- const formatCog = cog.includes('X') ? `(${cog})` : '';
179
+ const formatCog = !cog.includes('X') ? `(${cog})` : '';
180
180
  const label = `${formatCountryName} ${formatCog}`;
181
181
  return [...acc, { label, value: codeiso2.toLowerCase() }];
182
182
  }, []);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pretto/places",
3
- "version": "0.5.0",
3
+ "version": "0.8.0",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",