vue-is-defined 1.0.5 → 1.0.7

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 CHANGED
@@ -1,10 +1,10 @@
1
1
  <p align="center">
2
- <img src="logo.svg" alt="vue-is-defined" width="180" />
2
+ <img src="https://raw.githubusercontent.com/vuefrag/vue-is-defined/main/banner.svg" alt="vue-is-defined" width="100%" />
3
3
  </p>
4
4
 
5
5
  <h1 align="center">vue-is-defined</h1>
6
6
 
7
- <p align="center"></p>
7
+ <p align="center">A Vue 3 composition API type guard utility that checks if a ref's value is defined (not null or undefined), with proper TypeScript type narrowing for safe property access.</p>
8
8
 
9
9
  <p align="center">
10
10
  <a href="https://www.npmjs.com/package/vue-is-defined"><img src="https://img.shields.io/npm/v/vue-is-defined.svg" alt="npm version" /></a>
@@ -20,12 +20,16 @@ npm install vue-is-defined
20
20
  ## Usage
21
21
 
22
22
  ```ts
23
- import { isDefined } from '@vueuse/core'
23
+ import { isDefined } from 'vue-is-defined'
24
+ import { ref, computed } from 'vue'
24
25
 
25
- const example = ref(Math.random() ? 'example' : undefined) // Ref<string | undefined>
26
+ const value = ref<string | undefined>('hello')
27
+ const defined = isDefined(value)
26
28
 
27
- if (isDefined(example))
28
- example // Ref<string>
29
+ console.log(defined.value) // true
30
+
31
+ value.value = undefined
32
+ console.log(defined.value) // false
29
33
  ```
30
34
 
31
35
  ## License
package/banner.svg CHANGED
@@ -26,7 +26,7 @@
26
26
  <text x="80" y="280" font-family="system-ui, -apple-system, sans-serif" font-size="72" font-weight="700" fill="white">vue-is-defined</text>
27
27
 
28
28
  <!-- Description -->
29
- <text x="80" y="360" font-family="system-ui, -apple-system, sans-serif" font-size="32" fill="#94a3b8">Vue 3 composable utility</text>
29
+ <text x="80" y="360" font-family="system-ui, -apple-system, sans-serif" font-size="32" fill="#94a3b8">Vue 3 type guard checking if ref value is not null/undefined</text>
30
30
 
31
31
  <!-- Install command -->
32
32
  <g transform="translate(80, 420)">
package/logo.svg CHANGED
@@ -1,13 +1,68 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" width="96" height="96" viewBox="0 0 96 96">
2
+ <!-- Premium background with depth -->
3
+ <defs>
4
+ <linearGradient id="logo-bg-Utilities" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" style="stop-color:#2c3e50;stop-opacity:1" />
6
+ <stop offset="50%" style="stop-color:#1e2936;stop-opacity:1" />
7
+ <stop offset="100%" style="stop-color:#0f1419;stop-opacity:1" />
8
+ </linearGradient>
9
+ <filter id="logo-shadow">
10
+ <feGaussianBlur in="SourceAlpha" stdDeviation="1.5"/>
11
+ <feOffset dx="0" dy="1" result="offsetblur"/>
12
+ <feComponentTransfer>
13
+ <feFuncA type="linear" slope="0.3"/>
14
+ </feComponentTransfer>
15
+ <feMerge>
16
+ <feMergeNode/>
17
+ <feMergeNode in="SourceGraphic"/>
18
+ </feMerge>
19
+ </filter>
20
+ <filter id="glow">
21
+ <feGaussianBlur stdDeviation="1" result="coloredBlur"/>
22
+ <feMerge>
23
+ <feMergeNode in="coloredBlur"/>
24
+ <feMergeNode in="SourceGraphic"/>
25
+ </feMerge>
26
+ </filter>
27
+ </defs>
28
+
2
29
  <!-- Background -->
3
- <rect width="96" height="96" rx="16" fill="#2c3e50"/>
30
+ <rect width="96" height="96" rx="20" fill="url(#logo-bg-Utilities)"/>
31
+
32
+ <!-- Subtle inner border -->
33
+ <rect x="2" y="2" width="92" height="92" rx="18" fill="none" stroke="#3498db" stroke-width="0.5" opacity="0.12"/>
34
+
35
+ <!-- Vuefrag badge (top, smaller and moved right) -->
36
+ <g filter="url(#logo-shadow)">
37
+ <rect x="10" y="7" width="26" height="9" rx="2.5" fill="#3498db" opacity="0.8"/>
38
+ <text x="23" y="13.5" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="6" font-weight="600" fill="white" letter-spacing="-0.2">Vuefrag</text>
39
+ </g>
40
+
41
+ <!-- Category icon (centered, balanced size) -->
42
+ <g filter="url(#glow)">
43
+
44
+ <!-- Code brackets -->
45
+ <path d="M34 24l-10 10 10 10" fill="none" stroke="#3498db" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/>
46
+ <path d="M62 24l10 10-10 10" fill="none" stroke="#3498db" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/>
47
+ <line x1="57" y1="21" x2="39" y2="47" stroke="#3498db" stroke-width="4" stroke-linecap="round"/>
48
+ </g>
4
49
 
5
- <!-- Primary shape -->
6
- <circle cx="48" cy="42" r="20" fill="#3498db"/>
50
+ <!-- Package name (bold, readable) -->
51
+ <text x="48" y="70" text-anchor="middle"
52
+ font-family="ui-monospace, 'SF Mono', Menlo, monospace"
53
+ font-size="8"
54
+ font-weight="600"
55
+ fill="#3498db"
56
+ letter-spacing="-0.3">vue-is-defined</text>
7
57
 
8
- <!-- Function name -->
9
- <text x="48" y="72" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="7" fill="#3498db" opacity="0.85">Utilities</text>
58
+ <!-- Category name (smaller, subtle) -->
59
+ <text x="48" y="80" text-anchor="middle"
60
+ font-family="system-ui, -apple-system, sans-serif"
61
+ font-size="6.5"
62
+ font-weight="500"
63
+ fill="#3498db"
64
+ opacity="0.5">Utilities</text>
10
65
 
11
66
  <!-- Bottom accent line -->
12
- <rect x="28" y="82" width="40" height="2" rx="1" fill="#3498db" opacity="0.5"/>
67
+ <rect x="24" y="88" width="48" height="1.5" rx="0.75" fill="#3498db" opacity="0.18"/>
13
68
  </svg>
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "vue-is-defined",
3
- "version": "1.0.5",
4
- "description": "Vue 3 composable utility",
3
+ "version": "1.0.7",
4
+ "description": "Vue 3 type guard checking if ref value is not null/undefined",
5
+ "readme": "README.md",
5
6
  "main": "dist/index.cjs",
6
7
  "module": "dist/index.mjs",
7
8
  "types": "dist/index.d.ts",
@@ -19,11 +20,14 @@
19
20
  "README.md"
20
21
  ],
21
22
  "scripts": {
22
- "build": "unbuild",
23
- "prepublishOnly": "cp README.npm.md README.md && npm run build",
24
- "postpublish": "cp README.github.md README.md"
23
+ "build": "unbuild"
25
24
  },
26
25
  "keywords": [
26
+ "vue",
27
+ "vue3",
28
+ "composition-api",
29
+ "composable",
30
+ "vueuse",
27
31
  "defined",
28
32
  "nullish",
29
33
  "type-guard",
package/README.github.md DELETED
@@ -1,35 +0,0 @@
1
- <p align="center">
2
- <img src="banner.svg" alt="vue-is-defined" width="100%" />
3
- </p>
4
-
5
- <h1 align="center">vue-is-defined</h1>
6
-
7
- <p align="center"></p>
8
-
9
- <p align="center">
10
- <a href="https://www.npmjs.com/package/vue-is-defined"><img src="https://img.shields.io/npm/v/vue-is-defined.svg" alt="npm version" /></a>
11
- <a href="https://www.npmjs.com/package/vue-is-defined"><img src="https://img.shields.io/npm/dm/vue-is-defined.svg" alt="npm downloads" /></a>
12
- </p>
13
-
14
- ## Installation
15
-
16
- ```bash
17
- npm install vue-is-defined
18
- ```
19
-
20
- ## Usage
21
-
22
- ```ts
23
- import { isDefined } from '@vueuse/core'
24
-
25
- const example = ref(Math.random() ? 'example' : undefined) // Ref<string | undefined>
26
-
27
- if (isDefined(example))
28
- example // Ref<string>
29
- ```
30
-
31
- ## License
32
-
33
- MIT
34
-
35
- Extracted from [VueUse](https://vueuse.org/) for standalone use.
package/README.npm.md DELETED
@@ -1,35 +0,0 @@
1
- <p align="center">
2
- <img src="logo.svg" alt="vue-is-defined" width="180" />
3
- </p>
4
-
5
- <h1 align="center">vue-is-defined</h1>
6
-
7
- <p align="center"></p>
8
-
9
- <p align="center">
10
- <a href="https://www.npmjs.com/package/vue-is-defined"><img src="https://img.shields.io/npm/v/vue-is-defined.svg" alt="npm version" /></a>
11
- <a href="https://www.npmjs.com/package/vue-is-defined"><img src="https://img.shields.io/npm/dm/vue-is-defined.svg" alt="npm downloads" /></a>
12
- </p>
13
-
14
- ## Installation
15
-
16
- ```bash
17
- npm install vue-is-defined
18
- ```
19
-
20
- ## Usage
21
-
22
- ```ts
23
- import { isDefined } from '@vueuse/core'
24
-
25
- const example = ref(Math.random() ? 'example' : undefined) // Ref<string | undefined>
26
-
27
- if (isDefined(example))
28
- example // Ref<string>
29
- ```
30
-
31
- ## License
32
-
33
- MIT
34
-
35
- Extracted from [VueUse](https://vueuse.org/) for standalone use.