@d-matrix/utils 1.10.0 → 1.11.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/dist/date.d.ts +19 -11
- package/dist/date.js +29 -10
- package/package.json +1 -1
- package/readme.md +23 -16
package/dist/date.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export interface RecentYearOption {
|
|
2
|
+
label: string;
|
|
3
|
+
value: number;
|
|
4
|
+
}
|
|
1
5
|
/**
|
|
2
6
|
* Generates an array of numbers representing a range of years between the start year and the end year.
|
|
3
7
|
*
|
|
@@ -5,16 +9,20 @@
|
|
|
5
9
|
* @param {number} end - the ending year of the range (defaults to the current year)
|
|
6
10
|
* @return {number[]} an array of numbers representing the range of years
|
|
7
11
|
*/
|
|
8
|
-
export declare
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
export declare function rangeOfYears(start: number, end?: number): number[];
|
|
13
|
+
export declare type GetRecentYearsOptions = {
|
|
14
|
+
startYear?: number;
|
|
15
|
+
recentYears?: number;
|
|
16
|
+
endYear?: number;
|
|
17
|
+
suffix?: string;
|
|
18
|
+
};
|
|
13
19
|
/**
|
|
14
|
-
*
|
|
15
|
-
* @param
|
|
16
|
-
* @param type 控制返回值类型
|
|
17
|
-
* @param suffix 后缀,默认为'年'
|
|
20
|
+
* 获取n年, 从大到小
|
|
21
|
+
* @param options
|
|
18
22
|
*/
|
|
19
|
-
export declare function
|
|
20
|
-
|
|
23
|
+
export declare function getYears(options: GetRecentYearsOptions & {
|
|
24
|
+
type: 'number[]';
|
|
25
|
+
}): number[];
|
|
26
|
+
export declare function getYears(options: GetRecentYearsOptions & {
|
|
27
|
+
type: 'object[]';
|
|
28
|
+
}): RecentYearOption[];
|
package/dist/date.js
CHANGED
|
@@ -5,24 +5,43 @@
|
|
|
5
5
|
* @param {number} end - the ending year of the range (defaults to the current year)
|
|
6
6
|
* @return {number[]} an array of numbers representing the range of years
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
export function rangeOfYears(start, end = new Date().getFullYear()) {
|
|
9
|
+
return Array(end - start + 1)
|
|
10
|
+
.fill(start)
|
|
11
|
+
.map((year, index) => year + index);
|
|
12
|
+
}
|
|
13
|
+
export function getYears(options) {
|
|
14
|
+
const { recentYears = 0, startYear, endYear, suffix = '年', type } = options;
|
|
15
|
+
const endY = endYear ? endYear : new Date().getFullYear();
|
|
16
|
+
let ranges = recentYears;
|
|
17
|
+
if (typeof startYear === 'number') {
|
|
18
|
+
// 包含startYear
|
|
19
|
+
ranges = endY - startYear + 1;
|
|
20
|
+
if (ranges <= 0) {
|
|
21
|
+
if (process.env.NODE_ENV === 'development') {
|
|
22
|
+
if (endYear === undefined) {
|
|
23
|
+
console.error('startYear不能大于当前年份');
|
|
24
|
+
}
|
|
25
|
+
else if (typeof endYear === 'number') {
|
|
26
|
+
console.error('endYear不能小于startYear');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
13
32
|
if (type === 'number[]') {
|
|
14
33
|
const result = [];
|
|
15
|
-
for (let i = 0; i <
|
|
16
|
-
result.push(
|
|
34
|
+
for (let i = 0; i < ranges; i++) {
|
|
35
|
+
result.push(endY - i);
|
|
17
36
|
}
|
|
18
37
|
return result;
|
|
19
38
|
}
|
|
20
39
|
if (type === 'object[]') {
|
|
21
40
|
const result = [];
|
|
22
|
-
for (let i = 0; i <
|
|
41
|
+
for (let i = 0; i < ranges; i++) {
|
|
23
42
|
result.push({
|
|
24
|
-
value:
|
|
25
|
-
label: `${
|
|
43
|
+
value: endY - i,
|
|
44
|
+
label: `${endY - i}${suffix}`,
|
|
26
45
|
});
|
|
27
46
|
}
|
|
28
47
|
return result;
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -146,27 +146,34 @@ dom.strip('测试<em>高亮</em>测试'); // '测试高亮测试'
|
|
|
146
146
|
- `getRecentYears()`
|
|
147
147
|
|
|
148
148
|
```ts
|
|
149
|
-
export
|
|
150
|
-
|
|
151
|
-
|
|
149
|
+
export type GetRecentYearsOptions = {
|
|
150
|
+
// 开始年份
|
|
151
|
+
startYear?: number;
|
|
152
|
+
// 最近几年
|
|
153
|
+
recentYears?: number;
|
|
154
|
+
// 截止年份
|
|
155
|
+
endYear?: number;
|
|
156
|
+
// 后缀,默认为'年'
|
|
157
|
+
suffix?: string;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
export function getYears(options: GetRecentYearsOptions & { type: 'number[]' }): number[];
|
|
161
|
+
export function getYears(options: GetRecentYearsOptions & { type: 'object[]' }): RecentYearOption[];
|
|
162
|
+
export function getYears(options: GetRecentYearsOptions & { type: 'object[]' | 'number[]' }): number[] | RecentYearOption[]
|
|
152
163
|
```
|
|
153
164
|
|
|
154
|
-
|
|
165
|
+
获取n年,`type`传`number[]`,返回`[2023, 2022, 2021]`数字数组;`type`传`object[]`,返回如下的对象数组
|
|
155
166
|
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
// { value: 2024, label: '2024年' },
|
|
163
|
-
// { value: 2023, label: '2023年' },
|
|
164
|
-
// { value: 2022, label: '2022年' },
|
|
165
|
-
// { value: 2021, label: '2021年' },
|
|
166
|
-
// { value: 2020, label: '2020年' },
|
|
167
|
-
// ]
|
|
167
|
+
```sh
|
|
168
|
+
[
|
|
169
|
+
{ value: 2023, label: '2023年' },
|
|
170
|
+
{ value: 2022, label: '2022年' },
|
|
171
|
+
{ value: 2021, label: '2021年' },
|
|
172
|
+
]
|
|
168
173
|
```
|
|
169
174
|
|
|
175
|
+
更多用法,见[测试用例](./tests/date.cy.ts)
|
|
176
|
+
|
|
170
177
|
### types
|
|
171
178
|
|
|
172
179
|
- `WithOptional<T, K extends keyof T>`
|