@douglasneuroinformatics/libjs 0.0.1 → 0.0.3
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 +1 -0
- package/dist/datetime.d.ts.map +1 -0
- package/dist/datetime.js +1 -1
- package/dist/datetime.test.d.ts +1 -0
- package/dist/datetime.test.d.ts.map +1 -0
- package/dist/datetime.test.js +9 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/object.d.ts +1 -0
- package/dist/object.d.ts.map +1 -0
- package/dist/object.test.d.ts +2 -0
- package/dist/object.test.d.ts.map +1 -0
- package/dist/object.test.js +25 -0
- package/dist/random.d.ts +1 -0
- package/dist/random.d.ts.map +1 -0
- package/dist/random.test.d.ts +1 -0
- package/dist/random.test.d.ts.map +1 -0
- package/dist/random.test.js +15 -1
- package/dist/range.d.ts +1 -0
- package/dist/range.d.ts.map +1 -0
- package/dist/range.test.d.ts +1 -0
- package/dist/range.test.d.ts.map +1 -0
- package/dist/range.test.js +3 -0
- package/dist/string.d.ts +3 -0
- package/dist/string.d.ts.map +1 -0
- package/dist/string.js +6 -0
- package/dist/string.test.d.ts +1 -0
- package/dist/string.test.d.ts.map +1 -0
- package/dist/string.test.js +15 -1
- package/package.json +6 -1
package/dist/datetime.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../src/datetime.ts"],"names":[],"mappings":"AAAA;;;;;;;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"}
|
package/dist/datetime.js
CHANGED
package/dist/datetime.test.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datetime.test.d.ts","sourceRoot":"","sources":["../src/datetime.test.ts"],"names":[],"mappings":""}
|
package/dist/datetime.test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { toBasicISOString, yearsPassed } from './datetime.js';
|
|
2
|
+
import { sleep, toBasicISOString, yearsPassed } from './datetime.js';
|
|
3
3
|
describe('toBasicISOString', () => {
|
|
4
4
|
it('should return a string of the format yyyy-mm-dd', () => {
|
|
5
5
|
expect(toBasicISOString(new Date(2000, 0, 1))).toBe('2000-01-01');
|
|
@@ -17,3 +17,11 @@ describe('yearsPassed', () => {
|
|
|
17
17
|
expect(yearsPassed(date)).toBe(1);
|
|
18
18
|
});
|
|
19
19
|
});
|
|
20
|
+
describe('sleep', () => {
|
|
21
|
+
it('should wait for at least the specified time', async () => {
|
|
22
|
+
const start = Date.now();
|
|
23
|
+
await sleep(0.2);
|
|
24
|
+
const end = Date.now();
|
|
25
|
+
expect(end - start).toBeGreaterThanOrEqual(200);
|
|
26
|
+
});
|
|
27
|
+
});
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
package/dist/object.d.ts
CHANGED
|
@@ -0,0 +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,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.test.d.ts","sourceRoot":"","sources":["../src/object.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { deepFreeze } from './object.js';
|
|
3
|
+
describe('deepFreeze', () => {
|
|
4
|
+
it('should not allow mutating a primitive value', () => {
|
|
5
|
+
const obj = deepFreeze({ foo: 1 });
|
|
6
|
+
expect(() => {
|
|
7
|
+
// @ts-expect-error - check runtime behavior
|
|
8
|
+
obj.foo = 2;
|
|
9
|
+
}).toThrow();
|
|
10
|
+
});
|
|
11
|
+
it('should not allow mutating a nested object', () => {
|
|
12
|
+
const obj = deepFreeze({ foo: { bar: 1 } });
|
|
13
|
+
expect(() => {
|
|
14
|
+
// @ts-expect-error - check runtime behavior
|
|
15
|
+
obj.foo.bar = 2;
|
|
16
|
+
}).toThrow();
|
|
17
|
+
});
|
|
18
|
+
it('should not allow mutating a deeply nested array', () => {
|
|
19
|
+
const obj = deepFreeze({ foo: { bar: [1, 2, 3] } });
|
|
20
|
+
expect(() => {
|
|
21
|
+
// @ts-expect-error - check runtime behavior
|
|
22
|
+
obj.foo.bar[0] = 2;
|
|
23
|
+
}).toThrow();
|
|
24
|
+
});
|
|
25
|
+
});
|
package/dist/random.d.ts
CHANGED
|
@@ -4,3 +4,4 @@ export declare function randomInt(min: number, max: number): number;
|
|
|
4
4
|
export declare function randomDate(start: Date, end: Date): Date;
|
|
5
5
|
/** Returns a random value from the array */
|
|
6
6
|
export declare function randomValue<T>(arr: T[]): T;
|
|
7
|
+
//# sourceMappingURL=random.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAKjD;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,QAKhD;AAED,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAKtC"}
|
package/dist/random.test.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random.test.d.ts","sourceRoot":"","sources":["../src/random.test.ts"],"names":[],"mappings":""}
|
package/dist/random.test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { randomDate, randomInt } from './random.js';
|
|
2
|
+
import { randomDate, randomInt, randomValue } from './random.js';
|
|
3
3
|
describe('randomInt', () => {
|
|
4
4
|
it('should return an integer value within the range', () => {
|
|
5
5
|
const min = 5;
|
|
@@ -37,3 +37,17 @@ describe('randomDate', () => {
|
|
|
37
37
|
expect(() => randomDate(new Date(), new Date(2000, 0, 1))).toThrow();
|
|
38
38
|
});
|
|
39
39
|
});
|
|
40
|
+
describe('randomValue', () => {
|
|
41
|
+
it('should throw if given an empty array', () => {
|
|
42
|
+
expect(() => randomValue([])).toThrow();
|
|
43
|
+
});
|
|
44
|
+
it('should return a value in the array', () => {
|
|
45
|
+
const arr = [-10, -20, -30];
|
|
46
|
+
expect(arr.includes(randomValue(arr)));
|
|
47
|
+
});
|
|
48
|
+
it('should not mutate the array', () => {
|
|
49
|
+
const arr = [-10, -20, -30];
|
|
50
|
+
randomValue(arr);
|
|
51
|
+
expect(arr).toMatchObject([-10, -20, -30]);
|
|
52
|
+
});
|
|
53
|
+
});
|
package/dist/range.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../src/range.ts"],"names":[],"mappings":"AAEA,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.test.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.test.d.ts","sourceRoot":"","sources":["../src/range.test.ts"],"names":[],"mappings":""}
|
package/dist/range.test.js
CHANGED
package/dist/string.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { CamelCase, SnakeCase } from 'type-fest';
|
|
2
2
|
export declare function camelToSnakeCase<T extends string>(s: T): SnakeCase<T>;
|
|
3
3
|
export declare function snakeToCamelCase<T extends string>(s: T): CamelCase<T>;
|
|
4
|
+
export declare function uncapitalize<T extends string>(s: T): Uncapitalize<T>;
|
|
5
|
+
export declare function capitalize<T extends string>(s: T): Capitalize<T>;
|
|
6
|
+
//# sourceMappingURL=string.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,gBAEtD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,gBAItD;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,mBAElD;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,iBAEhD"}
|
package/dist/string.js
CHANGED
|
@@ -6,3 +6,9 @@ export function snakeToCamelCase(s) {
|
|
|
6
6
|
.toLowerCase()
|
|
7
7
|
.replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace('-', '').replace('_', ''));
|
|
8
8
|
}
|
|
9
|
+
export function uncapitalize(s) {
|
|
10
|
+
return (s.charAt(0).toLowerCase() + s.slice(1));
|
|
11
|
+
}
|
|
12
|
+
export function capitalize(s) {
|
|
13
|
+
return (s.charAt(0).toUpperCase() + s.slice(1));
|
|
14
|
+
}
|
package/dist/string.test.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.test.d.ts","sourceRoot":"","sources":["../src/string.test.ts"],"names":[],"mappings":""}
|
package/dist/string.test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { camelToSnakeCase, snakeToCamelCase } from './string.js';
|
|
2
|
+
import { camelToSnakeCase, capitalize, snakeToCamelCase, uncapitalize } from './string.js';
|
|
3
3
|
describe('camelToSnakeCase', () => {
|
|
4
4
|
it('should convert from camel to snake case ', () => {
|
|
5
5
|
expect(camelToSnakeCase('toSnakeCase')).toBe('to_snake_case');
|
|
@@ -14,3 +14,17 @@ describe('snakeToCamelCase', () => {
|
|
|
14
14
|
expect(camelToSnakeCase('')).toBe('');
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
|
+
describe('capitalize', () => {
|
|
18
|
+
it('should convert the first letter of the string to a capital letter', () => {
|
|
19
|
+
expect(capitalize('foo')).toBe('Foo');
|
|
20
|
+
expect(capitalize('FOO')).toBe('FOO');
|
|
21
|
+
expect(capitalize('foo bar')).toBe('Foo bar');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('uncapitalize', () => {
|
|
25
|
+
it('should convert the first letter of the string to a lowercase letter', () => {
|
|
26
|
+
expect(uncapitalize('Foo')).toBe('foo');
|
|
27
|
+
expect(uncapitalize('foo')).toBe('foo');
|
|
28
|
+
expect(uncapitalize('Foo bar')).toBe('foo bar');
|
|
29
|
+
});
|
|
30
|
+
});
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@douglasneuroinformatics/libjs",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.3",
|
|
5
5
|
"packageManager": "pnpm@8.15.3",
|
|
6
6
|
"description": "A collection of utility functions and types for Node.js and the browser",
|
|
7
|
+
"author": {
|
|
8
|
+
"name": "Douglas Neuroinformatics",
|
|
9
|
+
"email": "support@douglasneuroinformatics.ca"
|
|
10
|
+
},
|
|
7
11
|
"license": "LGPL-3.0",
|
|
8
12
|
"homepage": "https://github.com/DouglasNeuroInformatics/libjs/#readme",
|
|
9
13
|
"repository": {
|
|
@@ -28,6 +32,7 @@
|
|
|
28
32
|
"@douglasneuroinformatics/eslint-config": "^4.0.0",
|
|
29
33
|
"@vitest/coverage-v8": "^1.3.1",
|
|
30
34
|
"eslint": "^8.57.0",
|
|
35
|
+
"husky": "^9.0.11",
|
|
31
36
|
"prettier": "^3.2.5",
|
|
32
37
|
"typedoc": "^0.25.2",
|
|
33
38
|
"typescript": "~5.3.3",
|