@ktjs/shared 0.30.9 → 0.30.11

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/index.d.ts CHANGED
@@ -122,6 +122,8 @@ declare const $forEach: (array: unknown[], callback: (item: unknown, index: numb
122
122
  * Async version of $forEach that allows for asynchronous callbacks. It processes items sequentially, awaiting each callback before moving to the next.
123
123
  */
124
124
  declare const $forEachAsync: (array: unknown[], callback: (item: unknown, index: number, array: unknown[]) => void) => Promise<void>;
125
+ declare const $arrayPushUnique: (array: unknown[], item: unknown) => void;
126
+ declare const $arrayDelete: (array: unknown[], item: unknown) => void;
125
127
 
126
128
  /**
127
129
  * Normalize path by joining parts and ensuring leading slash
@@ -149,9 +151,12 @@ declare const extractParams: (pattern: string, path: string) => Record<string, s
149
151
  interface KTReactiveLike<T = unknown> {
150
152
  isKT: true;
151
153
  value: T;
152
- addOnChange(fn: (newValue: T, oldValue: T) => void): void;
153
- removeOnChange?(fn: (newValue: T, oldValue: T) => void): boolean;
154
+ addOnChange<K extends string | number | undefined>(
155
+ fn: (newValue: T, oldValue: T) => void,
156
+ key?: K,
157
+ ): K extends undefined ? number : K;
158
+ removeOnChange?(key: string | number): ((newValue: T, oldValue: T) => void) | undefined;
154
159
  }
155
160
 
156
- export { $ArrayFrom, $SameValueZero, $applyModel, $assign, $define, $defines, $emptyArray, $emptyFn, $emptyObject, $entries, $forEach, $forEachAsync, $hasOwn, $identity, $is, $isArray, $isNode, $isThenable, $keys, $parseStyle, $random, $toString, buildQuery, emplaceParams, extractParams, normalizePath, parseQuery };
161
+ export { $ArrayFrom, $SameValueZero, $applyModel, $arrayDelete, $arrayPushUnique, $assign, $define, $defines, $emptyArray, $emptyFn, $emptyObject, $entries, $forEach, $forEachAsync, $hasOwn, $identity, $is, $isArray, $isNode, $isThenable, $keys, $parseStyle, $random, $toString, buildQuery, emplaceParams, extractParams, normalizePath, parseQuery };
157
162
  export type { ChangeHandler, ChangeTriggerField, HTMLJSXTag, HTMLTag, InputElementTag, JSXTag, KTReactiveLike, MathMLJSXTag, MathMLTag, NoTextNodeTag, NonSpecialTags, SVGJSXTag, SVGTag, otherstring };
package/dist/index.mjs CHANGED
@@ -135,6 +135,18 @@ const $forEachAsync = async (array, callback) => {
135
135
  await callback(array[i], i, array);
136
136
  }
137
137
  };
138
+ const $arrayPushUnique = (array, item) => {
139
+ if (array.indexOf(item) === -1) {
140
+ array.push(item);
141
+ }
142
+ };
143
+ const $arrayDelete = (array, item) => {
144
+ const index = array.indexOf(item);
145
+ if (index !== -1) {
146
+ array[index] = array[array.length - 1];
147
+ array.pop();
148
+ }
149
+ };
138
150
 
139
151
  /**
140
152
  * Normalize path by joining parts and ensuring leading slash
@@ -210,7 +222,7 @@ const extractParams = (pattern, path) => {
210
222
  };
211
223
 
212
224
  // incase that symbol is not supported
213
- Object.defineProperty(window, '__ktjs__', { value: '0.30.9' });
225
+ Object.defineProperty(window, '__ktjs__', { value: '0.30.11' });
214
226
 
215
- export { $ArrayFrom, $SameValueZero, $applyModel, $assign, $define, $defines, $emptyArray, $emptyFn, $emptyObject, $entries, $forEach, $forEachAsync, $hasOwn, $identity, $is, $isArray, $isNode, $isThenable, $keys, $parseStyle, $random, $toString, buildQuery, emplaceParams, extractParams, normalizePath, parseQuery };
227
+ export { $ArrayFrom, $SameValueZero, $applyModel, $arrayDelete, $arrayPushUnique, $assign, $define, $defines, $emptyArray, $emptyFn, $emptyObject, $entries, $forEach, $forEachAsync, $hasOwn, $identity, $is, $isArray, $isNode, $isThenable, $keys, $parseStyle, $random, $toString, buildQuery, emplaceParams, extractParams, normalizePath, parseQuery };
216
228
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/utils/native.ts","../src/misc/symbol-polyfill.ts","../src/misc/dom-polyfill.ts","../src/utils/dom.ts","../src/utils/misc.ts","../src/utils/url.ts","../src/index.ts"],"sourcesContent":["// Cached native methods for performance optimization\n\nexport const $isArray = Array.isArray;\nexport const $ArrayFrom = Array.from;\n\nexport const $is = Object.is;\nexport const $assign = Object.assign;\nexport const $hasOwn = Object.prototype.hasOwnProperty;\nexport const $toString = Object.prototype.toString;\n\nexport const $keys = Object.keys as <T>(o: T) => Array<keyof T>;\nexport const $defines = Object.defineProperties;\nexport const $define = Object.defineProperty;\nexport const $entries = Object.entries as <T>(o: T) => Array<[keyof T, T[keyof T]]>;\n\nexport const $random = Math.random;\n\nexport const $isThenable = (o: any): o is Promise<any> => typeof o?.then === 'function';\n","import { $random } from '../utils/native.js';\n\nexport {};\nif (typeof Symbol === 'undefined') {\n (window as any).Symbol = function Symbol(description?: string) {\n return `@@SYMBOL_${description || ''}_${$random().toString(36).slice(2)}`;\n };\n}\n","export {};\n\nif (typeof Node !== 'undefined') {\n const targets: Node[] = [];\n\n if (typeof Element !== 'undefined') {\n targets.push(Element.prototype);\n }\n if (typeof CharacterData !== 'undefined') {\n targets.push(CharacterData.prototype);\n }\n if (typeof DocumentType !== 'undefined') {\n targets.push(DocumentType.prototype);\n }\n if (targets.length === 0) {\n targets.push(Node.prototype);\n }\n\n const installMethod = (name: 'remove' | 'replaceWith', method: (...args: any[]) => void) => {\n for (let i = 0; i < targets.length; i++) {\n const target = targets[i];\n if (typeof (target as any)[name] !== 'function') {\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: method,\n });\n }\n }\n };\n\n installMethod('remove', function (this: Node) {\n const parent = this.parentNode;\n if (parent) {\n parent.removeChild(this);\n }\n });\n\n installMethod('replaceWith', function (this: Node, ...newNodes: Array<Node | string>) {\n const parent = this.parentNode;\n if (!parent) {\n return;\n }\n\n if (newNodes.length === 0) {\n parent.removeChild(this);\n return;\n }\n\n const fragment = document.createDocumentFragment();\n for (let i = 0; i < newNodes.length; i++) {\n const node = newNodes[i];\n fragment.appendChild(typeof node === 'string' ? document.createTextNode(node) : node);\n }\n\n parent.insertBefore(fragment, this);\n parent.removeChild(this);\n });\n}\n","// DOM manipulation utilities\n\nimport type { KTReactiveLike } from '../types/misc.js';\nimport type { InputElementTag } from '../types/global.js';\nimport { $entries } from './native.js';\n\n// # dom natives\n\nexport const $isNode = (x: any): x is ChildNode => x?.nodeType > 0;\n\n// # DOM utilities\n\n// Same as it is in @ktjs/core\nexport const $parseStyle = (style: unknown): string => {\n if (!style) {\n return '';\n }\n if (typeof style === 'string') {\n return style;\n }\n\n // already !style === false\n if (typeof style === 'object') {\n if ((style as KTReactiveLike).isKT) {\n return $parseStyle((style as KTReactiveLike).value);\n }\n\n return $entries(style)\n .map((entry: [string, string]) => {\n const cssKey = entry[0].replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n return `${cssKey}:${entry[1]}`;\n })\n .join(';');\n }\n return '';\n};\n\nexport type ChangeHandler<T = string> = (value: T, ...args: any[]) => void;\n\n/**\n * Used for `k-model`\n */\nexport const $applyModel = (\n element: HTMLElementTagNameMap[InputElementTag],\n valueRef: { value: unknown; addOnChange: (fn: (newValue: unknown) => void) => void },\n propName: 'value' | 'checked',\n eventName: 'change' | 'input',\n) => {\n (element as any)[propName] = valueRef.value; // initialize\n valueRef.addOnChange((newValue) => ((element as any)[propName] = newValue));\n element.addEventListener(eventName, () => (valueRef.value = (element as any)[propName]));\n};\n","// String manipulation utilities\n\nimport { $is, $isArray } from './native.js';\n\n/**\n * Default empty function\n */\nexport const $emptyFn = (() => true) as (...args: any[]) => any;\nexport const $emptyArray: any[] = [];\nexport const $emptyObject = Object.create(null);\nexport const $identity = (x: any) => x;\n\n/**\n * SameValueZero comparison, similar to `Object.is` but treats `+0 === -0`\n */\nexport const $SameValueZero = (x: unknown, y: unknown): boolean => (x !== x && y !== y) || x === y;\n\n/**\n * Safe and quick forEach implementation that works with array-like objects and handles sparse arrays.\n */\nexport const $forEach = (\n array: unknown[],\n callback: (item: unknown, index: number, array: unknown[]) => void,\n): void => {\n const len = array.length;\n for (let i = 0; i < len; i++) {\n callback(array[i], i, array);\n }\n};\n\n/**\n * Async version of $forEach that allows for asynchronous callbacks. It processes items sequentially, awaiting each callback before moving to the next.\n */\nexport const $forEachAsync = async (\n array: unknown[],\n callback: (item: unknown, index: number, array: unknown[]) => void,\n): Promise<void> => {\n const len = array.length;\n for (let i = 0; i < len; i++) {\n await callback(array[i], i, array);\n }\n};\n","/**\n * Normalize path by joining parts and ensuring leading slash\n */\nexport const normalizePath = (...paths: string[]) => {\n const p = paths\n .map((p) => p.split('/'))\n .flat()\n .filter(Boolean);\n return '/' + p.join('/');\n};\n\n/**\n * Parse query string into object\n */\nexport const parseQuery = (queryString: string): Record<string, string> => {\n const query: Record<string, string> = {};\n if (!queryString || queryString === '?') {\n return query;\n }\n\n const params = queryString.replace(/^\\?/, '').split('&');\n for (const param of params) {\n const [key, value] = param.split('=');\n if (key) {\n query[decodeURIComponent(key)] = value ? decodeURIComponent(value) : '';\n }\n }\n return query;\n};\n\n/**\n * Build query string from object\n */\nexport const buildQuery = (query: Record<string, string>): string => {\n const keys = Object.keys(query);\n if (keys.length === 0) return '';\n\n const params = keys.map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(query[key])}`).join('&');\n return `?${params}`;\n};\n\n/**\n * Substitute params into path pattern\n * @example '/user/:id' + {id: '123'} => '/user/123'\n */\nexport const emplaceParams = (path: string, params: Record<string, string>): string => {\n let result = path;\n for (const key in params) {\n result = result.replace(`:${key}`, params[key]);\n }\n return result;\n};\n\n/**\n * Extract dynamic params from path using pattern\n * @example pattern: '/user/:id', path: '/user/123' => {id: '123'}\n */\nexport const extractParams = (pattern: string, path: string): Record<string, string> | null => {\n const params: Record<string, string> = {};\n const patternParts = pattern.split('/');\n const pathParts = path.split('/');\n\n if (patternParts.length !== pathParts.length) {\n return null;\n }\n\n for (let i = 0; i < patternParts.length; i++) {\n const patternPart = patternParts[i];\n const pathPart = pathParts[i];\n\n if (patternPart.startsWith(':')) {\n const paramName = patternPart.slice(1);\n params[paramName] = pathPart;\n } else if (patternPart !== pathPart) {\n return null;\n }\n }\n\n return params;\n};\n","// incase that symbol is not supported\nimport './misc/symbol-polyfill.js';\nimport './misc/dom-polyfill.js';\n\nexport * from './misc/comment.js';\nexport * from './utils/native.js';\nexport * from './utils/dom.js';\nexport * from './utils/misc.js';\nexport * from './utils/url.js';\n\nexport type * from './types/global.js';\nexport type * from './types/misc.js';\n\nObject.defineProperty(window, '__ktjs__', { value: '__VERSION__' });\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/utils/native.ts","../src/misc/symbol-polyfill.ts","../src/misc/dom-polyfill.ts","../src/utils/dom.ts","../src/utils/misc.ts","../src/utils/url.ts","../src/index.ts"],"sourcesContent":["// Cached native methods for performance optimization\n\nexport const $isArray = Array.isArray;\nexport const $ArrayFrom = Array.from;\n\nexport const $is = Object.is;\nexport const $assign = Object.assign;\nexport const $hasOwn = Object.prototype.hasOwnProperty;\nexport const $toString = Object.prototype.toString;\n\nexport const $keys = Object.keys as <T>(o: T) => Array<keyof T>;\nexport const $defines = Object.defineProperties;\nexport const $define = Object.defineProperty;\nexport const $entries = Object.entries as <T>(o: T) => Array<[keyof T, T[keyof T]]>;\n\nexport const $random = Math.random;\n\nexport const $isThenable = (o: any): o is Promise<any> => typeof o?.then === 'function';\n","import { $random } from '../utils/native.js';\n\nexport {};\nif (typeof Symbol === 'undefined') {\n (window as any).Symbol = function Symbol(description?: string) {\n return `@@SYMBOL_${description || ''}_${$random().toString(36).slice(2)}`;\n };\n}\n","export {};\n\nif (typeof Node !== 'undefined') {\n const targets: Node[] = [];\n\n if (typeof Element !== 'undefined') {\n targets.push(Element.prototype);\n }\n if (typeof CharacterData !== 'undefined') {\n targets.push(CharacterData.prototype);\n }\n if (typeof DocumentType !== 'undefined') {\n targets.push(DocumentType.prototype);\n }\n if (targets.length === 0) {\n targets.push(Node.prototype);\n }\n\n const installMethod = (name: 'remove' | 'replaceWith', method: (...args: any[]) => void) => {\n for (let i = 0; i < targets.length; i++) {\n const target = targets[i];\n if (typeof (target as any)[name] !== 'function') {\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: method,\n });\n }\n }\n };\n\n installMethod('remove', function (this: Node) {\n const parent = this.parentNode;\n if (parent) {\n parent.removeChild(this);\n }\n });\n\n installMethod('replaceWith', function (this: Node, ...newNodes: Array<Node | string>) {\n const parent = this.parentNode;\n if (!parent) {\n return;\n }\n\n if (newNodes.length === 0) {\n parent.removeChild(this);\n return;\n }\n\n const fragment = document.createDocumentFragment();\n for (let i = 0; i < newNodes.length; i++) {\n const node = newNodes[i];\n fragment.appendChild(typeof node === 'string' ? document.createTextNode(node) : node);\n }\n\n parent.insertBefore(fragment, this);\n parent.removeChild(this);\n });\n}\n","// DOM manipulation utilities\n\nimport type { KTReactiveLike } from '../types/misc.js';\nimport type { InputElementTag } from '../types/global.js';\nimport { $entries } from './native.js';\n\n// # dom natives\n\nexport const $isNode = (x: any): x is ChildNode => x?.nodeType > 0;\n\n// # DOM utilities\n\n// Same as it is in @ktjs/core\nexport const $parseStyle = (style: unknown): string => {\n if (!style) {\n return '';\n }\n if (typeof style === 'string') {\n return style;\n }\n\n // already !style === false\n if (typeof style === 'object') {\n if ((style as KTReactiveLike).isKT) {\n return $parseStyle((style as KTReactiveLike).value);\n }\n\n return $entries(style)\n .map((entry: [string, string]) => {\n const cssKey = entry[0].replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n return `${cssKey}:${entry[1]}`;\n })\n .join(';');\n }\n return '';\n};\n\nexport type ChangeHandler<T = string> = (value: T, ...args: any[]) => void;\n\n/**\n * Used for `k-model`\n */\nexport const $applyModel = (\n element: HTMLElementTagNameMap[InputElementTag],\n valueRef: { value: unknown; addOnChange: (fn: (newValue: unknown) => void) => void },\n propName: 'value' | 'checked',\n eventName: 'change' | 'input',\n) => {\n (element as any)[propName] = valueRef.value; // initialize\n valueRef.addOnChange((newValue) => ((element as any)[propName] = newValue));\n element.addEventListener(eventName, () => (valueRef.value = (element as any)[propName]));\n};\n","// String manipulation utilities\n\nimport { $is, $isArray } from './native.js';\n\n/**\n * Default empty function\n */\nexport const $emptyFn = (() => true) as (...args: any[]) => any;\nexport const $emptyArray: any[] = [];\nexport const $emptyObject = Object.create(null);\nexport const $identity = (x: any) => x;\n\n/**\n * SameValueZero comparison, similar to `Object.is` but treats `+0 === -0`\n */\nexport const $SameValueZero = (x: unknown, y: unknown): boolean => (x !== x && y !== y) || x === y;\n\n/**\n * Safe and quick forEach implementation that works with array-like objects and handles sparse arrays.\n */\nexport const $forEach = (\n array: unknown[],\n callback: (item: unknown, index: number, array: unknown[]) => void,\n): void => {\n const len = array.length;\n for (let i = 0; i < len; i++) {\n callback(array[i], i, array);\n }\n};\n\n/**\n * Async version of $forEach that allows for asynchronous callbacks. It processes items sequentially, awaiting each callback before moving to the next.\n */\nexport const $forEachAsync = async (\n array: unknown[],\n callback: (item: unknown, index: number, array: unknown[]) => void,\n): Promise<void> => {\n const len = array.length;\n for (let i = 0; i < len; i++) {\n await callback(array[i], i, array);\n }\n};\n\nexport const $arrayPushUnique = (array: unknown[], item: unknown): void => {\n if (array.indexOf(item) === -1) {\n array.push(item);\n }\n};\n\nexport const $arrayDelete = (array: unknown[], item: unknown): void => {\n const index = array.indexOf(item);\n if (index !== -1) {\n array[index] = array[array.length - 1];\n array.pop();\n }\n};\n","/**\n * Normalize path by joining parts and ensuring leading slash\n */\nexport const normalizePath = (...paths: string[]) => {\n const p = paths\n .map((p) => p.split('/'))\n .flat()\n .filter(Boolean);\n return '/' + p.join('/');\n};\n\n/**\n * Parse query string into object\n */\nexport const parseQuery = (queryString: string): Record<string, string> => {\n const query: Record<string, string> = {};\n if (!queryString || queryString === '?') {\n return query;\n }\n\n const params = queryString.replace(/^\\?/, '').split('&');\n for (const param of params) {\n const [key, value] = param.split('=');\n if (key) {\n query[decodeURIComponent(key)] = value ? decodeURIComponent(value) : '';\n }\n }\n return query;\n};\n\n/**\n * Build query string from object\n */\nexport const buildQuery = (query: Record<string, string>): string => {\n const keys = Object.keys(query);\n if (keys.length === 0) return '';\n\n const params = keys.map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(query[key])}`).join('&');\n return `?${params}`;\n};\n\n/**\n * Substitute params into path pattern\n * @example '/user/:id' + {id: '123'} => '/user/123'\n */\nexport const emplaceParams = (path: string, params: Record<string, string>): string => {\n let result = path;\n for (const key in params) {\n result = result.replace(`:${key}`, params[key]);\n }\n return result;\n};\n\n/**\n * Extract dynamic params from path using pattern\n * @example pattern: '/user/:id', path: '/user/123' => {id: '123'}\n */\nexport const extractParams = (pattern: string, path: string): Record<string, string> | null => {\n const params: Record<string, string> = {};\n const patternParts = pattern.split('/');\n const pathParts = path.split('/');\n\n if (patternParts.length !== pathParts.length) {\n return null;\n }\n\n for (let i = 0; i < patternParts.length; i++) {\n const patternPart = patternParts[i];\n const pathPart = pathParts[i];\n\n if (patternPart.startsWith(':')) {\n const paramName = patternPart.slice(1);\n params[paramName] = pathPart;\n } else if (patternPart !== pathPart) {\n return null;\n }\n }\n\n return params;\n};\n","// incase that symbol is not supported\nimport './misc/symbol-polyfill.js';\nimport './misc/dom-polyfill.js';\n\nexport * from './misc/comment.js';\nexport * from './utils/native.js';\nexport * from './utils/dom.js';\nexport * from './utils/misc.js';\nexport * from './utils/url.js';\n\nexport type * from './types/global.js';\nexport type * from './types/misc.js';\n\nObject.defineProperty(window, '__ktjs__', { value: '__VERSION__' });\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ktjs/shared",
3
- "version": "0.30.9",
3
+ "version": "0.30.11",
4
4
  "description": "Shared utilities and cached native methods for kt.js framework",
5
5
  "description_zh": "kt.js 框架的共享工具与原生方法缓存。",
6
6
  "type": "module",