superjs-core 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/type/index.ts"],"sourcesContent":["/**\n * Checks if a value is a string.\n */\nexport function isString(value: unknown): value is string {\n return typeof value === 'string'\n}\n\n/**\n * Checks if a value is a number (not NaN, not Infinity).\n */\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value)\n}\n\n/**\n * Checks if a value is a boolean.\n */\nexport function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean'\n}\n\n/**\n * Checks if a value is a plain object (not null, not array, typeof 'object').\n */\nexport function isObject(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n\n/**\n * Checks if a value is an array.\n */\nexport function isArray(value: unknown): value is unknown[] {\n return Array.isArray(value)\n}\n\n/**\n * Checks if a value is a function.\n */\nexport function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function'\n}\n\n/**\n * Checks if a value is a Date.\n */\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date && !Number.isNaN(value.getTime())\n}\n\n/**\n * Checks if a value is a RegExp.\n */\nexport function isRegExp(value: unknown): value is RegExp {\n return value instanceof RegExp\n}\n\n/**\n * Checks if a value is a Map.\n */\nexport function isMap(value: unknown): value is Map<unknown, unknown> {\n return value instanceof Map\n}\n\n/**\n * Checks if a value is a Set.\n */\nexport function isSet(value: unknown): value is Set<unknown> {\n return value instanceof Set\n}\n\n/**\n * Checks if a value is a Promise.\n */\nexport function isPromise(value: unknown): value is Promise<unknown> {\n return value instanceof Promise\n}\n\n/**\n * Checks if a value is null.\n */\nexport function isNull(value: unknown): value is null {\n return value === null\n}\n\n/**\n * Checks if a value is undefined.\n */\nexport function isUndefined(value: unknown): value is undefined {\n return value === undefined\n}\n\n/**\n * Checks if a value is null or undefined.\n */\nexport function isNil(value: unknown): value is null | undefined {\n return value === null || value === undefined\n}\n\n/**\n * Checks if a value is empty.\n * Works for strings, arrays, objects, Map, and Set.\n */\nexport function isEmpty(value: unknown): boolean {\n if (value === null || value === undefined) return true\n if (typeof value === 'string') return value.length === 0\n if (Array.isArray(value)) return value.length === 0\n if (value instanceof Map || value instanceof Set) return value.size === 0\n if (typeof value === 'object') return Object.keys(value as Record<string, unknown>).length === 0\n return false\n}\n\n/**\n * Asserts that a value is defined (not null or undefined).\n * Throws if the value is null or undefined.\n */\nexport function assertDefined<T>(value: T, message?: string): asserts value is NonNullable<T> {\n if (value === null || value === undefined) {\n throw new Error(message ?? 'Expected value to be defined')\n }\n}\n\n/**\n * Asserts that a value matches a type guard. Throws if it doesn't.\n */\nexport function assertType<T>(value: unknown, guard: (v: unknown) => v is T, message?: string): asserts value is T {\n if (!guard(value)) {\n throw new Error(message ?? 'Value does not match expected type')\n }\n}\n\n/**\n * Wraps a value in an array if it is not already one.\n */\nexport function ensureArray<T>(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value]\n}\n\n/**\n * Alias for ensureArray.\n */\nexport function castArray<T>(value: T | T[]): T[] {\n return ensureArray(value)\n}\n\n/**\n * Returns a string representation of the value's type.\n *\n * Possible values: \"string\", \"number\", \"boolean\", \"array\", \"object\", \"function\",\n * \"date\", \"regexp\", \"map\", \"set\", \"promise\", \"null\", \"undefined\", \"nan\", \"infinity\"\n */\nexport function getType(value: unknown): string {\n if (value === null) return 'null'\n if (value === undefined) return 'undefined'\n if (typeof value === 'string') return 'string'\n if (typeof value === 'boolean') return 'boolean'\n if (typeof value === 'function') return 'function'\n if (typeof value === 'number') {\n if (Number.isNaN(value)) return 'nan'\n if (!Number.isFinite(value)) return 'infinity'\n return 'number'\n }\n if (Array.isArray(value)) return 'array'\n if (value instanceof Date) return 'date'\n if (value instanceof RegExp) return 'regexp'\n if (value instanceof Map) return 'map'\n if (value instanceof Set) return 'set'\n if (value instanceof Promise) return 'promise'\n return 'object'\n}\n"],"mappings":";AAGO,SAAS,SAAS,OAAiC;AACxD,SAAO,OAAO,UAAU;AAC1B;AAKO,SAAS,SAAS,OAAiC;AACxD,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK;AAC3D;AAKO,SAAS,UAAU,OAAkC;AAC1D,SAAO,OAAO,UAAU;AAC1B;AAKO,SAAS,SAAS,OAAkD;AACzE,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAKO,SAAS,QAAQ,OAAoC;AAC1D,SAAO,MAAM,QAAQ,KAAK;AAC5B;AAKO,SAAS,WAAW,OAA0D;AACnF,SAAO,OAAO,UAAU;AAC1B;AAKO,SAAS,OAAO,OAA+B;AACpD,SAAO,iBAAiB,QAAQ,CAAC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC/D;AAKO,SAAS,SAAS,OAAiC;AACxD,SAAO,iBAAiB;AAC1B;AAKO,SAAS,MAAM,OAAgD;AACpE,SAAO,iBAAiB;AAC1B;AAKO,SAAS,MAAM,OAAuC;AAC3D,SAAO,iBAAiB;AAC1B;AAKO,SAAS,UAAU,OAA2C;AACnE,SAAO,iBAAiB;AAC1B;AAKO,SAAS,OAAO,OAA+B;AACpD,SAAO,UAAU;AACnB;AAKO,SAAS,YAAY,OAAoC;AAC9D,SAAO,UAAU;AACnB;AAKO,SAAS,MAAM,OAA2C;AAC/D,SAAO,UAAU,QAAQ,UAAU;AACrC;AAMO,SAAS,QAAQ,OAAyB;AAC/C,MAAI,UAAU,QAAQ,UAAU,OAAW,QAAO;AAClD,MAAI,OAAO,UAAU,SAAU,QAAO,MAAM,WAAW;AACvD,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,WAAW;AAClD,MAAI,iBAAiB,OAAO,iBAAiB,IAAK,QAAO,MAAM,SAAS;AACxE,MAAI,OAAO,UAAU,SAAU,QAAO,OAAO,KAAK,KAAgC,EAAE,WAAW;AAC/F,SAAO;AACT;AAMO,SAAS,cAAiB,OAAU,SAAmD;AAC5F,MAAI,UAAU,QAAQ,UAAU,QAAW;AACzC,UAAM,IAAI,MAAM,WAAW,8BAA8B;AAAA,EAC3D;AACF;AAKO,SAAS,WAAc,OAAgB,OAA+B,SAAsC;AACjH,MAAI,CAAC,MAAM,KAAK,GAAG;AACjB,UAAM,IAAI,MAAM,WAAW,oCAAoC;AAAA,EACjE;AACF;AAKO,SAAS,YAAe,OAAqB;AAClD,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;AAKO,SAAS,UAAa,OAAqB;AAChD,SAAO,YAAY,KAAK;AAC1B;AAQO,SAAS,QAAQ,OAAwB;AAC9C,MAAI,UAAU,KAAM,QAAO;AAC3B,MAAI,UAAU,OAAW,QAAO;AAChC,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI,OAAO,UAAU,UAAW,QAAO;AACvC,MAAI,OAAO,UAAU,WAAY,QAAO;AACxC,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,OAAO,MAAM,KAAK,EAAG,QAAO;AAChC,QAAI,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACpC,WAAO;AAAA,EACT;AACA,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO;AACjC,MAAI,iBAAiB,KAAM,QAAO;AAClC,MAAI,iBAAiB,OAAQ,QAAO;AACpC,MAAI,iBAAiB,IAAK,QAAO;AACjC,MAAI,iBAAiB,IAAK,QAAO;AACjC,MAAI,iBAAiB,QAAS,QAAO;AACrC,SAAO;AACT;","names":[]}
package/package.json ADDED
@@ -0,0 +1,103 @@
1
+ {
2
+ "name": "superjs-core",
3
+ "version": "0.1.0",
4
+ "description": "Zero-dependency JavaScript standard library — core, math, date, collection, string, async, io, & type utilities",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./core": {
15
+ "import": "./dist/core/index.js",
16
+ "types": "./dist/core/index.d.ts"
17
+ },
18
+ "./math": {
19
+ "import": "./dist/math/index.js",
20
+ "types": "./dist/math/index.d.ts"
21
+ },
22
+ "./date": {
23
+ "import": "./dist/date/index.js",
24
+ "types": "./dist/date/index.d.ts"
25
+ },
26
+ "./collection": {
27
+ "import": "./dist/collection/index.js",
28
+ "types": "./dist/collection/index.d.ts"
29
+ },
30
+ "./string": {
31
+ "import": "./dist/string/index.js",
32
+ "types": "./dist/string/index.d.ts"
33
+ },
34
+ "./async": {
35
+ "import": "./dist/async/index.js",
36
+ "types": "./dist/async/index.d.ts"
37
+ },
38
+ "./io": {
39
+ "import": "./dist/io/index.js",
40
+ "types": "./dist/io/index.d.ts"
41
+ },
42
+ "./type": {
43
+ "import": "./dist/type/index.js",
44
+ "types": "./dist/type/index.d.ts"
45
+ },
46
+ "./crypto": {
47
+ "import": "./dist/crypto/index.js",
48
+ "types": "./dist/crypto/index.d.ts"
49
+ },
50
+ "./path": {
51
+ "import": "./dist/path/index.js",
52
+ "types": "./dist/path/index.d.ts"
53
+ }
54
+ },
55
+ "files": [
56
+ "dist"
57
+ ],
58
+ "scripts": {
59
+ "build": "tsup",
60
+ "dev": "tsup --watch",
61
+ "test": "vitest run",
62
+ "test:watch": "vitest",
63
+ "lint": "tsc --noEmit",
64
+ "clean": "rm -rf dist",
65
+ "size": "size-limit",
66
+ "bench": "vitest bench"
67
+ },
68
+ "devDependencies": {
69
+ "@size-limit/file": "^11.0.0",
70
+ "@types/node": "^26.0.1",
71
+ "size-limit": "^11.0.0",
72
+ "tsup": "^8.3.0",
73
+ "typescript": "^5.7.0",
74
+ "vitest": "^2.1.0"
75
+ },
76
+ "size-limit": [
77
+ {
78
+ "path": "dist/index.js",
79
+ "limit": "5 KB"
80
+ }
81
+ ],
82
+ "keywords": [
83
+ "utilities",
84
+ "standard-library",
85
+ "typescript",
86
+ "zero-dependency"
87
+ ],
88
+ "publishConfig": {
89
+ "access": "public"
90
+ },
91
+ "repository": {
92
+ "type": "git",
93
+ "url": "git+https://github.com/superdevids/superjs.git"
94
+ },
95
+ "bugs": {
96
+ "url": "https://github.com/superdevids/superjs/issues"
97
+ },
98
+ "homepage": "https://github.com/superdevids/superjs#readme",
99
+ "license": "MIT",
100
+ "engines": {
101
+ "node": ">=18.0.0"
102
+ }
103
+ }