@estjs/shared 0.0.11 → 0.0.12

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/shared.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @estjs/shared v0.0.11
2
+ * @estjs/shared v0.0.12
3
3
  * (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
4
4
  * @license MIT
5
5
  **/
@@ -32,10 +32,12 @@ __export(src_exports, {
32
32
  error: () => error,
33
33
  escape: () => escape,
34
34
  extend: () => extend,
35
+ generateUniqueId: () => generateUniqueId,
35
36
  hasChanged: () => hasChanged,
36
37
  hasOwn: () => hasOwn,
37
38
  info: () => info,
38
39
  isArray: () => isArray,
40
+ isBrowser: () => isBrowser,
39
41
  isExclude: () => isExclude,
40
42
  isFalsy: () => isFalsy,
41
43
  isFunction: () => isFunction,
@@ -43,10 +45,12 @@ __export(src_exports, {
43
45
  isMap: () => isMap,
44
46
  isNil: () => isNil,
45
47
  isObject: () => isObject,
48
+ isPlainObject: () => isPlainObject,
46
49
  isPrimitive: () => isPrimitive,
47
50
  isPromise: () => isPromise,
48
51
  isSet: () => isSet,
49
52
  isString: () => isString,
53
+ isStringNumber: () => isStringNumber,
50
54
  isSymbol: () => isSymbol,
51
55
  isWeakMap: () => isWeakMap,
52
56
  isWeakSet: () => isWeakSet,
@@ -96,6 +100,13 @@ function isHTMLElement(obj) {
96
100
  if (!obj) return false;
97
101
  return obj && typeof obj === "object" && obj.nodeType === 1 && typeof obj.nodeName === "string";
98
102
  }
103
+ var isPlainObject = (val) => _toString.call(val) === "[object Object]";
104
+ function isStringNumber(val) {
105
+ if (!isString(val)) {
106
+ return false;
107
+ }
108
+ return !Number.isNaN(Number(val));
109
+ }
99
110
 
100
111
  // src/comm.ts
101
112
  var _toString = Object.prototype.toString;
@@ -134,6 +145,18 @@ function escape(str) {
134
145
  function isExclude(key, exclude) {
135
146
  return Array.isArray(exclude) ? exclude.includes(key) : isFunction(exclude) ? exclude(key) : false;
136
147
  }
148
+ function generateUniqueId() {
149
+ const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
150
+ let result = "";
151
+ const charactersLength = characters.length;
152
+ for (let i = 0; i < 8; i++) {
153
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
154
+ }
155
+ return result;
156
+ }
157
+ function isBrowser() {
158
+ return typeof window !== "undefined" && typeof document !== "undefined";
159
+ }
137
160
 
138
161
  // src/name.ts
139
162
  var kebabCase = (string) => {
@@ -168,10 +191,12 @@ function error(msg, ...args) {
168
191
  error,
169
192
  escape,
170
193
  extend,
194
+ generateUniqueId,
171
195
  hasChanged,
172
196
  hasOwn,
173
197
  info,
174
198
  isArray,
199
+ isBrowser,
175
200
  isExclude,
176
201
  isFalsy,
177
202
  isFunction,
@@ -179,10 +204,12 @@ function error(msg, ...args) {
179
204
  isMap,
180
205
  isNil,
181
206
  isObject,
207
+ isPlainObject,
182
208
  isPrimitive,
183
209
  isPromise,
184
210
  isSet,
185
211
  isString,
212
+ isStringNumber,
186
213
  isSymbol,
187
214
  isWeakMap,
188
215
  isWeakSet,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/is.ts","../src/comm.ts","../src/name.ts","../src/console.ts"],"sourcesContent":["export {\n noop,\n _toString,\n extend,\n hasChanged,\n coerceArray,\n hasOwn,\n startsWith,\n escape,\n isExclude,\n ExcludeType,\n} from './comm';\nexport {\n isString,\n isObject,\n isArray,\n isMap,\n isSet,\n isWeakMap,\n isWeakSet,\n isFunction,\n isNil,\n isPromise,\n isSymbol,\n isFalsy,\n isPrimitive,\n isHTMLElement,\n} from './is';\nexport { camelCase, kebabCase, capitalizeFirstLetter } from './name';\nexport { warn, info, error } from './console';\n","import { _toString } from './comm';\n\nexport const isObject = (val: unknown): val is Record<any, any> =>\n val !== null && typeof val === 'object';\nexport function isPromise(val: any): boolean {\n return _toString.call(val) === '[object Promise]';\n}\n\nexport const isArray = Array.isArray;\n\nexport function isString(val: unknown): val is string {\n return typeof val === 'string';\n}\nexport function isNull(val: any): val is null {\n return val === null;\n}\nexport function isSymbol(val: unknown): val is symbol {\n return typeof val === 'symbol';\n}\n\nexport function isSet(val: any): val is Set<any> {\n return _toString.call(val) === '[object Set]';\n}\nexport function isWeakMap(val: any): val is WeakMap<any, any> {\n return _toString.call(val) === '[object WeakMap]';\n}\nexport function isWeakSet(val: any): val is WeakSet<any> {\n return _toString.call(val) === '[object WeakSet]';\n}\n\nexport function isMap(val: unknown): val is Map<any, any> {\n return _toString.call(val) === '[object Map]';\n}\nexport function isNil(x: any): x is null | undefined {\n return x === null || x === undefined;\n}\n\nexport const isFunction = (val: unknown): val is Function => typeof val === 'function';\n\nexport function isFalsy(x: any): x is false | null | undefined {\n return x === false || x === null || x === undefined;\n}\n\nexport const isPrimitive = (\n val: unknown,\n): val is string | number | boolean | symbol | null | undefined =>\n ['string', 'number', 'boolean', 'symbol', 'undefined'].includes(typeof val) || isNull(val);\n\nexport function isHTMLElement(obj) {\n if (!obj) return false;\n return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n}\n","import { isFunction, isString } from './is';\n\nexport const _toString = Object.prototype.toString;\nexport const extend = Object.assign;\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nexport const hasOwn = (val: object, key: string | symbol): key is keyof typeof val =>\n hasOwnProperty.call(val, key);\n\nexport function coerceArray<T>(data: T | T[]): T[] {\n return Array.isArray(data) ? (data.flat() as T[]) : [data];\n}\nexport const hasChanged = (value, oldValue) =>\n value !== oldValue && (value === value || oldValue === oldValue);\nexport const noop = Function.prototype as () => void;\n\n/**\n * A function that checks if a string starts with a specific substring.\n * indexOf faster under normal circumstances\n * @see https://www.measurethat.net/Benchmarks/Show/12350/0/startswith-vs-test-vs-match-vs-indexof#latest_results_block\n\n * @param {string} str - The input string to check.\n * @param {string} searchString - The substring to check for at the beginning of the input string.\n * @return {boolean} Returns true if the input string starts with the specified substring, otherwise false.\n */\nexport function startsWith(str, searchString) {\n if (!isString(str)) {\n return false;\n }\n return str.indexOf(searchString) === 0;\n}\n\n/**\n * Escapes special HTML characters in a string.\n * @param str - The string to escape.\n * @returns The escaped string.\n */\nexport function escape(str: string): string {\n return str.replaceAll(/[\"&'<>]/g, char => {\n switch (char) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n case \"'\":\n return '&#039;';\n default:\n return char;\n }\n });\n}\n\nexport type ExcludeType = ((key: string | symbol) => boolean) | (string | symbol)[];\n\n/**\n * Checks if a key should be excluded based on the provided exclude criteria.\n * @param key - The key to check.\n * @param exclude - The exclusion criteria.\n * @returns True if the key should be excluded, otherwise false.\n */\nexport function isExclude(key: string | symbol, exclude?: ExcludeType): boolean {\n return Array.isArray(exclude)\n ? exclude.includes(key)\n : isFunction(exclude)\n ? exclude(key)\n : false;\n}\n","export const kebabCase = (string: string): string => {\n return string.replaceAll(/[A-Z]+/g, (match, offset) => {\n return `${offset > 0 ? '-' : ''}${match.toLocaleLowerCase()}`;\n });\n};\n\nexport const camelCase = (str: string): string => {\n const s = str.replaceAll(/[\\s_-]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''));\n return s[0].toLowerCase() + s.slice(1);\n};\n/**\n * Capitalizes the first letter of a string.\n *\n * @param {string} inputString - The input string to capitalize the first letter.\n * @return {string} The string with the first letter capitalized.\n */\nexport const capitalizeFirstLetter = (inputString: string): string => {\n return inputString.charAt(0).toUpperCase() + inputString.slice(1);\n};\n","export function warn(msg: string, ..._args: any[]): void;\nexport function warn(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.warn.apply(console, [`[Essor warn]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function info(msg: string, ..._args: any[]): void;\nexport function info(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread, no-console\n console.info.apply(console, [`[Essor info]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function error(msg: string, ..._args: any[]): void;\nexport function error(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.error.apply(console, [`[Essor error]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/is.ts","../src/comm.ts","../src/name.ts","../src/console.ts"],"sourcesContent":["export {\n noop,\n _toString,\n extend,\n hasChanged,\n coerceArray,\n hasOwn,\n startsWith,\n escape,\n isExclude,\n ExcludeType,\n generateUniqueId,\n isBrowser,\n} from './comm';\nexport {\n isString,\n isObject,\n isArray,\n isMap,\n isSet,\n isWeakMap,\n isWeakSet,\n isFunction,\n isNil,\n isPromise,\n isSymbol,\n isFalsy,\n isPlainObject,\n isPrimitive,\n isHTMLElement,\n isStringNumber,\n StringNumber,\n} from './is';\nexport { camelCase, kebabCase, capitalizeFirstLetter } from './name';\nexport { warn, info, error } from './console';\n","import { _toString } from './comm';\n\nexport const isObject = (val: unknown): val is Record<any, any> =>\n val !== null && typeof val === 'object';\nexport function isPromise(val: any): val is Promise<any> {\n return _toString.call(val) === '[object Promise]';\n}\n\nexport const isArray = Array.isArray;\n\nexport function isString(val: unknown): val is string {\n return typeof val === 'string';\n}\nexport function isNull(val: any): val is null {\n return val === null;\n}\nexport function isSymbol(val: unknown): val is symbol {\n return typeof val === 'symbol';\n}\n\nexport function isSet(val: any): val is Set<any> {\n return _toString.call(val) === '[object Set]';\n}\nexport function isWeakMap(val: any): val is WeakMap<any, any> {\n return _toString.call(val) === '[object WeakMap]';\n}\nexport function isWeakSet(val: any): val is WeakSet<any> {\n return _toString.call(val) === '[object WeakSet]';\n}\n\nexport function isMap(val: unknown): val is Map<any, any> {\n return _toString.call(val) === '[object Map]';\n}\nexport function isNil(x: any): x is null | undefined {\n return x === null || x === undefined;\n}\n\nexport const isFunction = (val: unknown): val is Function => typeof val === 'function';\n\nexport function isFalsy(x: any): x is false | null | undefined {\n return x === false || x === null || x === undefined;\n}\n\nexport const isPrimitive = (\n val: unknown,\n): val is string | number | boolean | symbol | null | undefined =>\n ['string', 'number', 'boolean', 'symbol', 'undefined'].includes(typeof val) || isNull(val);\n\nexport function isHTMLElement(obj) {\n if (!obj) return false;\n return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n}\n\nexport const isPlainObject = (val: unknown): val is object =>\n _toString.call(val) === '[object Object]';\n\nexport type StringNumber = `${number}`;\nexport function isStringNumber(val: unknown): val is StringNumber {\n if (!isString(val)) {\n return false;\n }\n return !Number.isNaN(Number(val));\n}\n","import { isFunction, isString } from './is';\n\nexport const _toString = Object.prototype.toString;\nexport const extend = Object.assign;\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nexport const hasOwn = (val: object, key: string | symbol): key is keyof typeof val =>\n hasOwnProperty.call(val, key);\n\nexport function coerceArray<T>(data: T | T[]): T[] {\n return Array.isArray(data) ? (data.flat() as T[]) : [data];\n}\nexport const hasChanged = (value, oldValue) =>\n value !== oldValue && (value === value || oldValue === oldValue);\nexport const noop = Function.prototype as () => void;\n\n/**\n * A function that checks if a string starts with a specific substring.\n * indexOf faster under normal circumstances\n * @see https://www.measurethat.net/Benchmarks/Show/12350/0/startswith-vs-test-vs-match-vs-indexof#latest_results_block\n\n * @param {string} str - The input string to check.\n * @param {string} searchString - The substring to check for at the beginning of the input string.\n * @return {boolean} Returns true if the input string starts with the specified substring, otherwise false.\n */\nexport function startsWith(str, searchString) {\n if (!isString(str)) {\n return false;\n }\n return str.indexOf(searchString) === 0;\n}\n\n/**\n * Escapes special HTML characters in a string.\n * @param str - The string to escape.\n * @returns The escaped string.\n */\nexport function escape(str: string): string {\n return str.replaceAll(/[\"&'<>]/g, char => {\n switch (char) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n case \"'\":\n return '&#039;';\n default:\n return char;\n }\n });\n}\n\nexport type ExcludeType = ((key: string | symbol) => boolean) | (string | symbol)[];\n\n/**\n * Checks if a key should be excluded based on the provided exclude criteria.\n * @param key - The key to check.\n * @param exclude - The exclusion criteria.\n * @returns True if the key should be excluded, otherwise false.\n */\nexport function isExclude(key: string | symbol, exclude?: ExcludeType): boolean {\n return Array.isArray(exclude)\n ? exclude.includes(key)\n : isFunction(exclude)\n ? exclude(key)\n : false;\n}\n\n/**\n * Generates a unique random 8 character string ID.\n * The generated IDs only contain alphanumeric characters.\n * @returns A unique random 8 character string ID.\n */\nexport function generateUniqueId() {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result = '';\n const charactersLength = characters.length;\n for (let i = 0; i < 8; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n\n/**\n * Checks if the current environment is a browser.\n * @returns True if the current environment is a browser, otherwise false.\n */\nexport function isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n","export const kebabCase = (string: string): string => {\n return string.replaceAll(/[A-Z]+/g, (match, offset) => {\n return `${offset > 0 ? '-' : ''}${match.toLocaleLowerCase()}`;\n });\n};\n\nexport const camelCase = (str: string): string => {\n const s = str.replaceAll(/[\\s_-]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''));\n return s[0].toLowerCase() + s.slice(1);\n};\n/**\n * Capitalizes the first letter of a string.\n *\n * @param {string} inputString - The input string to capitalize the first letter.\n * @return {string} The string with the first letter capitalized.\n */\nexport const capitalizeFirstLetter = (inputString: string): string => {\n return inputString.charAt(0).toUpperCase() + inputString.slice(1);\n};\n","export function warn(msg: string, ..._args: any[]): void;\nexport function warn(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.warn.apply(console, [`[Essor warn]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function info(msg: string, ..._args: any[]): void;\nexport function info(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread, no-console\n console.info.apply(console, [`[Essor info]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function error(msg: string, ..._args: any[]): void;\nexport function error(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.error.apply(console, [`[Essor error]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n"],"mappings":"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","names":[]}
package/dist/shared.d.cts CHANGED
@@ -33,9 +33,20 @@ type ExcludeType = ((key: string | symbol) => boolean) | (string | symbol)[];
33
33
  * @returns True if the key should be excluded, otherwise false.
34
34
  */
35
35
  declare function isExclude(key: string | symbol, exclude?: ExcludeType): boolean;
36
+ /**
37
+ * Generates a unique random 8 character string ID.
38
+ * The generated IDs only contain alphanumeric characters.
39
+ * @returns A unique random 8 character string ID.
40
+ */
41
+ declare function generateUniqueId(): string;
42
+ /**
43
+ * Checks if the current environment is a browser.
44
+ * @returns True if the current environment is a browser, otherwise false.
45
+ */
46
+ declare function isBrowser(): boolean;
36
47
 
37
48
  declare const isObject: (val: unknown) => val is Record<any, any>;
38
- declare function isPromise(val: any): boolean;
49
+ declare function isPromise(val: any): val is Promise<any>;
39
50
  declare const isArray: (arg: any) => arg is any[];
40
51
  declare function isString(val: unknown): val is string;
41
52
  declare function isSymbol(val: unknown): val is symbol;
@@ -48,6 +59,9 @@ declare const isFunction: (val: unknown) => val is Function;
48
59
  declare function isFalsy(x: any): x is false | null | undefined;
49
60
  declare const isPrimitive: (val: unknown) => val is string | number | boolean | symbol | null | undefined;
50
61
  declare function isHTMLElement(obj: any): any;
62
+ declare const isPlainObject: (val: unknown) => val is object;
63
+ type StringNumber = `${number}`;
64
+ declare function isStringNumber(val: unknown): val is StringNumber;
51
65
 
52
66
  declare const kebabCase: (string: string) => string;
53
67
  declare const camelCase: (str: string) => string;
@@ -63,4 +77,4 @@ declare function warn(msg: string, ..._args: any[]): void;
63
77
  declare function info(msg: string, ..._args: any[]): void;
64
78
  declare function error(msg: string, ..._args: any[]): void;
65
79
 
66
- export { type ExcludeType, _toString, camelCase, capitalizeFirstLetter, coerceArray, error, escape, extend, hasChanged, hasOwn, info, isArray, isExclude, isFalsy, isFunction, isHTMLElement, isMap, isNil, isObject, isPrimitive, isPromise, isSet, isString, isSymbol, isWeakMap, isWeakSet, kebabCase, noop, startsWith, warn };
80
+ export { type ExcludeType, type StringNumber, _toString, camelCase, capitalizeFirstLetter, coerceArray, error, escape, extend, generateUniqueId, hasChanged, hasOwn, info, isArray, isBrowser, isExclude, isFalsy, isFunction, isHTMLElement, isMap, isNil, isObject, isPlainObject, isPrimitive, isPromise, isSet, isString, isStringNumber, isSymbol, isWeakMap, isWeakSet, kebabCase, noop, startsWith, warn };
package/dist/shared.d.ts CHANGED
@@ -33,9 +33,20 @@ type ExcludeType = ((key: string | symbol) => boolean) | (string | symbol)[];
33
33
  * @returns True if the key should be excluded, otherwise false.
34
34
  */
35
35
  declare function isExclude(key: string | symbol, exclude?: ExcludeType): boolean;
36
+ /**
37
+ * Generates a unique random 8 character string ID.
38
+ * The generated IDs only contain alphanumeric characters.
39
+ * @returns A unique random 8 character string ID.
40
+ */
41
+ declare function generateUniqueId(): string;
42
+ /**
43
+ * Checks if the current environment is a browser.
44
+ * @returns True if the current environment is a browser, otherwise false.
45
+ */
46
+ declare function isBrowser(): boolean;
36
47
 
37
48
  declare const isObject: (val: unknown) => val is Record<any, any>;
38
- declare function isPromise(val: any): boolean;
49
+ declare function isPromise(val: any): val is Promise<any>;
39
50
  declare const isArray: (arg: any) => arg is any[];
40
51
  declare function isString(val: unknown): val is string;
41
52
  declare function isSymbol(val: unknown): val is symbol;
@@ -48,6 +59,9 @@ declare const isFunction: (val: unknown) => val is Function;
48
59
  declare function isFalsy(x: any): x is false | null | undefined;
49
60
  declare const isPrimitive: (val: unknown) => val is string | number | boolean | symbol | null | undefined;
50
61
  declare function isHTMLElement(obj: any): any;
62
+ declare const isPlainObject: (val: unknown) => val is object;
63
+ type StringNumber = `${number}`;
64
+ declare function isStringNumber(val: unknown): val is StringNumber;
51
65
 
52
66
  declare const kebabCase: (string: string) => string;
53
67
  declare const camelCase: (str: string) => string;
@@ -63,4 +77,4 @@ declare function warn(msg: string, ..._args: any[]): void;
63
77
  declare function info(msg: string, ..._args: any[]): void;
64
78
  declare function error(msg: string, ..._args: any[]): void;
65
79
 
66
- export { type ExcludeType, _toString, camelCase, capitalizeFirstLetter, coerceArray, error, escape, extend, hasChanged, hasOwn, info, isArray, isExclude, isFalsy, isFunction, isHTMLElement, isMap, isNil, isObject, isPrimitive, isPromise, isSet, isString, isSymbol, isWeakMap, isWeakSet, kebabCase, noop, startsWith, warn };
80
+ export { type ExcludeType, type StringNumber, _toString, camelCase, capitalizeFirstLetter, coerceArray, error, escape, extend, generateUniqueId, hasChanged, hasOwn, info, isArray, isBrowser, isExclude, isFalsy, isFunction, isHTMLElement, isMap, isNil, isObject, isPlainObject, isPrimitive, isPromise, isSet, isString, isStringNumber, isSymbol, isWeakMap, isWeakSet, kebabCase, noop, startsWith, warn };
package/dist/shared.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @estjs/shared v0.0.11
2
+ * @estjs/shared v0.0.12
3
3
  * (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
4
4
  * @license MIT
5
5
  **/
@@ -43,6 +43,13 @@ function isHTMLElement(obj) {
43
43
  if (!obj) return false;
44
44
  return obj && typeof obj === "object" && obj.nodeType === 1 && typeof obj.nodeName === "string";
45
45
  }
46
+ var isPlainObject = (val) => _toString.call(val) === "[object Object]";
47
+ function isStringNumber(val) {
48
+ if (!isString(val)) {
49
+ return false;
50
+ }
51
+ return !Number.isNaN(Number(val));
52
+ }
46
53
 
47
54
  // src/comm.ts
48
55
  var _toString = Object.prototype.toString;
@@ -81,6 +88,18 @@ function escape(str) {
81
88
  function isExclude(key, exclude) {
82
89
  return Array.isArray(exclude) ? exclude.includes(key) : isFunction(exclude) ? exclude(key) : false;
83
90
  }
91
+ function generateUniqueId() {
92
+ const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
93
+ let result = "";
94
+ const charactersLength = characters.length;
95
+ for (let i = 0; i < 8; i++) {
96
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
97
+ }
98
+ return result;
99
+ }
100
+ function isBrowser() {
101
+ return typeof window !== "undefined" && typeof document !== "undefined";
102
+ }
84
103
 
85
104
  // src/name.ts
86
105
  var kebabCase = (string) => {
@@ -114,10 +133,12 @@ export {
114
133
  error,
115
134
  escape,
116
135
  extend,
136
+ generateUniqueId,
117
137
  hasChanged,
118
138
  hasOwn,
119
139
  info,
120
140
  isArray,
141
+ isBrowser,
121
142
  isExclude,
122
143
  isFalsy,
123
144
  isFunction,
@@ -125,10 +146,12 @@ export {
125
146
  isMap,
126
147
  isNil,
127
148
  isObject,
149
+ isPlainObject,
128
150
  isPrimitive,
129
151
  isPromise,
130
152
  isSet,
131
153
  isString,
154
+ isStringNumber,
132
155
  isSymbol,
133
156
  isWeakMap,
134
157
  isWeakSet,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/is.ts","../src/comm.ts","../src/name.ts","../src/console.ts"],"sourcesContent":["import { _toString } from './comm';\n\nexport const isObject = (val: unknown): val is Record<any, any> =>\n val !== null && typeof val === 'object';\nexport function isPromise(val: any): boolean {\n return _toString.call(val) === '[object Promise]';\n}\n\nexport const isArray = Array.isArray;\n\nexport function isString(val: unknown): val is string {\n return typeof val === 'string';\n}\nexport function isNull(val: any): val is null {\n return val === null;\n}\nexport function isSymbol(val: unknown): val is symbol {\n return typeof val === 'symbol';\n}\n\nexport function isSet(val: any): val is Set<any> {\n return _toString.call(val) === '[object Set]';\n}\nexport function isWeakMap(val: any): val is WeakMap<any, any> {\n return _toString.call(val) === '[object WeakMap]';\n}\nexport function isWeakSet(val: any): val is WeakSet<any> {\n return _toString.call(val) === '[object WeakSet]';\n}\n\nexport function isMap(val: unknown): val is Map<any, any> {\n return _toString.call(val) === '[object Map]';\n}\nexport function isNil(x: any): x is null | undefined {\n return x === null || x === undefined;\n}\n\nexport const isFunction = (val: unknown): val is Function => typeof val === 'function';\n\nexport function isFalsy(x: any): x is false | null | undefined {\n return x === false || x === null || x === undefined;\n}\n\nexport const isPrimitive = (\n val: unknown,\n): val is string | number | boolean | symbol | null | undefined =>\n ['string', 'number', 'boolean', 'symbol', 'undefined'].includes(typeof val) || isNull(val);\n\nexport function isHTMLElement(obj) {\n if (!obj) return false;\n return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n}\n","import { isFunction, isString } from './is';\n\nexport const _toString = Object.prototype.toString;\nexport const extend = Object.assign;\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nexport const hasOwn = (val: object, key: string | symbol): key is keyof typeof val =>\n hasOwnProperty.call(val, key);\n\nexport function coerceArray<T>(data: T | T[]): T[] {\n return Array.isArray(data) ? (data.flat() as T[]) : [data];\n}\nexport const hasChanged = (value, oldValue) =>\n value !== oldValue && (value === value || oldValue === oldValue);\nexport const noop = Function.prototype as () => void;\n\n/**\n * A function that checks if a string starts with a specific substring.\n * indexOf faster under normal circumstances\n * @see https://www.measurethat.net/Benchmarks/Show/12350/0/startswith-vs-test-vs-match-vs-indexof#latest_results_block\n\n * @param {string} str - The input string to check.\n * @param {string} searchString - The substring to check for at the beginning of the input string.\n * @return {boolean} Returns true if the input string starts with the specified substring, otherwise false.\n */\nexport function startsWith(str, searchString) {\n if (!isString(str)) {\n return false;\n }\n return str.indexOf(searchString) === 0;\n}\n\n/**\n * Escapes special HTML characters in a string.\n * @param str - The string to escape.\n * @returns The escaped string.\n */\nexport function escape(str: string): string {\n return str.replaceAll(/[\"&'<>]/g, char => {\n switch (char) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n case \"'\":\n return '&#039;';\n default:\n return char;\n }\n });\n}\n\nexport type ExcludeType = ((key: string | symbol) => boolean) | (string | symbol)[];\n\n/**\n * Checks if a key should be excluded based on the provided exclude criteria.\n * @param key - The key to check.\n * @param exclude - The exclusion criteria.\n * @returns True if the key should be excluded, otherwise false.\n */\nexport function isExclude(key: string | symbol, exclude?: ExcludeType): boolean {\n return Array.isArray(exclude)\n ? exclude.includes(key)\n : isFunction(exclude)\n ? exclude(key)\n : false;\n}\n","export const kebabCase = (string: string): string => {\n return string.replaceAll(/[A-Z]+/g, (match, offset) => {\n return `${offset > 0 ? '-' : ''}${match.toLocaleLowerCase()}`;\n });\n};\n\nexport const camelCase = (str: string): string => {\n const s = str.replaceAll(/[\\s_-]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''));\n return s[0].toLowerCase() + s.slice(1);\n};\n/**\n * Capitalizes the first letter of a string.\n *\n * @param {string} inputString - The input string to capitalize the first letter.\n * @return {string} The string with the first letter capitalized.\n */\nexport const capitalizeFirstLetter = (inputString: string): string => {\n return inputString.charAt(0).toUpperCase() + inputString.slice(1);\n};\n","export function warn(msg: string, ..._args: any[]): void;\nexport function warn(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.warn.apply(console, [`[Essor warn]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function info(msg: string, ..._args: any[]): void;\nexport function info(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread, no-console\n console.info.apply(console, [`[Essor info]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function error(msg: string, ..._args: any[]): void;\nexport function error(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.error.apply(console, [`[Essor error]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/is.ts","../src/comm.ts","../src/name.ts","../src/console.ts"],"sourcesContent":["import { _toString } from './comm';\n\nexport const isObject = (val: unknown): val is Record<any, any> =>\n val !== null && typeof val === 'object';\nexport function isPromise(val: any): val is Promise<any> {\n return _toString.call(val) === '[object Promise]';\n}\n\nexport const isArray = Array.isArray;\n\nexport function isString(val: unknown): val is string {\n return typeof val === 'string';\n}\nexport function isNull(val: any): val is null {\n return val === null;\n}\nexport function isSymbol(val: unknown): val is symbol {\n return typeof val === 'symbol';\n}\n\nexport function isSet(val: any): val is Set<any> {\n return _toString.call(val) === '[object Set]';\n}\nexport function isWeakMap(val: any): val is WeakMap<any, any> {\n return _toString.call(val) === '[object WeakMap]';\n}\nexport function isWeakSet(val: any): val is WeakSet<any> {\n return _toString.call(val) === '[object WeakSet]';\n}\n\nexport function isMap(val: unknown): val is Map<any, any> {\n return _toString.call(val) === '[object Map]';\n}\nexport function isNil(x: any): x is null | undefined {\n return x === null || x === undefined;\n}\n\nexport const isFunction = (val: unknown): val is Function => typeof val === 'function';\n\nexport function isFalsy(x: any): x is false | null | undefined {\n return x === false || x === null || x === undefined;\n}\n\nexport const isPrimitive = (\n val: unknown,\n): val is string | number | boolean | symbol | null | undefined =>\n ['string', 'number', 'boolean', 'symbol', 'undefined'].includes(typeof val) || isNull(val);\n\nexport function isHTMLElement(obj) {\n if (!obj) return false;\n return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n}\n\nexport const isPlainObject = (val: unknown): val is object =>\n _toString.call(val) === '[object Object]';\n\nexport type StringNumber = `${number}`;\nexport function isStringNumber(val: unknown): val is StringNumber {\n if (!isString(val)) {\n return false;\n }\n return !Number.isNaN(Number(val));\n}\n","import { isFunction, isString } from './is';\n\nexport const _toString = Object.prototype.toString;\nexport const extend = Object.assign;\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nexport const hasOwn = (val: object, key: string | symbol): key is keyof typeof val =>\n hasOwnProperty.call(val, key);\n\nexport function coerceArray<T>(data: T | T[]): T[] {\n return Array.isArray(data) ? (data.flat() as T[]) : [data];\n}\nexport const hasChanged = (value, oldValue) =>\n value !== oldValue && (value === value || oldValue === oldValue);\nexport const noop = Function.prototype as () => void;\n\n/**\n * A function that checks if a string starts with a specific substring.\n * indexOf faster under normal circumstances\n * @see https://www.measurethat.net/Benchmarks/Show/12350/0/startswith-vs-test-vs-match-vs-indexof#latest_results_block\n\n * @param {string} str - The input string to check.\n * @param {string} searchString - The substring to check for at the beginning of the input string.\n * @return {boolean} Returns true if the input string starts with the specified substring, otherwise false.\n */\nexport function startsWith(str, searchString) {\n if (!isString(str)) {\n return false;\n }\n return str.indexOf(searchString) === 0;\n}\n\n/**\n * Escapes special HTML characters in a string.\n * @param str - The string to escape.\n * @returns The escaped string.\n */\nexport function escape(str: string): string {\n return str.replaceAll(/[\"&'<>]/g, char => {\n switch (char) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n case \"'\":\n return '&#039;';\n default:\n return char;\n }\n });\n}\n\nexport type ExcludeType = ((key: string | symbol) => boolean) | (string | symbol)[];\n\n/**\n * Checks if a key should be excluded based on the provided exclude criteria.\n * @param key - The key to check.\n * @param exclude - The exclusion criteria.\n * @returns True if the key should be excluded, otherwise false.\n */\nexport function isExclude(key: string | symbol, exclude?: ExcludeType): boolean {\n return Array.isArray(exclude)\n ? exclude.includes(key)\n : isFunction(exclude)\n ? exclude(key)\n : false;\n}\n\n/**\n * Generates a unique random 8 character string ID.\n * The generated IDs only contain alphanumeric characters.\n * @returns A unique random 8 character string ID.\n */\nexport function generateUniqueId() {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result = '';\n const charactersLength = characters.length;\n for (let i = 0; i < 8; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n\n/**\n * Checks if the current environment is a browser.\n * @returns True if the current environment is a browser, otherwise false.\n */\nexport function isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n","export const kebabCase = (string: string): string => {\n return string.replaceAll(/[A-Z]+/g, (match, offset) => {\n return `${offset > 0 ? '-' : ''}${match.toLocaleLowerCase()}`;\n });\n};\n\nexport const camelCase = (str: string): string => {\n const s = str.replaceAll(/[\\s_-]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''));\n return s[0].toLowerCase() + s.slice(1);\n};\n/**\n * Capitalizes the first letter of a string.\n *\n * @param {string} inputString - The input string to capitalize the first letter.\n * @return {string} The string with the first letter capitalized.\n */\nexport const capitalizeFirstLetter = (inputString: string): string => {\n return inputString.charAt(0).toUpperCase() + inputString.slice(1);\n};\n","export function warn(msg: string, ..._args: any[]): void;\nexport function warn(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.warn.apply(console, [`[Essor warn]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function info(msg: string, ..._args: any[]): void;\nexport function info(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread, no-console\n console.info.apply(console, [`[Essor info]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n\nexport function error(msg: string, ..._args: any[]): void;\nexport function error(msg: string, ...args): void {\n // eslint-disable-next-line prefer-spread\n console.error.apply(console, [`[Essor error]: ${msg}`].concat(args) as [string, ...any[]]);\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@estjs/shared",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "keywords": [],