microtags 0.0.5 → 0.0.9
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/README.md +239 -9
- package/dist/{chunk-E7ZGOHL3.js → chunk-P4QHFKTJ.js} +18 -2
- package/dist/chunk-P4QHFKTJ.js.map +7 -0
- package/dist/factory.d.ts.map +1 -1
- package/dist/index.cjs +8 -0
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +2 -2
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +3 -3
- package/dist/meta.json +19 -17
- package/dist/setup-context.d.ts +2 -2
- package/dist/setup-context.d.ts.map +1 -1
- package/dist/types.d.ts +19 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/util.cjs +17 -1
- package/dist/util.cjs.map +2 -2
- package/dist/util.d.ts +10 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +5 -3
- package/dist/util.min.js +1 -1
- package/dist/util.min.js.map +3 -3
- package/package.json +3 -2
- package/dist/chunk-E7ZGOHL3.js.map +0 -7
package/dist/meta.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"format": "esm"
|
|
18
18
|
},
|
|
19
19
|
"src/util.ts": {
|
|
20
|
-
"bytes":
|
|
20
|
+
"bytes": 2210,
|
|
21
21
|
"imports": [
|
|
22
22
|
{
|
|
23
23
|
"path": "<runtime>",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"format": "esm"
|
|
45
45
|
},
|
|
46
46
|
"src/setup-context.ts": {
|
|
47
|
-
"bytes":
|
|
47
|
+
"bytes": 3331,
|
|
48
48
|
"imports": [
|
|
49
49
|
{
|
|
50
50
|
"path": "src/reactivity.ts",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"format": "esm"
|
|
66
66
|
},
|
|
67
67
|
"src/factory.ts": {
|
|
68
|
-
"bytes":
|
|
68
|
+
"bytes": 7082,
|
|
69
69
|
"imports": [
|
|
70
70
|
{
|
|
71
71
|
"path": "src/reactivity.ts",
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"format": "esm"
|
|
118
118
|
},
|
|
119
119
|
"src/index.ts": {
|
|
120
|
-
"bytes":
|
|
120
|
+
"bytes": 134,
|
|
121
121
|
"imports": [
|
|
122
122
|
{
|
|
123
123
|
"path": "src/reactivity.ts",
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"imports": [],
|
|
150
150
|
"exports": [],
|
|
151
151
|
"inputs": {},
|
|
152
|
-
"bytes":
|
|
152
|
+
"bytes": 26056
|
|
153
153
|
},
|
|
154
154
|
"dist/index.js": {
|
|
155
155
|
"imports": [
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
"kind": "import-statement"
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
|
-
"path": "dist/chunk-
|
|
161
|
+
"path": "dist/chunk-P4QHFKTJ.js",
|
|
162
162
|
"kind": "import-statement"
|
|
163
163
|
},
|
|
164
164
|
{
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
"bytesInOutput": 0
|
|
178
178
|
},
|
|
179
179
|
"src/setup-context.ts": {
|
|
180
|
-
"bytesInOutput":
|
|
180
|
+
"bytesInOutput": 1999
|
|
181
181
|
},
|
|
182
182
|
"src/factory.ts": {
|
|
183
183
|
"bytesInOutput": 3594
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
"bytesInOutput": 3646
|
|
187
187
|
}
|
|
188
188
|
},
|
|
189
|
-
"bytes":
|
|
189
|
+
"bytes": 9668
|
|
190
190
|
},
|
|
191
191
|
"dist/render.js.map": {
|
|
192
192
|
"imports": [],
|
|
@@ -287,7 +287,7 @@
|
|
|
287
287
|
"dist/util.js": {
|
|
288
288
|
"imports": [
|
|
289
289
|
{
|
|
290
|
-
"path": "dist/chunk-
|
|
290
|
+
"path": "dist/chunk-P4QHFKTJ.js",
|
|
291
291
|
"kind": "import-statement"
|
|
292
292
|
},
|
|
293
293
|
{
|
|
@@ -300,19 +300,20 @@
|
|
|
300
300
|
"coerceJson",
|
|
301
301
|
"coerceNumber",
|
|
302
302
|
"coerceString",
|
|
303
|
-
"runCleanups"
|
|
303
|
+
"runCleanups",
|
|
304
|
+
"toAttributes"
|
|
304
305
|
],
|
|
305
306
|
"entryPoint": "src/util.ts",
|
|
306
307
|
"inputs": {},
|
|
307
|
-
"bytes":
|
|
308
|
+
"bytes": 300
|
|
308
309
|
},
|
|
309
|
-
"dist/chunk-
|
|
310
|
+
"dist/chunk-P4QHFKTJ.js.map": {
|
|
310
311
|
"imports": [],
|
|
311
312
|
"exports": [],
|
|
312
313
|
"inputs": {},
|
|
313
|
-
"bytes":
|
|
314
|
+
"bytes": 3311
|
|
314
315
|
},
|
|
315
|
-
"dist/chunk-
|
|
316
|
+
"dist/chunk-P4QHFKTJ.js": {
|
|
316
317
|
"imports": [
|
|
317
318
|
{
|
|
318
319
|
"path": "dist/chunk-7QVYU63E.js",
|
|
@@ -324,14 +325,15 @@
|
|
|
324
325
|
"coerceJson",
|
|
325
326
|
"coerceNumber",
|
|
326
327
|
"coerceString",
|
|
327
|
-
"runCleanups"
|
|
328
|
+
"runCleanups",
|
|
329
|
+
"toAttributes"
|
|
328
330
|
],
|
|
329
331
|
"inputs": {
|
|
330
332
|
"src/util.ts": {
|
|
331
|
-
"bytesInOutput":
|
|
333
|
+
"bytesInOutput": 1188
|
|
332
334
|
}
|
|
333
335
|
},
|
|
334
|
-
"bytes":
|
|
336
|
+
"bytes": 1401
|
|
335
337
|
},
|
|
336
338
|
"dist/chunk-7QVYU63E.js.map": {
|
|
337
339
|
"imports": [],
|
package/dist/setup-context.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { SetupContext,
|
|
1
|
+
import type { SetupContext, PropsSignals, PropDef } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Build the ctx object passed to a component's setup() callback.
|
|
4
4
|
* The cleanups array is mutated in place so factory.ts can drain it
|
|
5
5
|
* on disconnect without copying.
|
|
6
6
|
*/
|
|
7
|
-
export declare function makeSetupContext<Props extends Record<string, PropDef> = Record<string, PropDef>>(host: HTMLElement, props: PropsSignals<Props>, refs: Record<string, Element | Element[]>, contexts: Record<string, unknown>, cleanups:
|
|
7
|
+
export declare function makeSetupContext<Props extends Record<string, PropDef> = Record<string, PropDef>>(host: HTMLElement, props: PropsSignals<Props>, refs: Record<string, Element | Element[]>, contexts: Record<string, unknown>, cleanups: (() => void)[]): SetupContext<Props, any, any>;
|
|
8
8
|
//# sourceMappingURL=setup-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-context.d.ts","sourceRoot":"","sources":["../src/setup-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,YAAY,
|
|
1
|
+
{"version":3,"file":"setup-context.d.ts","sourceRoot":"","sources":["../src/setup-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,YAAY,EAEZ,YAAY,EACZ,OAAO,EAEV,MAAM,YAAY,CAAA;AAEnB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC5B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE/D,IAAI,EAAC,WAAW,EAChB,KAAK,EAAC,YAAY,CAAC,KAAK,CAAC,EACzB,IAAI,EAAC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC,EACxC,QAAQ,EAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAC,CAAC,MAAM,IAAI,CAAC,EAAE,GACzB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CA0F9B"}
|
package/dist/types.d.ts
CHANGED
|
@@ -77,13 +77,19 @@ export interface MultipleRefDef<T extends HTMLElement = HTMLElement> extends Ref
|
|
|
77
77
|
export type RefsMap<Defs extends Record<string, RefDef>> = {
|
|
78
78
|
[K in keyof Defs]: Defs[K] extends MultipleRefDef<infer T> ? T[] : Defs[K] extends SingleRefDef<infer T> ? T : never;
|
|
79
79
|
};
|
|
80
|
-
/** A teardown function registered via ctx.onCleanup or ctx.on. */
|
|
81
|
-
export type Cleanup = () => void;
|
|
82
80
|
/** Options for ctx.bind. Omit `event` for a one-way binding. */
|
|
83
81
|
export type BindOptions = {
|
|
84
82
|
prop?: string;
|
|
85
83
|
event?: string;
|
|
86
84
|
};
|
|
85
|
+
/**
|
|
86
|
+
* A type-only helper that narrows `CustomEvent` to a specific `target`
|
|
87
|
+
* and `detail`. Combine with `HTMLElementEventMap` augmentation for
|
|
88
|
+
* app-wide type-safe events that flow through `ctx.emit` and `ctx.on`.
|
|
89
|
+
*/
|
|
90
|
+
export type TypedEvent<T extends EventTarget, D = unknown> = CustomEvent<D> & {
|
|
91
|
+
target: T;
|
|
92
|
+
};
|
|
87
93
|
/**
|
|
88
94
|
* The setup context (ctx) passed to every component's setup() callback.
|
|
89
95
|
* This is the shape declaration so factory.ts and define.ts can typecheck
|
|
@@ -106,11 +112,20 @@ export interface SetupContext<Props extends Record<string, PropDef> = Record<str
|
|
|
106
112
|
/** Add a DOM event listener that is auto-removed on disconnect. */
|
|
107
113
|
on<K extends keyof HTMLElementEventMap>(target: EventTarget, type: K, handler: (event: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
|
|
108
114
|
on(target: EventTarget, type: string, handler: EventListener, options?: boolean | AddEventListenerOptions): void;
|
|
115
|
+
/**
|
|
116
|
+
* Dispatch an event from the host. Pass a pre-built `Event` to
|
|
117
|
+
* dispatch it as-is, or a name (plus optional `detail` and
|
|
118
|
+
* `CustomEventInit` options) to construct and dispatch a
|
|
119
|
+
* bubbling `CustomEvent`. Returns `dispatchEvent`'s result:
|
|
120
|
+
* `false` when a cancelable event had `preventDefault()` called.
|
|
121
|
+
*/
|
|
122
|
+
emit(event: Event): boolean;
|
|
123
|
+
emit<D>(name: string, detail?: D, options?: Omit<CustomEventInit<D>, 'detail'>): boolean;
|
|
109
124
|
/**
|
|
110
125
|
* Run an alien-signals effect that auto-tracks the signals it reads.
|
|
111
126
|
* The effect is auto-disposed on disconnect.
|
|
112
127
|
*/
|
|
113
|
-
effect(fn: () => void |
|
|
128
|
+
effect(fn: () => void | (() => void)): void;
|
|
114
129
|
/**
|
|
115
130
|
* Bind a signal to a DOM element. The signal is the source of
|
|
116
131
|
* truth: the element property is set from the signal on bind and
|
|
@@ -126,7 +141,7 @@ export interface SetupContext<Props extends Record<string, PropDef> = Record<str
|
|
|
126
141
|
*/
|
|
127
142
|
bind<T>(signal: Signal<T>, element: Element, options?: BindOptions): void;
|
|
128
143
|
/** Register custom teardown to run on disconnect. */
|
|
129
|
-
onCleanup(fn:
|
|
144
|
+
onCleanup(fn: () => void): void;
|
|
130
145
|
/** Read an optional context value. */
|
|
131
146
|
consume<T>(token: ContextToken<T>): T | undefined;
|
|
132
147
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/util.cjs
CHANGED
|
@@ -25,7 +25,8 @@ __export(util_exports, {
|
|
|
25
25
|
coerceJson: () => coerceJson,
|
|
26
26
|
coerceNumber: () => coerceNumber,
|
|
27
27
|
coerceString: () => coerceString,
|
|
28
|
-
runCleanups: () => runCleanups
|
|
28
|
+
runCleanups: () => runCleanups,
|
|
29
|
+
toAttributes: () => toAttributes
|
|
29
30
|
});
|
|
30
31
|
module.exports = __toCommonJS(util_exports);
|
|
31
32
|
function coerceNumber(raw) {
|
|
@@ -65,4 +66,19 @@ function runCleanups(fns) {
|
|
|
65
66
|
if (caught) throw firstError;
|
|
66
67
|
}
|
|
67
68
|
__name(runCleanups, "runCleanups");
|
|
69
|
+
function toAttributes(attrs) {
|
|
70
|
+
return Object.keys(attrs).reduce((acc, k) => {
|
|
71
|
+
const value = attrs[k];
|
|
72
|
+
if (!value) return acc;
|
|
73
|
+
if (typeof value === "boolean") {
|
|
74
|
+
if (value) return (acc + ` ${k}`).trim();
|
|
75
|
+
return acc;
|
|
76
|
+
}
|
|
77
|
+
if (Array.isArray(value)) {
|
|
78
|
+
return acc + ` ${k}="${value.join(" ")}"`;
|
|
79
|
+
}
|
|
80
|
+
return (acc + ` ${k}="${value}"`).trim();
|
|
81
|
+
}, "");
|
|
82
|
+
}
|
|
83
|
+
__name(toAttributes, "toAttributes");
|
|
68
84
|
//# sourceMappingURL=util.cjs.map
|
package/dist/util.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/util.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["/**\n * Coerce a raw attribute string to a number.\n * Returns NaN if the value cannot be parsed.\n */\nexport function coerceNumber (raw:string | null):number {\n return raw === null ? NaN : Number(raw)\n}\n\n/**\n * Coerce a raw attribute string to a string.\n * Converts null to empty string.\n */\nexport function coerceString (raw:string | null):string {\n return raw ?? ''\n}\n\n/**\n * Coerce a raw attribute string to a boolean.\n * Absence (null) is false; presence of any value (including '') is true.\n */\nexport function coerceBoolean (raw:string | null):boolean {\n return raw !== null\n}\n\n/**\n * Coerce a raw attribute string to a parsed JSON value.\n * Returns undefined if the value is null or cannot be parsed.\n */\nexport function coerceJson<T = unknown> (raw:string | null):T | undefined {\n if (raw === null) return undefined\n try {\n return JSON.parse(raw) as T\n } catch {\n return undefined\n }\n}\n\n/**\n * Run every cleanup in the list, ensuring all run even if some throw.\n * After all have run, re-throws the first error encountered.\n */\nexport function runCleanups (fns:(() => void)[]):void {\n let firstError:unknown\n let caught = false\n for (const fn of fns) {\n try {\n fn()\n } catch (err) {\n if (!caught) {\n firstError = err\n caught = true\n }\n }\n }\n if (caught) throw firstError\n}\n\nexport type Attrs = Record<string, undefined|null|string|number|boolean|(string|number)[]>\n\n/**\n * Transform an object into an HTML attributes string. The object should be\n * like `{ attributeName: value }`.\n *\n * @param {Attrs} attrs An object for the attributes.\n * @returns {string} A string suitable for use as HTML attributes.\n */\nexport function toAttributes (attrs:Attrs):string {\n return Object.keys(attrs).reduce((acc, k) => {\n const value = attrs[k]\n if (!value) return acc\n\n if (typeof value === 'boolean') {\n if (value) return (acc + ` ${k}`).trim()\n return acc\n }\n\n if (Array.isArray(value)) {\n return (acc + ` ${k}=\"${value.join(' ')}\"`)\n }\n\n return (acc + ` ${k}=\"${value}\"`).trim()\n }, '')\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,SAAS,aAAc,KAA0B;AACpD,SAAO,QAAQ,OAAO,MAAM,OAAO,GAAG;AAC1C;AAFgB;AAQT,SAAS,aAAc,KAA0B;AACpD,SAAO,OAAO;AAClB;AAFgB;AAQT,SAAS,cAAe,KAA2B;AACtD,SAAO,QAAQ;AACnB;AAFgB;AAQT,SAAS,WAAyB,KAAiC;AACtE,MAAI,QAAQ,KAAM,QAAO;AACzB,MAAI;AACA,WAAO,KAAK,MAAM,GAAG;AAAA,EACzB,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ;AAPgB;AAaT,SAAS,YAAa,KAAyB;AAClD,MAAI;AACJ,MAAI,SAAS;AACb,aAAW,MAAM,KAAK;AAClB,QAAI;AACA,SAAG;AAAA,IACP,SAAS,KAAK;AACV,UAAI,CAAC,QAAQ;AACT,qBAAa;AACb,iBAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AACA,MAAI,OAAQ,OAAM;AACtB;AAdgB;AAyBT,SAAS,aAAc,OAAoB;AAC9C,SAAO,OAAO,KAAK,KAAK,EAAE,OAAO,CAAC,KAAK,MAAM;AACzC,UAAM,QAAQ,MAAM,CAAC;AACrB,QAAI,CAAC,MAAO,QAAO;AAEnB,QAAI,OAAO,UAAU,WAAW;AAC5B,UAAI,MAAO,SAAQ,MAAM,IAAI,CAAC,IAAI,KAAK;AACvC,aAAO;AAAA,IACX;AAEA,QAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,aAAQ,MAAM,IAAI,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC;AAAA,IAC3C;AAEA,YAAQ,MAAM,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK;AAAA,EAC3C,GAAG,EAAE;AACT;AAhBgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Cleanup } from './types.js';
|
|
2
1
|
/**
|
|
3
2
|
* Coerce a raw attribute string to a number.
|
|
4
3
|
* Returns NaN if the value cannot be parsed.
|
|
@@ -23,5 +22,14 @@ export declare function coerceJson<T = unknown>(raw: string | null): T | undefin
|
|
|
23
22
|
* Run every cleanup in the list, ensuring all run even if some throw.
|
|
24
23
|
* After all have run, re-throws the first error encountered.
|
|
25
24
|
*/
|
|
26
|
-
export declare function runCleanups(fns:
|
|
25
|
+
export declare function runCleanups(fns: (() => void)[]): void;
|
|
26
|
+
export type Attrs = Record<string, undefined | null | string | number | boolean | (string | number)[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Transform an object into an HTML attributes string. The object should be
|
|
29
|
+
* like `{ attributeName: value }`.
|
|
30
|
+
*
|
|
31
|
+
* @param {Attrs} attrs An object for the attributes.
|
|
32
|
+
* @returns {string} A string suitable for use as HTML attributes.
|
|
33
|
+
*/
|
|
34
|
+
export declare function toAttributes(attrs: Attrs): string;
|
|
27
35
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,YAAY,CAAE,GAAG,EAAC,MAAM,GAAG,IAAI,GAAE,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAE,GAAG,EAAC,MAAM,GAAG,IAAI,GAAE,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAE,GAAG,EAAC,MAAM,GAAG,IAAI,GAAE,OAAO,CAExD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAG,GAAG,EAAC,MAAM,GAAG,IAAI,GAAE,CAAC,GAAG,SAAS,CAOxE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAE,GAAG,EAAC,CAAC,MAAM,IAAI,CAAC,EAAE,GAAE,IAAI,CAcpD;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,GAAC,IAAI,GAAC,MAAM,GAAC,MAAM,GAAC,OAAO,GAAC,CAAC,MAAM,GAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAE1F;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAE,KAAK,EAAC,KAAK,GAAE,MAAM,CAgBhD"}
|
package/dist/util.js
CHANGED
|
@@ -3,14 +3,16 @@ import {
|
|
|
3
3
|
coerceJson,
|
|
4
4
|
coerceNumber,
|
|
5
5
|
coerceString,
|
|
6
|
-
runCleanups
|
|
7
|
-
|
|
6
|
+
runCleanups,
|
|
7
|
+
toAttributes
|
|
8
|
+
} from "./chunk-P4QHFKTJ.js";
|
|
8
9
|
import "./chunk-7QVYU63E.js";
|
|
9
10
|
export {
|
|
10
11
|
coerceBoolean,
|
|
11
12
|
coerceJson,
|
|
12
13
|
coerceNumber,
|
|
13
14
|
coerceString,
|
|
14
|
-
runCleanups
|
|
15
|
+
runCleanups,
|
|
16
|
+
toAttributes
|
|
15
17
|
};
|
|
16
18
|
//# sourceMappingURL=util.js.map
|
package/dist/util.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var i=Object.defineProperty;var u=(r,n)=>i(r,"name",{value:n,configurable:!0});function f(r){return r===null?NaN:Number(r)}u(f,"coerceNumber");function s(r){return r??""}u(s,"coerceString");function c(r){return r!==null}u(c,"coerceBoolean");function d(r){if(r!==null)try{return JSON.parse(r)}catch{return}}u(d,"coerceJson");function g(r){let n,e=!1;for(let t of r)try{t()}catch(o){e||(n=o,e=!0)}if(e)throw n}u(g,"runCleanups");function p(r){return Object.keys(r).reduce((n,e)=>{let t=r[e];return t?typeof t=="boolean"?t?(n+` ${e}`).trim():n:Array.isArray(t)?n+` ${e}="${t.join(" ")}"`:(n+` ${e}="${t}"`).trim():n},"")}u(p,"toAttributes");export{c as coerceBoolean,d as coerceJson,f as coerceNumber,s as coerceString,g as runCleanups,p as toAttributes};
|
|
2
2
|
//# sourceMappingURL=util.min.js.map
|
package/dist/util.min.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/util.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "+
|
|
6
|
-
"names": ["coerceNumber", "raw", "__name", "coerceString", "coerceBoolean", "coerceJson", "runCleanups", "fns", "firstError", "caught", "fn", "err"]
|
|
4
|
+
"sourcesContent": ["/**\n * Coerce a raw attribute string to a number.\n * Returns NaN if the value cannot be parsed.\n */\nexport function coerceNumber (raw:string | null):number {\n return raw === null ? NaN : Number(raw)\n}\n\n/**\n * Coerce a raw attribute string to a string.\n * Converts null to empty string.\n */\nexport function coerceString (raw:string | null):string {\n return raw ?? ''\n}\n\n/**\n * Coerce a raw attribute string to a boolean.\n * Absence (null) is false; presence of any value (including '') is true.\n */\nexport function coerceBoolean (raw:string | null):boolean {\n return raw !== null\n}\n\n/**\n * Coerce a raw attribute string to a parsed JSON value.\n * Returns undefined if the value is null or cannot be parsed.\n */\nexport function coerceJson<T = unknown> (raw:string | null):T | undefined {\n if (raw === null) return undefined\n try {\n return JSON.parse(raw) as T\n } catch {\n return undefined\n }\n}\n\n/**\n * Run every cleanup in the list, ensuring all run even if some throw.\n * After all have run, re-throws the first error encountered.\n */\nexport function runCleanups (fns:(() => void)[]):void {\n let firstError:unknown\n let caught = false\n for (const fn of fns) {\n try {\n fn()\n } catch (err) {\n if (!caught) {\n firstError = err\n caught = true\n }\n }\n }\n if (caught) throw firstError\n}\n\nexport type Attrs = Record<string, undefined|null|string|number|boolean|(string|number)[]>\n\n/**\n * Transform an object into an HTML attributes string. The object should be\n * like `{ attributeName: value }`.\n *\n * @param {Attrs} attrs An object for the attributes.\n * @returns {string} A string suitable for use as HTML attributes.\n */\nexport function toAttributes (attrs:Attrs):string {\n return Object.keys(attrs).reduce((acc, k) => {\n const value = attrs[k]\n if (!value) return acc\n\n if (typeof value === 'boolean') {\n if (value) return (acc + ` ${k}`).trim()\n return acc\n }\n\n if (Array.isArray(value)) {\n return (acc + ` ${k}=\"${value.join(' ')}\"`)\n }\n\n return (acc + ` ${k}=\"${value}\"`).trim()\n }, '')\n}\n"],
|
|
5
|
+
"mappings": "+EAIO,SAASA,EAAcC,EAA0B,CACpD,OAAOA,IAAQ,KAAO,IAAM,OAAOA,CAAG,CAC1C,CAFgBC,EAAAF,EAAA,gBAQT,SAASG,EAAcF,EAA0B,CACpD,OAAOA,GAAO,EAClB,CAFgBC,EAAAC,EAAA,gBAQT,SAASC,EAAeH,EAA2B,CACtD,OAAOA,IAAQ,IACnB,CAFgBC,EAAAE,EAAA,iBAQT,SAASC,EAAyBJ,EAAiC,CACtE,GAAIA,IAAQ,KACZ,GAAI,CACA,OAAO,KAAK,MAAMA,CAAG,CACzB,MAAQ,CACJ,MACJ,CACJ,CAPgBC,EAAAG,EAAA,cAaT,SAASC,EAAaC,EAAyB,CAClD,IAAIC,EACAC,EAAS,GACb,QAAWC,KAAMH,EACb,GAAI,CACAG,EAAG,CACP,OAASC,EAAK,CACLF,IACDD,EAAaG,EACbF,EAAS,GAEjB,CAEJ,GAAIA,EAAQ,MAAMD,CACtB,CAdgBN,EAAAI,EAAA,eAyBT,SAASM,EAAcC,EAAoB,CAC9C,OAAO,OAAO,KAAKA,CAAK,EAAE,OAAO,CAACC,EAAKC,IAAM,CACzC,IAAMC,EAAQH,EAAME,CAAC,EACrB,OAAKC,EAED,OAAOA,GAAU,UACbA,GAAeF,EAAM,IAAIC,CAAC,IAAI,KAAK,EAChCD,EAGP,MAAM,QAAQE,CAAK,EACXF,EAAM,IAAIC,CAAC,KAAKC,EAAM,KAAK,GAAG,CAAC,KAGnCF,EAAM,IAAIC,CAAC,KAAKC,CAAK,KAAK,KAAK,EAXpBF,CAYvB,EAAG,EAAE,CACT,CAhBgBZ,EAAAU,EAAA",
|
|
6
|
+
"names": ["coerceNumber", "raw", "__name", "coerceString", "coerceBoolean", "coerceJson", "runCleanups", "fns", "firstError", "caught", "fn", "err", "toAttributes", "attrs", "acc", "k", "value"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "microtags",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.9",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"./example/**"
|
|
7
7
|
],
|
|
@@ -23,11 +23,12 @@
|
|
|
23
23
|
"build": "mkdir -p ./dist && rm -rf ./dist/* && npm run build-cjs && npm run build-esm && npm run build-esm:min",
|
|
24
24
|
"build-html": "npm run --silent ssr > example/index.html",
|
|
25
25
|
"size": "size-limit",
|
|
26
|
+
"inject-size": "esbuild ./scripts/inject-size.ts --bundle --platform=node --format=cjs | node",
|
|
26
27
|
"start": "npm run build-html && vite",
|
|
27
28
|
"ssr": "esbuild ./example/ssr.ts --bundle --platform=node --format=cjs | node ",
|
|
28
29
|
"toc": "markdown-toc --maxdepth 4 -i README.md",
|
|
29
30
|
"preversion": "npm run lint",
|
|
30
|
-
"version": "npm run toc && auto-changelog -p --template keepachangelog --breaking-pattern 'BREAKING CHANGE:' && git add CHANGELOG.md README.md",
|
|
31
|
+
"version": "npm run toc && auto-changelog -p --template keepachangelog --breaking-pattern 'BREAKING CHANGE:' && npm run inject-size && git add CHANGELOG.md README.md",
|
|
31
32
|
"postversion": "git push --follow-tags && npm publish",
|
|
32
33
|
"prepublishOnly": "npm run build"
|
|
33
34
|
},
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/util.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Cleanup } from './types.js'\n\n/**\n * Coerce a raw attribute string to a number.\n * Returns NaN if the value cannot be parsed.\n */\nexport function coerceNumber (raw:string | null):number {\n return raw === null ? NaN : Number(raw)\n}\n\n/**\n * Coerce a raw attribute string to a string.\n * Converts null to empty string.\n */\nexport function coerceString (raw:string | null):string {\n return raw ?? ''\n}\n\n/**\n * Coerce a raw attribute string to a boolean.\n * Absence (null) is false; presence of any value (including '') is true.\n */\nexport function coerceBoolean (raw:string | null):boolean {\n return raw !== null\n}\n\n/**\n * Coerce a raw attribute string to a parsed JSON value.\n * Returns undefined if the value is null or cannot be parsed.\n */\nexport function coerceJson<T = unknown> (raw:string | null):T | undefined {\n if (raw === null) return undefined\n try {\n return JSON.parse(raw) as T\n } catch {\n return undefined\n }\n}\n\n/**\n * Run every cleanup in the list, ensuring all run even if some throw.\n * After all have run, re-throws the first error encountered.\n */\nexport function runCleanups (fns:Cleanup[]):void {\n let firstError:unknown\n let caught = false\n for (const fn of fns) {\n try {\n fn()\n } catch (err) {\n if (!caught) {\n firstError = err\n caught = true\n }\n }\n }\n if (caught) throw firstError\n}\n"],
|
|
5
|
-
"mappings": ";;;;;AAMO,SAAS,aAAc,KAA0B;AACpD,SAAO,QAAQ,OAAO,MAAM,OAAO,GAAG;AAC1C;AAFgB;AAQT,SAAS,aAAc,KAA0B;AACpD,SAAO,OAAO;AAClB;AAFgB;AAQT,SAAS,cAAe,KAA2B;AACtD,SAAO,QAAQ;AACnB;AAFgB;AAQT,SAAS,WAAyB,KAAiC;AACtE,MAAI,QAAQ,KAAM,QAAO;AACzB,MAAI;AACA,WAAO,KAAK,MAAM,GAAG;AAAA,EACzB,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ;AAPgB;AAaT,SAAS,YAAa,KAAoB;AAC7C,MAAI;AACJ,MAAI,SAAS;AACb,aAAW,MAAM,KAAK;AAClB,QAAI;AACA,SAAG;AAAA,IACP,SAAS,KAAK;AACV,UAAI,CAAC,QAAQ;AACT,qBAAa;AACb,iBAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AACA,MAAI,OAAQ,OAAM;AACtB;AAdgB;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|