@untemps/utils 3.2.0 → 4.0.0-beta.1

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.
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=({tag:e=`div`,attributes:t={},content:n=null,textContent:r=null,parent:i=null,parentSelector:a=null,boundingClientRect:o=null}={})=>{let s=document.createElement(e);for(let e in t)s.setAttribute(e,t[e]);n&&s.appendChild(n),r&&!s.hasChildNodes()&&s.appendChild(document.createTextNode(r));let c=i||document.querySelector(a);return c&&c.appendChild(s),o&&(s.getBoundingClientRect=()=>o),s};exports.createElement=e;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=({tag:e=`div`,attributes:t={},content:n=null,textContent:r=null,parent:i=null,parentSelector:a=null,boundingClientRect:o=null}={})=>{let s=document.createElement(e);if(t)for(let[e,n]of Object.entries(t))s.setAttribute(e,n);n&&s.appendChild(n),r&&!s.hasChildNodes()&&s.appendChild(document.createTextNode(r));let c=i||document.querySelector(a);return c&&c.appendChild(s),o&&(s.getBoundingClientRect=()=>o),s};exports.createElement=e;
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../src/dom/createElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC1C,yEAAyE;IACzE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAA;CAClD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,yFAQ3B,mBAAwB,KAAG,WAmB7B,CAAA"}
1
+ {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../src/dom/createElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAC1C,yEAAyE;IACzE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAA;CAClD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,yFAQ3B,mBAAwB,KAAG,WAqB7B,CAAA"}
@@ -1,7 +1,7 @@
1
1
  //#region src/dom/createElement.ts
2
2
  var e = ({ tag: e = "div", attributes: t = {}, content: n = null, textContent: r = null, parent: i = null, parentSelector: a = null, boundingClientRect: o = null } = {}) => {
3
3
  let s = document.createElement(e);
4
- for (let e in t) s.setAttribute(e, t[e]);
4
+ if (t) for (let [e, n] of Object.entries(t)) s.setAttribute(e, n);
5
5
  n && s.appendChild(n), r && !s.hasChildNodes() && s.appendChild(document.createTextNode(r));
6
6
  let c = i || document.querySelector(a);
7
7
  return c && c.appendChild(s), o && (s.getBoundingClientRect = () => o), s;
@@ -10,7 +10,7 @@
10
10
  * element.className = 'foo'
11
11
  * document.body.appendChild(element)
12
12
  *
13
- * removeElement(element) // <div class="foo"></div>
13
+ * removeElement(element) // returns the detached <div class="foo"></div>
14
14
  *
15
15
  * @param element - The DOM element or the selector of the DOM element to remove.
16
16
  * @returns The removed DOM element.
@@ -26,7 +26,7 @@ export interface GenerateTokenizedTextConfig {
26
26
  * const minWords = 5
27
27
  * const maxWords = 10
28
28
  * const dictionary = ['foo', 'bar', 'gag']
29
- * generateTokenizedText(tokens, divider, minWords, maxWords, dictionary) // {indices: Array(3), text: "foo $pol$ $biz$ bar gag $kuy$ foo gag foo"}}
29
+ * generateTokenizedText({ tokens, divider, minWords, maxWords, dictionary }) // {indices: Array(3), text: "foo $pol$ $biz$ bar gag $kuy$ foo gag foo"}
30
30
  *
31
31
  * @param config - The configuration object for the text generation.
32
32
  * @returns An object containing a list of token indices and the generated string.
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>Function(...Object.keys(t),`return \`${e}\``)(...Object.values(t));exports.interpolateLiteral=e;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>e.replace(/\$\{(\w+)\}/g,(e,n)=>{if(!Object.hasOwn(t,n))throw ReferenceError(`${n} is not defined`);return String(t[n])});exports.interpolateLiteral=e;
@@ -15,7 +15,7 @@
15
15
  * interpolateLiteral(value, tokens) // A bird with 3 "wings" and a lot of dignity
16
16
  *
17
17
  * @param value - The literal-like string value to interpolate.
18
- * @param tokens - An object of key/value pairs to replace the tokens.
18
+ * @param tokens - An object of key/value pairs to replace the tokens. Keys must be valid identifiers (`\w+`).
19
19
  * @returns The interpolated string.
20
20
  */
21
21
  export declare const interpolateLiteral: (value: string, tokens: Record<string, unknown>) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"interpolateLiteral.d.ts","sourceRoot":"","sources":["../../src/string/interpolateLiteral.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAGnF,CAAA"}
1
+ {"version":3,"file":"interpolateLiteral.d.ts","sourceRoot":"","sources":["../../src/string/interpolateLiteral.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAKnF,CAAA"}
@@ -1,4 +1,7 @@
1
1
  //#region src/string/interpolateLiteral.ts
2
- var e = (e, t) => Function(...Object.keys(t), `return \`${e}\``)(...Object.values(t));
2
+ var e = (e, t) => e.replace(/\$\{(\w+)\}/g, (e, n) => {
3
+ if (!Object.hasOwn(t, n)) throw ReferenceError(`${n} is not defined`);
4
+ return String(t[n]);
5
+ });
3
6
  //#endregion
4
7
  export { e as interpolateLiteral };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@untemps/utils",
3
- "version": "3.2.0",
3
+ "version": "4.0.0-beta.1",
4
4
  "description": "Utils for @untemps packages",
5
5
  "repository": "git@github.com:untemps/utils.git",
6
6
  "keywords": [],
@@ -34,12 +34,14 @@
34
34
  "devDependencies": {
35
35
  "@commitlint/cli": "^20.0.0",
36
36
  "@commitlint/config-conventional": "^20.0.0",
37
+ "@eslint/js": "^10.0.1",
37
38
  "@semantic-release/changelog": "^6.0.3",
38
39
  "@semantic-release/git": "^10.0.1",
39
40
  "@semantic-release/github": "^12.0.0",
40
41
  "@testing-library/jest-dom": "^6.0.0",
41
42
  "@types/node": "^25.5.0",
42
43
  "@vitest/coverage-v8": "^3.0.0",
44
+ "eslint": "^10.3.0",
43
45
  "fast-check": "^4.0.0",
44
46
  "husky": "^9.0.0",
45
47
  "jsdom": "^26.0.0",
@@ -47,6 +49,7 @@
47
49
  "semantic-release": "^25.0.0",
48
50
  "typedoc": "^0.28.18",
49
51
  "typescript": "^6.0.2",
52
+ "typescript-eslint": "^8.59.3",
50
53
  "vite": "^8.0.0",
51
54
  "vitest": "^3.0.0"
52
55
  },
@@ -81,9 +84,11 @@
81
84
  "scripts": {
82
85
  "docs": "typedoc && node scripts/open-docs.mjs",
83
86
  "test": "vitest",
84
- "test:ci": "vitest run --coverage",
87
+ "test:ci": "vitest run --coverage && yarn lint",
85
88
  "build": "vite build && tsc -p tsconfig.build.json",
86
- "prettier": "prettier \"src/**/*.ts\" --ignore-path ./.prettierignore --write && git add . && git status",
89
+ "lint": "eslint \"src/**/*.ts\"",
90
+ "typecheck": "tsc --noEmit",
91
+ "prettier": "prettier \"src/**/*.ts\" --ignore-path ./.prettierignore --write && git add src/**/*.ts && git status",
87
92
  "prepare": "husky"
88
93
  }
89
94
  }