diff --git a/package-lock.json b/package-lock.json index dbc8783..09ae467 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1375,6 +1375,12 @@ "@pushrocks/smartlog-interfaces": "^2.0.20" } }, + "@types/node": { + "version": "14.17.0", + "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-14.17.0.tgz", + "integrity": "sha512-w8VZUN/f7SSbvVReb9SWp6cJFevxb4/nkG65yLAya//98WgocKm5PLDAtSs5CtJJJM+kHmJjO/6mmYW4MHShZA==", + "dev": true + }, "typescript": { "version": "4.2.4", "resolved": "https://verdaccio.lossless.one/typescript/-/typescript-4.2.4.tgz", @@ -2861,6 +2867,14 @@ "@pushrocks/smartparam": "^1.1.6", "@pushrocks/smartpromise": "^3.0.6", "@types/node": "^14.0.14" + }, + "dependencies": { + "@types/node": { + "version": "14.17.0", + "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-14.17.0.tgz", + "integrity": "sha512-w8VZUN/f7SSbvVReb9SWp6cJFevxb4/nkG65yLAya//98WgocKm5PLDAtSs5CtJJJM+kHmJjO/6mmYW4MHShZA==", + "dev": true + } } } } @@ -3179,9 +3193,9 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/node": { - "version": "14.14.20", - "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-14.14.20.tgz", - "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==" + "version": "15.3.0", + "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-15.3.0.tgz", + "integrity": "sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ==" }, "@types/parcel-bundler": { "version": "1.12.3", @@ -11005,6 +11019,14 @@ "@types/sax": "^1.2.1", "arg": "^4.1.3", "sax": "^1.2.4" + }, + "dependencies": { + "@types/node": { + "version": "14.17.0", + "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-14.17.0.tgz", + "integrity": "sha512-w8VZUN/f7SSbvVReb9SWp6cJFevxb4/nkG65yLAya//98WgocKm5PLDAtSs5CtJJJM+kHmJjO/6mmYW4MHShZA==", + "dev": true + } } }, "smartchai": { diff --git a/package.json b/package.json index bdaa1a0..24b30a0 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@gitzone/tstest": "^1.0.54", "@pushrocks/smartserve": "^1.1.41", "@pushrocks/tapbundle": "^3.2.14", - "@types/node": "^14.14.20", + "@types/node": "^15.3.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.15.0" }, diff --git a/test/test.ts b/test/test.ts index 4f3cd10..0643f5e 100644 --- a/test/test.ts +++ b/test/test.ts @@ -23,6 +23,7 @@ tap.skip.test('should render lossless.com', async () => { tap.skip.test('should render https://lossless.gmbh', async () => { const renderedPage = await testSSRInstance.renderPage('https://lossless.gmbh'); + console.log(renderedPage); }); tap.test('should stop the smartssr instance', async () => { diff --git a/ts/smartssr.function.serialize.ts b/ts/smartssr.function.serialize.ts index 4e22944..e3468cb 100644 --- a/ts/smartssr.function.serialize.ts +++ b/ts/smartssr.function.serialize.ts @@ -39,6 +39,8 @@ export function serializeFunction(rootNode) { const nodeUUID = uuidv4(); nodeArg.classList.add(nodeUUID); + + // find all slots const slots = nodeArg.shadowRoot.querySelectorAll('slot'); // handle slot element @@ -59,6 +61,14 @@ export function serializeFunction(rootNode) { const childNodes = nodeArg.shadowRoot.childNodes; // tslint:disable-next-line: prefer-for-of const noteForAppending: HTMLElement[] = []; + + // lets care about static css first + if ((nodeArg.constructor as any).styles?.cssText) { + const styleTag = document.createElement('style'); + styleTag.textContent = prependCss(nodeUUID, (nodeArg.constructor as any).styles.cssText); + noteForAppending.push(styleTag); + } + childNodes.forEach((childNode) => { if (childNode instanceof HTMLElement) { if (childNode.tagName === 'STYLE') {