yummies 3.2.13 → 3.4.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/date-time.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { Dayjs, ManipulateType } from 'dayjs';
2
2
  import { Maybe } from './utils/types.js';
3
- import 'dayjs/locale/ru';
4
- export declare const formatDate: (value: Maybe<string | number | Dayjs>, settings?: Maybe<{
3
+ import 'dayjs/locale/ru.js';
4
+ export type RawDateToFormat = Date | string | number | Dayjs;
5
+ export declare const formatDate: (value: Maybe<RawDateToFormat>, settings?: Maybe<{
5
6
  format?: "human" | "full" | "short" | "day" | "day-only" | "date" | "month" | "spent-time" | "time" | "time-short";
6
7
  pattern?: string;
7
8
  asTime?: boolean;
@@ -14,7 +15,7 @@ export declare const dayTimeDuration: (timeInMs: number) => {
14
15
  milliseconds: number;
15
16
  };
16
17
  type DateChangeParam = [amount: number, unit?: Maybe<ManipulateType>];
17
- export declare const changeDate: (date: Maybe<Date | number | string>, ...args: [...DateChangeParam, ...Partial<DateChangeParam>, ...Partial<DateChangeParam>, ...Partial<DateChangeParam>, ...Partial<DateChangeParam>, ...Partial<DateChangeParam>]) => Date;
18
+ export declare const changeDate: (date: Maybe<RawDateToFormat>, ...args: [...DateChangeParam, ...Partial<DateChangeParam>, ...Partial<DateChangeParam>, ...Partial<DateChangeParam>, ...Partial<DateChangeParam>, ...Partial<DateChangeParam>]) => Date;
18
19
  export declare const timeDuration: (timeInMs: number) => {
19
20
  hours: number;
20
21
  milliseconds: number;
@@ -1 +1 @@
1
- {"version":3,"file":"date-time.d.ts","sourceRoot":"","sources":["../src/date-time.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAOrD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,iBAAiB,CAAC;AAwBzB,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,EACrC,WAAW,KAAK,CAAC;IACf,MAAM,CAAC,EACH,OAAO,GACP,MAAM,GACN,OAAO,GACP,KAAK,GACL,UAAU,GACV,MAAM,GACN,OAAO,GACP,YAAY,GACZ,MAAM,GACN,YAAY,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC,WA6CH,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM;;;;;;CAwB/C,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;AAEtE,eAAO,MAAM,UAAU,GACrB,MAAM,KAAK,CAAC,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,EACnC,GAAG,MAAM,CACP,GAAG,eAAe,EAClB,GAAG,OAAO,CAAC,eAAe,CAAC,EAC3B,GAAG,OAAO,CAAC,eAAe,CAAC,EAC3B,GAAG,OAAO,CAAC,eAAe,CAAC,EAC3B,GAAG,OAAO,CAAC,eAAe,CAAC,EAC3B,GAAG,OAAO,CAAC,eAAe,CAAC,CAC5B,SAaF,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM;;;;;CAU5C,CAAC;AASF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,IAAI,EACX,KAAK,EAAE,IAAI,EACX,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAAC;AACV,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"date-time.d.ts","sourceRoot":"","sources":["../src/date-time.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAOrD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,oBAAoB,CAAC;AAwB5B,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,CAAC,eAAe,CAAC,EAC7B,WAAW,KAAK,CAAC;IACf,MAAM,CAAC,EACH,OAAO,GACP,MAAM,GACN,OAAO,GACP,KAAK,GACL,UAAU,GACV,MAAM,GACN,OAAO,GACP,YAAY,GACZ,MAAM,GACN,YAAY,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC,WA6CH,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM;;;;;;CAwB/C,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;AAEtE,eAAO,MAAM,UAAU,GACrB,MAAM,KAAK,CAAC,eAAe,CAAC,EAC5B,GAAG,MAAM,CACP,GAAG,eAAe,EAClB,GAAG,OAAO,CAAC,eAAe,CAAC,EAC3B,GAAG,OAAO,CAAC,eAAe,CAAC,EAC3B,GAAG,OAAO,CAAC,eAAe,CAAC,EAC3B,GAAG,OAAO,CAAC,eAAe,CAAC,EAC3B,GAAG,OAAO,CAAC,eAAe,CAAC,CAC5B,SAaF,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM;;;;;CAU5C,CAAC;AASF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,IAAI,EACX,KAAK,EAAE,IAAI,EACX,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAAC;AACV,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC"}
package/date-time.js CHANGED
@@ -4,7 +4,7 @@ import relativeTime from 'dayjs/plugin/relativeTime.js';
4
4
  import { unitsToMs } from './ms.js';
5
5
  import { declension } from './text.js';
6
6
  import { typeGuard } from './type-guard/index.js';
7
- import 'dayjs/locale/ru';
7
+ import 'dayjs/locale/ru.js';
8
8
  dayjs.extend(relativeTime);
9
9
  dayjs.extend(duration);
10
10
  dayjs.locale('ru');
@@ -16,19 +16,19 @@ const toLibFormat = function (value, asTime) {
16
16
  }
17
17
  return dayjs(value);
18
18
  }
19
- else if (typeGuard.isString(value)) {
20
- return dayjs(value);
21
- }
22
19
  else if (dayjs.isDayjs(value)) {
23
20
  return value;
24
21
  }
22
+ else {
23
+ return dayjs(value);
24
+ }
25
25
  };
26
26
  export const formatDate = function (value, settings) {
27
27
  const dateFormat = settings?.format;
28
28
  const datePattern = settings?.pattern;
29
29
  const asTime = settings?.asTime;
30
30
  value = toLibFormat(value, asTime);
31
- if (typeGuard.isUndefined(value)) {
31
+ if (typeGuard.isUndefined(value) || !value.isValid()) {
32
32
  return NO_VALUE;
33
33
  }
34
34
  if (datePattern) {
@@ -84,7 +84,7 @@ export const dayTimeDuration = (timeInMs) => {
84
84
  };
85
85
  };
86
86
  export const changeDate = (date, ...args) => {
87
- let wrappedDate = dayjs(date);
87
+ let wrappedDate = toLibFormat(date);
88
88
  for (let i = 0; i < args.length; i += 2) {
89
89
  const amount = args[i];
90
90
  const unit = args[i + 1];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yummies",
3
- "version": "3.2.13",
3
+ "version": "3.4.0",
4
4
  "keywords": [],
5
5
  "author": "js2me",
6
6
  "license": "MIT",
@@ -167,6 +167,11 @@
167
167
  "default": "./storage.js",
168
168
  "types": "./storage.d.ts"
169
169
  },
170
+ "./text.test": {
171
+ "import": "./text.test.js",
172
+ "default": "./text.test.js",
173
+ "types": "./text.test.d.ts"
174
+ },
170
175
  "./text": {
171
176
  "import": "./text.js",
172
177
  "default": "./text.js",
package/text.d.ts CHANGED
@@ -8,4 +8,8 @@
8
8
  * declension(5, ['слово', 'слова', 'слов']) // 'слов'
9
9
  */
10
10
  export declare const declension: (count: number, txt: readonly [one: string, two: string, five: string], cases?: number[]) => string;
11
+ /**
12
+ * Разбиение текста на линии
13
+ */
14
+ export declare const splitTextByLines: (text: string, lineLingth?: number) => string[];
11
15
  //# sourceMappingURL=text.d.ts.map
package/text.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,MAAM,EACb,KAAK,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EACtD,gBAA0B,WAEmD,CAAC"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,MAAM,EACb,KAAK,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EACtD,gBAA0B,WAEmD,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,aAAY,MAAW,KACtB,MAAM,EAqCR,CAAC"}
package/text.js CHANGED
@@ -8,3 +8,41 @@
8
8
  * declension(5, ['слово', 'слова', 'слов']) // 'слов'
9
9
  */
10
10
  export const declension = (count, txt, cases = [2, 0, 1, 1, 1, 2]) => txt[count % 100 > 4 && count % 100 < 20 ? 2 : cases[Math.min(count % 10, 5)]];
11
+ /**
12
+ * Разбиение текста на линии
13
+ */
14
+ export const splitTextByLines = (text, lineLingth = 60) => {
15
+ const words = text.split(/\s+/).filter((word) => word !== '');
16
+ const lines = [];
17
+ let currentLine = '';
18
+ for (const word of words) {
19
+ if (word.length > lineLingth) {
20
+ if (currentLine !== '') {
21
+ lines.push(currentLine);
22
+ currentLine = '';
23
+ }
24
+ let start = 0;
25
+ while (start < word.length) {
26
+ const chunk = word.slice(start, start + lineLingth);
27
+ lines.push(chunk);
28
+ start += lineLingth;
29
+ }
30
+ continue;
31
+ }
32
+ // Проверка возможности добавления слова в текущую строку
33
+ if (currentLine === '') {
34
+ currentLine = word;
35
+ }
36
+ else if (currentLine.length + 1 + word.length <= lineLingth) {
37
+ currentLine += ' ' + word;
38
+ }
39
+ else {
40
+ lines.push(currentLine);
41
+ currentLine = word;
42
+ }
43
+ }
44
+ if (currentLine !== '' || lines.length === 0) {
45
+ lines.push(currentLine);
46
+ }
47
+ return lines;
48
+ };