pawa-ssr 1.3.23 → 1.3.25

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/index.js CHANGED
@@ -5,7 +5,7 @@ import { propsValidator, evaluateExpr,extractAtExpressions, reArrangeAttri,resum
5
5
  import {AsyncLocalStorage} from'node:async_hooks'
6
6
  import { If,For,State,Switch, Key } from'./power.js';
7
7
  import PawaElement from'./pawaElement.js'
8
- import { pluginsMap, lazyComponents } from "pawajs/index.js";
8
+ import { pluginsMap, lazyComponents,components } from "pawajs/index.js";
9
9
 
10
10
  const PAWA_STORE_SYMBOL = Symbol.for('pawa.ssr.store');
11
11
 
@@ -216,10 +216,7 @@ setServer({
216
216
  forwardProps
217
217
  })
218
218
  export const pawaForServer=setServer
219
- const components = new Map();
220
- export const getPawaComponentsMap =()=>{
221
- return components ;
222
- }
219
+
223
220
  const getStore=()=>{
224
221
  return store.getStore()
225
222
  }
@@ -1124,10 +1121,10 @@ export const render =async (el, contexts = {},stream) => {
1124
1121
  const compo=await component()
1125
1122
  if(compo[name]){
1126
1123
 
1127
- components.set(name,compo[name])
1124
+ components.set(name.toUpperCase(),compo[name])
1128
1125
  el._component.component=compo[name]
1129
1126
  el._component.validPropRule=compo[name]?.validateProps || {};
1130
- lazyComponents.delete(el.tagName)
1127
+ lazyComponents.delete(name.toUpperCase())
1131
1128
  }
1132
1129
  } catch (error) {
1133
1130
  throw new Error(`lazy component ${el.tagName} : Error from the component - ${error.message}`,error.message)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pawa-ssr",
3
- "version": "1.3.23",
4
- "type":"module",
3
+ "version": "1.3.25",
4
+ "type": "module",
5
5
  "description": "pawajs ssr libary",
6
6
  "main": "index.js",
7
7
  "scripts": {
@@ -25,6 +25,6 @@
25
25
  "homepage": "https://github.com/Allisboy/pawajs-ssr#readme",
26
26
  "dependencies": {
27
27
  "linkedom": "^0.18.11",
28
- "pawajs": "^1.4.39"
28
+ "pawajs": "^1.4.40"
29
29
  }
30
30
  }
package/pawaElement.js CHANGED
@@ -87,9 +87,10 @@ class PawaElement {
87
87
  setResumeAttr(name){
88
88
  if(name.startsWith(':')) return
89
89
  this._resumeAttr+=`${name};`
90
- this._el.setAttribute('p:C',this._resumeAttr)
90
+ this._el.setAttribute('p:c',this._resumeAttr)
91
91
  }
92
92
  pawaAttribute(){
93
+ const componentAllowedAttribute=['if','else-if','for-each','switch','case','key','s-default','else']
93
94
  const pawaAttr=getPawaAttributes()
94
95
  const setTextResume=()=>{
95
96
  if( this._componentName === ''&& this._el.firstElementChild === null && this._el.childNodes.some(node=>node.nodeType === 3 && node.nodeValue.includes('@{')) && !this._avoidPawaRender){
@@ -109,6 +110,7 @@ class PawaElement {
109
110
  })
110
111
  }else{
111
112
  this._el.attributes.forEach((value, index, array) => {
113
+ if (this._componentName && !componentAllowedAttribute.includes(value.name)) return
112
114
  if(this._resumeAttr.includes(value.name) || value.name === 'p:c' )return
113
115
  if (value.name.startsWith(':')) return
114
116
  this._resumeAttr+=`${value.name};`
package/test/App.js ADDED
@@ -0,0 +1,9 @@
1
+ export const App=({children})=>{
2
+ return `<div class="p-4">
3
+ <h1 class="text-2xl font-bold mb-4">Hello, World!</h1>
4
+ <p class="text-gray-700">This is a test component for PawaJS.</p>
5
+ <div>
6
+ ${children}
7
+ </div>
8
+ </div>`
9
+ }
package/test/check.js ADDED
@@ -0,0 +1,13 @@
1
+ export const Check=()=>{
2
+ return `<div class="p-4">
3
+ <h1 class="text-2xl font-bold mb-4">Hello, World!</h1>
4
+ <p class="text-gray-700">This is a test Checker</p>
5
+ </div>`
6
+ }
7
+
8
+ export const Check2=()=>{
9
+ return `<div class="p-4">
10
+ <h1 class="text-2xl font-bold mb-4">Hello, World!</h1>
11
+ <p class="text-gray-700">This is a test Checker 2</p>
12
+ </div>`
13
+ }
package/test/index.js CHANGED
@@ -1,67 +1,18 @@
1
1
  import {useValidateComponent, RegisterComponent,useContext,useInsert,setContext} from 'pawajs'
2
2
  import {startApp} from '../index.js'
3
- const auth=setContext()
4
- const component=async({app,name})=>{
5
- auth.setValue({name:name()})
6
- const user=false
7
- const array=['john','peace','james']
8
- useInsert({user,array,name})
9
- return `
10
- <div>
11
- <h1 title="@{user ? name():'Guest'}" -->
12
- <span>@{name()}</span>
13
- <span if="user">Allwell</span>
14
- <span else>false</span>
15
- </h1>
16
- <div s-for="items in array" s-pawa-avoid>
17
- <span>@{items}</span>
18
- </div>
19
- <small-app></small-app>
20
- </div>
21
- `
22
- }
23
- const SmallApp=()=>{
24
- const {name}=useContext(auth)
25
- useInsert({name})
26
- return /*html*/`
27
- <div state-count="0">
28
- <h1>Small App Component</h1>
29
- <span>@{name}</span>
30
- <h1>@{count.value}</h1>
31
- <new-app></new-app>
32
- </div>`
33
- }
34
- useValidateComponent(component,{
35
- name:{
36
- strict:true,
37
- type:String
38
- }
39
- })
40
- const NewApp=()=>{
41
- return
42
- }
43
- RegisterComponent(component,SmallApp,NewApp)
44
- const html=()=>{
45
- return `
46
- <!doctype html>
47
- <html lang="en">
48
- <head>
49
- <meta charset="UTF-8" />
50
- <link rel="icon" type="image/svg+xml" href="/pawajs.svg" />
51
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
52
- <title>pawajs-template</title>
53
- </head>
54
- <body>
55
- <div id="app">
56
- <div>
57
- <component :name="'Allwell'"></component>
58
- </div>
3
+ RegisterComponent.lazy(
4
+ 'App',()=>import('./App.js'),
5
+ 'Check',()=>import('./check.js'),
6
+ 'Check2',()=>import('./check.js'),
7
+ )
59
8
 
60
- </div>
61
- <script type="module" src="/src/main.js"></script>
62
- </body>
63
- </html>
64
- `
65
- }
66
- const newHtml=await startApp(html(),{},true)
67
- console.log(await newHtml.toString())
9
+ const app=`
10
+ <div>
11
+ <app>
12
+ <check></check>
13
+ <check-2></check-2>
14
+ </app>
15
+ </div>
16
+ `
17
+ const {toString}=await startApp(app)
18
+ console.log(await toString());