@zero-dependency/dom 0.0.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.
@@ -0,0 +1,15 @@
1
+ @zero-dependency/dom:build: cache hit, replaying output 3d4c8a2aacd0dcb0
2
+ @zero-dependency/dom:build: 
3
+ @zero-dependency/dom:build: > @zero-dependency/dom@0.0.0 build /home/crashmax/github/zero-dependency/packages/dom
4
+ @zero-dependency/dom:build: > vite build
5
+ @zero-dependency/dom:build: 
6
+ @zero-dependency/dom:build: vite v3.1.4 building for production...
7
+ @zero-dependency/dom:build: transforming...
8
+ @zero-dependency/dom:build: ✓ 3 modules transformed.
9
+ @zero-dependency/dom:build: rendering chunks...
10
+ @zero-dependency/dom:build: dist/index.es.js 0.54 KiB / gzip: 0.29 KiB
11
+ @zero-dependency/dom:build: dist/index.umd.js 0.68 KiB / gzip: 0.42 KiB
12
+ @zero-dependency/dom:build: 
13
+ @zero-dependency/dom:build: [vite:dts] Start generate declaration files...
14
+ @zero-dependency/dom:build: [vite:dts] Declaration files built in 2196ms.
15
+ @zero-dependency/dom:build: 
@@ -0,0 +1,2 @@
1
+ export * from './observeElement.js';
2
+ export * from './waitObserveElement.js';
@@ -0,0 +1,29 @@
1
+ function i(t, o, r = document.body) {
2
+ const e = new MutationObserver((n) => {
3
+ for (const s of n)
4
+ for (const u of s.addedNodes) {
5
+ const c = u;
6
+ c.matches && c.matches(t) && o(c);
7
+ }
8
+ });
9
+ return e.observe(r, {
10
+ attributes: !0,
11
+ childList: !0,
12
+ subtree: !0
13
+ }), e;
14
+ }
15
+ function d(t, o = !0, r = document.body) {
16
+ return new Promise((e) => {
17
+ const n = i(
18
+ t,
19
+ (s) => {
20
+ o && n.disconnect(), e(s);
21
+ },
22
+ r
23
+ );
24
+ });
25
+ }
26
+ export {
27
+ i as observeElement,
28
+ d as waitObserveElement
29
+ };
@@ -0,0 +1 @@
1
+ (function(e,t){typeof exports=="object"&&typeof module<"u"?t(exports):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e["@zero-dependency/dom"]={}))})(this,function(e){"use strict";function t(o,s,r=document.body){const n=new MutationObserver(i=>{for(const d of i)for(const c of d.addedNodes){const u=c;u.matches&&u.matches(o)&&s(u)}});return n.observe(r,{attributes:!0,childList:!0,subtree:!0}),n}function f(o,s=!0,r=document.body){return new Promise(n=>{const i=t(o,d=>{s&&i.disconnect(),n(d)},r)})}e.observeElement=t,e.waitObserveElement=f,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -0,0 +1 @@
1
+ export declare function observeElement(selector: string, callback: (el: Element) => void, target?: HTMLElement): MutationObserver;
@@ -0,0 +1 @@
1
+ export declare function waitObserveElement(selector: string, disconnect?: boolean, target?: HTMLElement): Promise<Element>;
package/package.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "@zero-dependency/dom",
3
+ "version": "0.0.0",
4
+ "type": "module",
5
+ "types": "./dist/index.d.ts",
6
+ "module": "./dist/index.es.js",
7
+ "main": "./dist/index.umd.js",
8
+ "scripts": {
9
+ "dev": "vite build --watch",
10
+ "build": "vite build"
11
+ }
12
+ }
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './observeElement.js'
2
+ export * from './waitObserveElement.js'
@@ -0,0 +1,24 @@
1
+ export function observeElement(
2
+ selector: string,
3
+ callback: (el: Element) => void,
4
+ target = document.body
5
+ ) {
6
+ const observer = new MutationObserver((mutations) => {
7
+ for (const mutation of mutations) {
8
+ for (const node of mutation.addedNodes) {
9
+ const el = node as Element
10
+ if (el.matches && el.matches(selector)) {
11
+ callback(el)
12
+ }
13
+ }
14
+ }
15
+ })
16
+
17
+ observer.observe(target, {
18
+ attributes: true,
19
+ childList: true,
20
+ subtree: true
21
+ })
22
+
23
+ return observer
24
+ }
@@ -0,0 +1,21 @@
1
+ import { observeElement } from './observeElement.js'
2
+
3
+ export function waitObserveElement(
4
+ selector: string,
5
+ disconnect = true,
6
+ target = document.body
7
+ ): Promise<Element> {
8
+ return new Promise((resolve) => {
9
+ const observer = observeElement(
10
+ selector,
11
+ (el) => {
12
+ if (disconnect) {
13
+ observer.disconnect()
14
+ }
15
+
16
+ resolve(el)
17
+ },
18
+ target
19
+ )
20
+ })
21
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "@crashmax/tsconfig",
3
+ "compilerOptions": {
4
+ "outDir": "dist"
5
+ },
6
+ "include": [
7
+ "src/**/*"
8
+ ]
9
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,17 @@
1
+ import { resolve } from 'path'
2
+ import { defineConfig } from 'vite'
3
+ import dts from 'vite-plugin-dts'
4
+ import { name } from './package.json'
5
+
6
+ export default defineConfig({
7
+ plugins: [dts()],
8
+ build: {
9
+ target: 'esnext',
10
+ lib: {
11
+ entry: resolve(__dirname, 'src/index.ts'),
12
+ fileName: (format) => `index.${format}.js`,
13
+ formats: ['es', 'umd'],
14
+ name
15
+ }
16
+ }
17
+ })