@rickard.antonsson/ts-utility 2.0.0 → 2.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.
@@ -1,2 +1,5 @@
1
1
  import { Fn } from '../../types';
2
- export declare function createElement<E extends keyof HTMLElementTagNameMap = keyof HTMLElementTagNameMap>(tagName: E, listOrFn?: Node[] | Fn<[Node], void>, list?: Node[]): HTMLElementTagNameMap[E];
2
+ export declare function createElement<S extends keyof HTMLElementTagNameMap | `${keyof HTMLElementTagNameMap}${SplittingChars}${string}`>(basicEmmet: S, listOrFn?: Node[] | Fn<[HTMLElementTagNameMap[ExtractHtmlTagName<S>]], void>, list?: Node[]): HTMLElementTagNameMap[ExtractHtmlTagName<S>] | undefined;
3
+ type SplittingChars = '.' | '{' | '#';
4
+ type ExtractHtmlTagName<T extends string> = T extends keyof HTMLElementTagNameMap ? T : T extends `${infer Tag}${SplittingChars}${string}` ? Tag extends keyof HTMLElementTagNameMap ? Tag : never : never;
5
+ export {};
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createElement = createElement;
4
- function createElement(tagName, listOrFn, list) {
5
- const elm = document.createElement(tagName);
4
+ function createElement(basicEmmet, listOrFn, list) {
5
+ const elm = emmetCreateElement(basicEmmet);
6
+ if (!elm)
7
+ return;
6
8
  if (listOrFn !== undefined || listOrFn !== null) {
7
9
  if (typeof listOrFn === 'function')
8
10
  listOrFn.call(null, elm);
@@ -13,4 +15,18 @@ function createElement(tagName, listOrFn, list) {
13
15
  elm.append(...list);
14
16
  return elm;
15
17
  }
18
+ function emmetCreateElement(str) {
19
+ const matches = str.match(/([a-z-]+)(#[a-z1-9-]+)?((\.[a-z1-9-]+)*)(\{.+\})?/);
20
+ if (!matches)
21
+ return;
22
+ const [, tagName, id, classnames, , textContent] = matches;
23
+ const element = document.createElement(tagName);
24
+ if (id)
25
+ element.id = id.substring(1);
26
+ if (classnames)
27
+ element.className = classnames.substring(1).split('.').join(' ');
28
+ if (textContent)
29
+ element.textContent = textContent.substring(1, textContent.length - 1);
30
+ return element;
31
+ }
16
32
  //# sourceMappingURL=create-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-element.js","sourceRoot":"","sources":["../../../src/functions/other/create-element.ts"],"names":[],"mappings":";;AAEA,sCAUC;AAVD,SAAgB,aAAa,CAE3B,OAAU,EAAE,QAAoC,EAAE,IAAa;IAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;;YACxD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,IAAI;QAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"create-element.js","sourceRoot":"","sources":["../../../src/functions/other/create-element.ts"],"names":[],"mappings":";;AAEA,sCAiBC;AAjBD,SAAgB,aAAa,CAK3B,UAAa,EACb,QAA4E,EAC5E,IAAa;IAEb,MAAM,GAAG,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;;YACxD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,IAAI;QAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAmB,GAAM;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CACvB,mDAAmD,CACpD,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,AAAD,EAAG,WAAW,CAAC,GAAG,OAAO,CAAC;IAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAgC,CAAC,CAAC;IACzE,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,UAAU;QACZ,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,IAAI,WAAW;QACb,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/build/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { createElement } from './functions/other/create-element';
2
1
  export { debounce } from './functions/time/debounce';
3
2
  export { deepPartialSet } from './functions/other/deep-partial-set';
4
3
  export { groupBy } from './functions/array/group-by';
5
4
  export { memoize } from './functions/time/memoize';
6
5
  export { multiSort, ASC, DESC, sortBy } from './functions/array/multi-sort';
7
6
  export { times } from './functions/other/times';
7
+ export { AnyFn, AnyObject, DeepPartial, DeepPartialOrFn, Fn, NoExtras, } from './types';
package/build/index.js CHANGED
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.times = exports.sortBy = exports.DESC = exports.ASC = exports.multiSort = exports.memoize = exports.groupBy = exports.deepPartialSet = exports.debounce = exports.createElement = void 0;
4
- var create_element_1 = require("./functions/other/create-element");
5
- Object.defineProperty(exports, "createElement", { enumerable: true, get: function () { return create_element_1.createElement; } });
3
+ exports.times = exports.sortBy = exports.DESC = exports.ASC = exports.multiSort = exports.memoize = exports.groupBy = exports.deepPartialSet = exports.debounce = void 0;
6
4
  var debounce_1 = require("./functions/time/debounce");
7
5
  Object.defineProperty(exports, "debounce", { enumerable: true, get: function () { return debounce_1.debounce; } });
8
6
  var deep_partial_set_1 = require("./functions/other/deep-partial-set");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mEAA+D;AAAvD,+GAAA,aAAa,OAAA;AACrB,sDAAmD;AAA3C,oGAAA,QAAQ,OAAA;AAChB,uEAAkE;AAA1D,kHAAA,cAAc,OAAA;AACtB,uDAAmD;AAA3C,mGAAA,OAAO,OAAA;AACf,oDAAiD;AAAzC,kGAAA,OAAO,OAAA;AACf,2DAA0E;AAAlE,uGAAA,SAAS,OAAA;AAAE,iGAAA,GAAG,OAAA;AAAE,kGAAA,IAAI,OAAA;AAAE,oGAAA,MAAM,OAAA;AACpC,iDAA8C;AAAtC,8FAAA,KAAK,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AAA3C,oGAAA,QAAQ,OAAA;AAChB,uEAAkE;AAA1D,kHAAA,cAAc,OAAA;AACtB,uDAAmD;AAA3C,mGAAA,OAAO,OAAA;AACf,oDAAiD;AAAzC,kGAAA,OAAO,OAAA;AACf,2DAA0E;AAAlE,uGAAA,SAAS,OAAA;AAAE,iGAAA,GAAG,OAAA;AAAE,kGAAA,IAAI,OAAA;AAAE,oGAAA,MAAM,OAAA;AACpC,iDAA8C;AAAtC,8FAAA,KAAK,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rickard.antonsson/ts-utility",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "My favorite small helper functions",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",