@douglasneuroinformatics/libjs 1.0.2 → 1.2.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/datetime.d.ts +10 -0
- package/dist/datetime.d.ts.map +1 -1
- package/dist/datetime.js +12 -0
- package/dist/datetime.test.js +27 -2
- package/dist/douglasneuroinformatics-libjs-1.2.0.tgz +0 -0
- package/dist/object.d.ts +3 -0
- package/dist/object.d.ts.map +1 -1
- package/dist/object.js +3 -0
- package/dist/object.test.js +12 -1
- package/dist/range.d.ts.map +1 -1
- package/dist/range.js +0 -1
- package/dist/string.d.ts.map +1 -1
- package/package.json +15 -15
- package/dist/douglasneuroinformatics-libjs-1.0.2.tgz +0 -0
package/dist/datetime.d.ts
CHANGED
|
@@ -7,6 +7,16 @@ export type Duration = {
|
|
|
7
7
|
};
|
|
8
8
|
/** A map that associates time units with their corresponding values in milliseconds */
|
|
9
9
|
export declare const TIME_MAP: Map<"day" | "hour" | "minute" | "second" | "millisecond", number>;
|
|
10
|
+
/**
|
|
11
|
+
* Converts a given Date object to an ISO 8601 string that represents the local time.
|
|
12
|
+
*
|
|
13
|
+
* The function adjusts the input date by accounting for the local timezone offset so
|
|
14
|
+
* the resulting ISO string reflects the local time rather than UTC.
|
|
15
|
+
*
|
|
16
|
+
* @param date - The Date object to be converted.
|
|
17
|
+
* @returns An ISO 8601 formatted string representing the local time.
|
|
18
|
+
*/
|
|
19
|
+
export declare function toLocalISOString(date: Date): string;
|
|
10
20
|
/**
|
|
11
21
|
* Returns the data in basic ISO format, e.g., yyyy-mm-dd
|
|
12
22
|
* @example
|
package/dist/datetime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../src/datetime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,QAAQ,mEAMV,CAAC;AAEZ;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE9C;AAED;;;;;;GAMG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,MAAM,oBAE1C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAY5D"}
|
|
1
|
+
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../src/datetime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,QAAQ,mEAMV,CAAC;AAEZ;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,UAE1C;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE9C;AAED;;;;;;GAMG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,MAAM,oBAE1C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAY5D"}
|
package/dist/datetime.js
CHANGED
|
@@ -6,6 +6,18 @@ export const TIME_MAP = new Map([
|
|
|
6
6
|
['second', 1000],
|
|
7
7
|
['millisecond', 1]
|
|
8
8
|
]);
|
|
9
|
+
/**
|
|
10
|
+
* Converts a given Date object to an ISO 8601 string that represents the local time.
|
|
11
|
+
*
|
|
12
|
+
* The function adjusts the input date by accounting for the local timezone offset so
|
|
13
|
+
* the resulting ISO string reflects the local time rather than UTC.
|
|
14
|
+
*
|
|
15
|
+
* @param date - The Date object to be converted.
|
|
16
|
+
* @returns An ISO 8601 formatted string representing the local time.
|
|
17
|
+
*/
|
|
18
|
+
export function toLocalISOString(date) {
|
|
19
|
+
return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().slice(0, -1);
|
|
20
|
+
}
|
|
9
21
|
/**
|
|
10
22
|
* Returns the data in basic ISO format, e.g., yyyy-mm-dd
|
|
11
23
|
* @example
|
package/dist/datetime.test.js
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { parseDuration, sleep, toBasicISOString, yearsPassed } from './datetime.js';
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { parseDuration, sleep, toBasicISOString, toLocalISOString, yearsPassed } from './datetime.js';
|
|
3
|
+
describe('toLocalISOString', () => {
|
|
4
|
+
let getTimezoneOffset;
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
getTimezoneOffset = vi.spyOn(Date.prototype, 'getTimezoneOffset');
|
|
7
|
+
});
|
|
8
|
+
afterEach(() => {
|
|
9
|
+
vi.clearAllMocks();
|
|
10
|
+
});
|
|
11
|
+
it('should return the correct string when the current timezone is is UTC+00:00', () => {
|
|
12
|
+
getTimezoneOffset.mockReturnValueOnce(0);
|
|
13
|
+
expect(toLocalISOString(new Date('2025-01-01T00:00:00.000Z'))).toBe('2025-01-01T00:00:00.000');
|
|
14
|
+
});
|
|
15
|
+
it('should return the correct string when the current timezone is UTC-05:00', () => {
|
|
16
|
+
getTimezoneOffset.mockReturnValueOnce(300);
|
|
17
|
+
expect(toLocalISOString(new Date('2025-01-01T05:00:00.000Z'))).toBe('2025-01-01T00:00:00.000');
|
|
18
|
+
});
|
|
19
|
+
it('should return the correct string when the current timezone is UTC-08:00', () => {
|
|
20
|
+
getTimezoneOffset.mockReturnValueOnce(480);
|
|
21
|
+
expect(toLocalISOString(new Date('2025-01-01T05:00:00.000Z'))).toBe('2024-12-31T21:00:00.000');
|
|
22
|
+
});
|
|
23
|
+
it('should return the correct string when the current timezone is UTC+03:00', () => {
|
|
24
|
+
getTimezoneOffset.mockReturnValueOnce(-180);
|
|
25
|
+
expect(toLocalISOString(new Date('2025-01-01T05:00:00.000Z'))).toBe('2025-01-01T08:00:00.000');
|
|
26
|
+
});
|
|
27
|
+
});
|
|
3
28
|
describe('toBasicISOString', () => {
|
|
4
29
|
it('should return a string of the format yyyy-mm-dd', () => {
|
|
5
30
|
expect(toBasicISOString(new Date(2000, 0, 1))).toBe('2000-01-01');
|
|
Binary file
|
package/dist/object.d.ts
CHANGED
|
@@ -21,4 +21,7 @@ export declare function isObjectLike(value: unknown): value is object;
|
|
|
21
21
|
export declare function isPlainObject(value: unknown): value is {
|
|
22
22
|
[key: string]: unknown;
|
|
23
23
|
};
|
|
24
|
+
export declare function isAllUndefined<T extends {
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}>(obj: T): boolean;
|
|
24
27
|
//# sourceMappingURL=object.d.ts.map
|
package/dist/object.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,QAAQ,CAAC;KACnD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC,CAAC;AAEH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,SAAS,OAAO,GAAG,IAAI,EAC3E,GAAG,EAAE,CAAC,EACN,OAAO,CAAC,EAAE;IAAE,YAAY,EAAE,SAAS,CAAA;CAAE,GACpC,SAAS,SAAS,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAQ9C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAGxD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAUjF"}
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,QAAQ,CAAC;KACnD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC,CAAC;AAEH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,SAAS,OAAO,GAAG,IAAI,EAC3E,GAAG,EAAE,CAAC,EACN,OAAO,CAAC,EAAE;IAAE,YAAY,EAAE,SAAS,CAAA;CAAE,GACpC,SAAS,SAAS,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAQ9C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAGxD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAUjF;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAAE,GAAG,EAAE,CAAC,WAE1E"}
|
package/dist/object.js
CHANGED
package/dist/object.test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { deepFreeze, isObject, isObjectLike, isPlainObject } from './object.js';
|
|
2
|
+
import { deepFreeze, isAllUndefined, isObject, isObjectLike, isPlainObject } from './object.js';
|
|
3
3
|
describe('deepFreeze', () => {
|
|
4
4
|
it('should not allow mutating a primitive value', () => {
|
|
5
5
|
const obj = deepFreeze({ foo: 1 });
|
|
@@ -71,3 +71,14 @@ describe('isPlainObject', () => {
|
|
|
71
71
|
expect(isPlainObject(() => null)).toBe(false);
|
|
72
72
|
});
|
|
73
73
|
});
|
|
74
|
+
describe('isAllUndefined', () => {
|
|
75
|
+
it('should return true for an empty object', () => {
|
|
76
|
+
expect(isAllUndefined({})).toBe(true);
|
|
77
|
+
});
|
|
78
|
+
it('should return true for an object with an undefined property', () => {
|
|
79
|
+
expect(isAllUndefined({ foo: undefined })).toBe(true);
|
|
80
|
+
});
|
|
81
|
+
it('should return true for an object with a defined property', () => {
|
|
82
|
+
expect(isAllUndefined({ bar: null, foo: undefined })).toBe(false);
|
|
83
|
+
});
|
|
84
|
+
});
|
package/dist/range.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../src/range.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../src/range.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;AAEtD,wFAAwF;AACxF,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC"}
|
package/dist/range.js
CHANGED
package/dist/string.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEjE,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEjE,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GACiB,SAAS,CAAC,CAAC,CAAC,CACnF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GAG2C,SAAS,CAAC,CAAC,CAAC,CAC7G;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GACE,YAAY,CAAC,CAAC,CAAC,CACnE;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GACI,UAAU,CAAC,CAAC,CAAC,CACjE;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GACtB,SAAS,CAAC,CAAC,CAAC,CACvC;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GACtB,SAAS,CAAC,CAAC,CAAC,CACvC;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,UAKtE"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@douglasneuroinformatics/libjs",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0
|
|
5
|
-
"packageManager": "pnpm@9.
|
|
4
|
+
"version": "1.2.0",
|
|
5
|
+
"packageManager": "pnpm@9.15.1",
|
|
6
6
|
"description": "A collection of utility functions and types for Node.js and the browser",
|
|
7
7
|
"author": "Joshua Unrau",
|
|
8
8
|
"license": "Apache-2.0",
|
|
@@ -29,25 +29,25 @@
|
|
|
29
29
|
"test:coverage": "vitest run --coverage"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"typescript": "^5.
|
|
32
|
+
"typescript": "^5.5.0"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"type-fest": "^4.
|
|
35
|
+
"type-fest": "^4.30.2"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@commitlint/cli": "^19.
|
|
39
|
-
"@commitlint/config-conventional": "^19.
|
|
40
|
-
"@douglasneuroinformatics/eslint-config": "^
|
|
38
|
+
"@commitlint/cli": "^19.6.1",
|
|
39
|
+
"@commitlint/config-conventional": "^19.6.0",
|
|
40
|
+
"@douglasneuroinformatics/eslint-config": "^5.2.4",
|
|
41
41
|
"@douglasneuroinformatics/prettier-config": "^0.0.1",
|
|
42
42
|
"@douglasneuroinformatics/semantic-release": "^0.0.1",
|
|
43
|
-
"@douglasneuroinformatics/tsconfig": "^1.0.
|
|
44
|
-
"@vitest/coverage-v8": "^1.
|
|
45
|
-
"eslint": "^
|
|
46
|
-
"husky": "^9.
|
|
47
|
-
"prettier": "^3.2
|
|
48
|
-
"typedoc": "^0.
|
|
49
|
-
"typescript": "
|
|
50
|
-
"vitest": "^1.
|
|
43
|
+
"@douglasneuroinformatics/tsconfig": "^1.0.2",
|
|
44
|
+
"@vitest/coverage-v8": "^2.1.8",
|
|
45
|
+
"eslint": "^9.17.0",
|
|
46
|
+
"husky": "^9.1.7",
|
|
47
|
+
"prettier": "^3.4.2",
|
|
48
|
+
"typedoc": "^0.27.5",
|
|
49
|
+
"typescript": "5.5.x",
|
|
50
|
+
"vitest": "^2.1.8"
|
|
51
51
|
},
|
|
52
52
|
"commitlint": {
|
|
53
53
|
"extends": [
|
|
Binary file
|