browser-extension-utils 0.0.11 → 0.0.13

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/lib/index.d.ts CHANGED
@@ -51,7 +51,8 @@ export function addStyle(styleText: string): HTMLElement
51
51
  export function addEventListener(
52
52
  element: HTMLElement | Document | EventTarget,
53
53
  type: string,
54
- listener: Function
54
+ listener: EventListenerOrEventListenerObject,
55
+ options?: boolean | AddEventListenerOptions
55
56
  ): () => void
56
57
 
57
58
  export function addEventListener(
@@ -67,6 +68,12 @@ export function setAttribute(
67
68
  value: string
68
69
  ): void
69
70
 
71
+ export type SetStyle = (
72
+ element: HTMLElement,
73
+ style: string | Record<string, unknown>,
74
+ overwrite?: boolean
75
+ ) => void
76
+
70
77
  export function setStyle(
71
78
  element: HTMLElement,
72
79
  style: string | Record<string, unknown>,
@@ -77,6 +84,6 @@ export function toStyleMap(styleText: string): Record<string, string>
77
84
 
78
85
  export function noStyleSpace(text: string): string
79
86
 
80
- export function createSetStyle(styleText: string): setStyle
87
+ export function createSetStyle(styleText: string): SetStyle
81
88
 
82
89
  export function isUrl(text: string): boolean
package/lib/index.js CHANGED
@@ -10,11 +10,11 @@ export const toCamelCase = function (text) {
10
10
  }
11
11
 
12
12
  export const $ = (element, selectors) =>
13
- typeof element === "object"
13
+ element && typeof element === "object"
14
14
  ? element.querySelector(selectors)
15
15
  : doc.querySelector(element)
16
16
  export const $$ = (element, selectors) =>
17
- typeof element === "object"
17
+ element && typeof element === "object"
18
18
  ? [...element.querySelectorAll(selectors)]
19
19
  : [...doc.querySelectorAll(element)]
20
20
  export const querySelector = $
@@ -41,6 +41,10 @@ export const createElement = (tagName, attributes) => {
41
41
  }
42
42
 
43
43
  export const addElement = (parentNode, tagName, attributes) => {
44
+ if (!parentNode) {
45
+ return
46
+ }
47
+
44
48
  if (typeof parentNode === "string") {
45
49
  attributes = tagName
46
50
  tagName = parentNode
@@ -59,6 +63,10 @@ export const addStyle = (styleText) => {
59
63
  }
60
64
 
61
65
  export const addEventListener = (element, type, listener, options) => {
66
+ if (!element) {
67
+ return () => 0
68
+ }
69
+
62
70
  if (typeof type === "object") {
63
71
  const removers = []
64
72
  for (const type1 in type) {
@@ -81,11 +89,16 @@ export const addEventListener = (element, type, listener, options) => {
81
89
  }
82
90
  }
83
91
 
84
- export const getAttribute = (element, name) => element.getAttribute(name)
92
+ export const getAttribute = (element, name) =>
93
+ element ? element.getAttribute(name) : null
85
94
  export const setAttribute = (element, name, value) =>
86
- element.setAttribute(name, value)
95
+ element ? element.setAttribute(name, value) : undefined
87
96
 
88
97
  export const setStyle = (element, values, overwrite) => {
98
+ if (!element) {
99
+ return
100
+ }
101
+
89
102
  // element.setAttribute("style", value) -> Fail when violates CSP
90
103
  const style = element.style
91
104
 
package/lib/userscript.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from "./index.js"
2
- /* eslint-disable camelcase */
2
+ /* eslint-disable camelcase, new-cap */
3
3
  // eslint-disable-next-line no-unused-expressions, n/prefer-global/process
4
4
  process.env.PLASMO_TAG === "dev" &&
5
5
  (() => {
@@ -14,7 +14,8 @@ process.env.PLASMO_TAG === "dev" &&
14
14
  }
15
15
  })()
16
16
 
17
- export const addElement = GM_addElement
17
+ export const addElement = (parentNode, tagName, attributes) =>
18
+ GM_addElement(parentNode, tagName, attributes)
18
19
 
19
- export const addStyle = GM_addStyle
20
- /* eslint-enable camelcase */
20
+ export const addStyle = (styleText) => GM_addStyle(styleText)
21
+ /* eslint-enable camelcase, new-cap */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browser-extension-utils",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "description": "Utilities for developing browser extensions and userscripts",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",