1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157# weekstart <a name="start"></a>
[](http://badge.fury.io/js/weekstart)
Library to get first day of week.
```js
getWeekStartByRegion('MAC'); // 0
getWeekStartByLocale('arq'); // 6
```
The library is based on the following data from Unicode (especially from Common Locale Data Repository) and from ISO:
* [https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_information.html](https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_information.html)
* [https://github.com/unicode-org/cldr-json/blob/main/cldr-json/cldr-core/supplemental/weekData.json](https://github.com/unicode-org/cldr-json/blob/main/cldr-json/cldr-core/supplemental/weekData.json)
* [https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_language_information.html](https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_language_information.html)
* [https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_territory_information.html](https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_territory_information.html)
* [https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/scripts_languages_and_territories.html](https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/scripts_languages_and_territories.html)
* [http://www.unicode.org/reports/tr35/tr35.html#Unicode_Language_and_Locale_Identifiers](http://www.unicode.org/reports/tr35/tr35.html#Unicode_Language_and_Locale_Identifiers)
* [https://www.iso.org/iso-3166-country-codes.html](https://www.iso.org/iso-3166-country-codes.html)
There are 2 variants of the library having identical [API](#api):
* `main` - uses base mapping of language code to country code from [langRegionMap](https://github.com/gamtiq/weekstart/blob/master/src/langRegionMap.js).
* `full` - uses full mapping of language code to country code from [fullLangRegionMap](https://github.com/gamtiq/weekstart/blob/master/src/fullLangRegionMap.js).
[langRegionMap](https://github.com/gamtiq/weekstart/blob/master/src/langRegionMap.js) contains only main language codes.
It is data subset from [fullLangRegionMap](https://github.com/gamtiq/weekstart/blob/master/src/fullLangRegionMap.js).
## Table of contents
* [Installation](#install)
* [Usage](#usage)
* [Examples](#examples)
* [API](#api)
* [Contributing](#contributing)
* [License](#license)
## Installation <a name="install"></a> [↑](#start)
### Node
npm install weekstart
### [Bower](http://bower.io)
bower install weekstart
### AMD/UMD, <script>
Use `dist/main.js` or `dist/min/main.js` (minified version).
Use `dist/full.js` or `dist/min/full.js` (minified version) when you need full locale data.
## Usage <a name="usage"></a> [↑](#start)
### ECMAScript 6
```js
import {getWeekStartByLocale, getWeekStartByRegion} from 'weekstart';
```
If you need full data:
```js
import {getWeekStartByLocale, getWeekStartByRegion} from 'weekstart/full';
```
### Node
```js
const getWeekStartByLocale = require('weekstart').getWeekStartByLocale;
const getWeekStartByRegion = require('weekstart').getWeekStartByRegion;
```
If you need full data:
```js
const getWeekStartByLocale = require('weekstart/full').getWeekStartByLocale;
const getWeekStartByRegion = require('weekstart/full').getWeekStartByRegion;
```
### AMD/UMD
```js
define(['path/to/dist/main.js'], function(weekstart) {
const getWeekStartByLocale = weekstart.getWeekStartByLocale;
const getWeekStartByRegion = weekstart.getWeekStartByRegion;
});
```
If you need full data:
```js
define(['path/to/dist/full.js'], function(weekstart) {
const getWeekStartByLocale = weekstart.getWeekStartByLocale;
const getWeekStartByRegion = weekstart.getWeekStartByRegion;
});
```
### Bower, <script>
```html
<!-- Use bower_components/weekstart/dist/main.js and bower_components/weekstart/dist/full.js if the library was installed by Bower -->
<script type="text/javascript" src="path/to/dist/main.js"></script>
<script type="text/javascript">
// weekstart is available via weekstart field of window object
const getWeekStartByLocale = weekstart.getWeekStartByLocale;
const getWeekStartByRegion = weekstart.getWeekStartByRegion;
</script>
```
If you need full data use `path/to/dist/full.js` instead of `path/to/dist/main.js`.
## Examples <a name="examples"></a> [↑](#start)
```js
getWeekStartByRegion('dj'); // 6
getWeekStartByRegion('No'); // 1
getWeekStartByRegion('CAN'); // 0
getWeekStartByRegion(462); // 5
getWeekStartByLocale('Jam'); // 0
getWeekStartByLocale('Fa'); // 6
getWeekStartByLocale('vi'); // 1
getWeekStartByLocale('es_MX'); // 0
getWeekStartByLocale('az-Arab-IRN'); // 6
```
In the following examples results are given for the function from `full.js`.
The same calls for the function from `main.js` will return `1`.
```js
getWeekStartByLocale('CCP'); // 0
getWeekStartByLocale('UZ-arab'); // 6
```
## API <a name="api"></a> [↑](#start)
#### getWeekStartByLocale(locale): number
Return first day of week for locale identifier:
0 - Sunday, 1 - Monday, 2 - Tuesday, 3 - Wednesday, 4 - Thursday, 5 - Friday, 6 - Saturday.
#### getWeekStartByRegion(regionCode): number
Return first day of week for country/region code:
0 - Sunday, 1 - Monday, 2 - Tuesday, 3 - Wednesday, 4 - Thursday, 5 - Friday, 6 - Saturday.
See [`docs`](https://gamtiq.github.io/weekstart/) for details.
## Contributing <a name="contributing"></a> [↑](#start)
In lieu of a formal styleguide, take care to maintain the existing coding style.
Add unit tests for any new or changed functionality.
Lint and test your code.
## License <a name="license"></a> [↑](#start)
Licensed under the [MIT license](https://github.com/gamtiq/weekstart/blob/master/LICENSE).