@leancodepl/utils 7.1.1

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/index.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./src/index";
package/index.cjs.js ADDED
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function transformFirst(value, transformFn) {
6
+ if (value.length === 0) {
7
+ return "";
8
+ }
9
+ return transformFn(value[0]) + value.slice(1);
10
+ }
11
+ function toLowerFirst(value) {
12
+ return transformFirst(value, (value)=>value.toLowerCase());
13
+ }
14
+ function toUpperFirst(value) {
15
+ return transformFirst(value, (value)=>value.toUpperCase());
16
+ }
17
+
18
+ function _extends() {
19
+ _extends = Object.assign || function assign(target) {
20
+ for(var i = 1; i < arguments.length; i++){
21
+ var source = arguments[i];
22
+ for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
23
+ }
24
+ return target;
25
+ };
26
+ return _extends.apply(this, arguments);
27
+ }
28
+
29
+ function transformDeep(value, mode) {
30
+ if (value === null || value === undefined) {
31
+ return undefined;
32
+ }
33
+ if (Array.isArray(value)) {
34
+ return value.map((val)=>transformDeep(val, mode));
35
+ }
36
+ if (typeof value === "object") {
37
+ const transformKey = mode === "capitalize" ? toUpperFirst : toLowerFirst;
38
+ return Object.entries(value).reduce((accumulator, [key, value])=>_extends({}, accumulator, {
39
+ [transformKey(key)]: transformDeep(value, mode)
40
+ }), {});
41
+ }
42
+ return value;
43
+ }
44
+ function uncapitalizeDeep(value) {
45
+ return transformDeep(value, "uncapitalize");
46
+ }
47
+ function capitalizeDeep(value) {
48
+ return transformDeep(value, "capitalize");
49
+ }
50
+
51
+ exports.capitalizeDeep = capitalizeDeep;
52
+ exports.toLowerFirst = toLowerFirst;
53
+ exports.toUpperFirst = toUpperFirst;
54
+ exports.uncapitalizeDeep = uncapitalizeDeep;
package/index.esm.js ADDED
@@ -0,0 +1,47 @@
1
+ function transformFirst(value, transformFn) {
2
+ if (value.length === 0) {
3
+ return "";
4
+ }
5
+ return transformFn(value[0]) + value.slice(1);
6
+ }
7
+ function toLowerFirst(value) {
8
+ return transformFirst(value, (value)=>value.toLowerCase());
9
+ }
10
+ function toUpperFirst(value) {
11
+ return transformFirst(value, (value)=>value.toUpperCase());
12
+ }
13
+
14
+ function _extends() {
15
+ _extends = Object.assign || function assign(target) {
16
+ for(var i = 1; i < arguments.length; i++){
17
+ var source = arguments[i];
18
+ for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
19
+ }
20
+ return target;
21
+ };
22
+ return _extends.apply(this, arguments);
23
+ }
24
+
25
+ function transformDeep(value, mode) {
26
+ if (value === null || value === undefined) {
27
+ return undefined;
28
+ }
29
+ if (Array.isArray(value)) {
30
+ return value.map((val)=>transformDeep(val, mode));
31
+ }
32
+ if (typeof value === "object") {
33
+ const transformKey = mode === "capitalize" ? toUpperFirst : toLowerFirst;
34
+ return Object.entries(value).reduce((accumulator, [key, value])=>_extends({}, accumulator, {
35
+ [transformKey(key)]: transformDeep(value, mode)
36
+ }), {});
37
+ }
38
+ return value;
39
+ }
40
+ function uncapitalizeDeep(value) {
41
+ return transformDeep(value, "uncapitalize");
42
+ }
43
+ function capitalizeDeep(value) {
44
+ return transformDeep(value, "capitalize");
45
+ }
46
+
47
+ export { capitalizeDeep, toLowerFirst, toUpperFirst, uncapitalizeDeep };
package/package.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "@leancodepl/utils",
3
+ "version": "7.1.1",
4
+ "dependencies": {
5
+ "@leancodepl/api-date": "7.1.0"
6
+ },
7
+ "type": "commonjs",
8
+ "main": "./index.cjs.js",
9
+ "module": "./index.esm.js"
10
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./lib/types";
2
+ export * from "./lib/transformFirst";
3
+ export * from "./lib/transformDeep";
@@ -0,0 +1,3 @@
1
+ import { CapitalizeDeep, UncapitalizeDeep } from "./types";
2
+ export declare function uncapitalizeDeep<T>(value: T): UncapitalizeDeep<T>;
3
+ export declare function capitalizeDeep<T>(value: T): CapitalizeDeep<T>;
@@ -0,0 +1,2 @@
1
+ export declare function toLowerFirst(value: string): string;
2
+ export declare function toUpperFirst(value: string): string;
@@ -0,0 +1 @@
1
+ export * from "./transformDeep";
@@ -0,0 +1,10 @@
1
+ import type { ApiDateTimeOffset, ApiDateOnly, ApiTimeOnly, ApiTimeSpan } from "@leancodepl/api-date";
2
+ export type Mode = "capitalize" | "uncapitalize";
3
+ export type TransformDeep<T, TMode extends Mode> = T extends Array<infer TArrayElement> ? Array<TransformDeep<TArrayElement, TMode>> : T extends object ? T extends ApiDateTimeOffset | ApiDateOnly | ApiTimeOnly | ApiTimeSpan ? T : {
4
+ [TKey in keyof T as TKey extends string ? TMode extends "uncapitalize" ? Uncapitalize<TKey> : Capitalize<TKey> : TKey]: TransformDeep<T[TKey], TMode>;
5
+ } : T extends null ? undefined : T;
6
+ export type UncapitalizeDeep<T> = TransformDeep<T, "uncapitalize">;
7
+ export type CapitalizeDeep<T> = TransformDeep<T, "capitalize">;
8
+ export type MutableDeep<T> = T extends string | number | bigint | boolean | null | undefined | symbol | Date ? T : T extends ReadonlyArray<infer ArrayType> ? Array<MutableDeep<ArrayType>> : {
9
+ -readonly [K in keyof T]: MutableDeep<T[K]>;
10
+ };