@joist/ssr 4.0.0-next.3 → 4.0.0-next.30
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/package.json +5 -8
- package/src/lib/applicator.test.ts +5 -5
- package/src/lib/template-cache.test.ts +5 -5
- package/src/lib/template-loader.test.ts +4 -4
- package/target/lib/applicator.test.js +5 -5
- package/target/lib/applicator.test.js.map +1 -1
- package/target/lib/template-cache.test.js +5 -5
- package/target/lib/template-cache.test.js.map +1 -1
- package/target/lib/template-loader.test.js +4 -4
- package/target/lib/template-loader.test.js.map +1 -1
- package/target/testing/elements/my-element/my-element.d.ts +1 -0
- package/target/testing/elements/my-element/my-element.js +1 -1
package/package.json
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@joist/ssr",
|
|
3
|
-
"version": "4.0.0-next.
|
|
3
|
+
"version": "4.0.0-next.30",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./target/lib.js",
|
|
6
6
|
"module": "./target/lib.js",
|
|
7
7
|
"exports": {
|
|
8
|
-
".":
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"./*": {
|
|
12
|
-
"import": "./target/lib/*.js"
|
|
13
|
-
}
|
|
8
|
+
".": "./target/lib.js",
|
|
9
|
+
"./*": "./target/lib/*",
|
|
10
|
+
"./package.json": "./package.json"
|
|
14
11
|
},
|
|
15
12
|
"files": [
|
|
16
13
|
"src",
|
|
@@ -49,7 +46,7 @@
|
|
|
49
46
|
]
|
|
50
47
|
},
|
|
51
48
|
"test": {
|
|
52
|
-
"command": "
|
|
49
|
+
"command": "mocha target/**/*.test.js",
|
|
53
50
|
"files": [
|
|
54
51
|
"target/**"
|
|
55
52
|
],
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { assert } from 'chai';
|
|
2
2
|
|
|
3
3
|
import { Applicator } from './applicator.js';
|
|
4
4
|
import { NoopTemplateCache } from './template-cache.js';
|
|
5
5
|
import { TemplateLoader } from './template-loader.js';
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
it('should apply declarative shadow dom to specified elements', async () => {
|
|
8
8
|
class MockTemplateLoader implements TemplateLoader {
|
|
9
9
|
loadCSS(tag: string): Promise<string | null> {
|
|
10
10
|
return Promise.resolve(`:host { content: 'css for ${tag}' }`);
|
|
@@ -30,7 +30,7 @@ test('should apply declarative shadow dom to specified elements', async (t) => {
|
|
|
30
30
|
|
|
31
31
|
const res = await applicator.apply(document, ['mock-header', 'mock-content', 'mock-footer']);
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
assert.equal(
|
|
34
34
|
trim(res),
|
|
35
35
|
trim(`
|
|
36
36
|
<html>
|
|
@@ -63,7 +63,7 @@ test('should apply declarative shadow dom to specified elements', async (t) => {
|
|
|
63
63
|
);
|
|
64
64
|
});
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
it('should apply declarative shadow dom recursively', async () => {
|
|
67
67
|
class MockTemplateLoader implements TemplateLoader {
|
|
68
68
|
async loadCSS(tag: string): Promise<string | null> {
|
|
69
69
|
return `:host { content: 'css for ${tag}' }`;
|
|
@@ -88,7 +88,7 @@ test('should apply declarative shadow dom recursively', async (t) => {
|
|
|
88
88
|
|
|
89
89
|
const res = await applicator.apply(document, ['mock-foo', 'mock-bar', 'mock-baz']);
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
assert.equal(
|
|
92
92
|
trim(res),
|
|
93
93
|
trim(`
|
|
94
94
|
<html>
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { assert } from 'chai';
|
|
2
2
|
|
|
3
3
|
import { NoopTemplateCache, TemplateCache } from './template-cache.js';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
it('should cache (in memory)', async () => {
|
|
6
6
|
const cache = new TemplateCache();
|
|
7
7
|
|
|
8
8
|
await cache.set('foo-bar', '<h1>Hello World</h1>');
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
assert.equal(await cache.get('foo-bar'), '<h1>Hello World</h1>');
|
|
11
11
|
});
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
it('should never cache (noop)', async () => {
|
|
14
14
|
const cache = new NoopTemplateCache();
|
|
15
15
|
|
|
16
16
|
await cache.set('foo-bar', '<h1>Hello World</h1>');
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
assert.equal(await cache.get('foo-bar'), undefined);
|
|
19
19
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { assert } from 'chai';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@ import { FileSysTemplateLoader } from './template-loader.js';
|
|
|
6
6
|
|
|
7
7
|
const dirname = join(fileURLToPath(new URL('.', import.meta.url)), '../../src/testing');
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
it('FileSysTemplateLoader: should read from defined paths', async () => {
|
|
10
10
|
const loader = new FileSysTemplateLoader(
|
|
11
11
|
(tag) => join(dirname, 'elements', tag, tag + '.html'),
|
|
12
12
|
(tag) => join(dirname, 'elements', tag, tag + '.css')
|
|
@@ -15,6 +15,6 @@ test('FileSysTemplateLoader: should read from defined paths', async (t) => {
|
|
|
15
15
|
const html = await loader.loadHTML('my-element');
|
|
16
16
|
const css = await loader.loadCSS('my-element');
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
assert.equal(html?.trim(), `<h2>Hello World</h2>\n\n<slot></slot>`);
|
|
19
|
+
assert.equal(css?.trim(), `:host {\n display: flex;\n}`);
|
|
20
20
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { assert } from 'chai';
|
|
2
2
|
import { Applicator } from './applicator.js';
|
|
3
3
|
import { NoopTemplateCache } from './template-cache.js';
|
|
4
|
-
|
|
4
|
+
it('should apply declarative shadow dom to specified elements', async () => {
|
|
5
5
|
class MockTemplateLoader {
|
|
6
6
|
loadCSS(tag) {
|
|
7
7
|
return Promise.resolve(`:host { content: 'css for ${tag}' }`);
|
|
@@ -23,7 +23,7 @@ test('should apply declarative shadow dom to specified elements', async (t) => {
|
|
|
23
23
|
</html>
|
|
24
24
|
`;
|
|
25
25
|
const res = await applicator.apply(document, ['mock-header', 'mock-content', 'mock-footer']);
|
|
26
|
-
|
|
26
|
+
assert.equal(trim(res), trim(`
|
|
27
27
|
<html>
|
|
28
28
|
<head></head>
|
|
29
29
|
|
|
@@ -52,7 +52,7 @@ test('should apply declarative shadow dom to specified elements', async (t) => {
|
|
|
52
52
|
</html>
|
|
53
53
|
`));
|
|
54
54
|
});
|
|
55
|
-
|
|
55
|
+
it('should apply declarative shadow dom recursively', async () => {
|
|
56
56
|
class MockTemplateLoader {
|
|
57
57
|
async loadCSS(tag) {
|
|
58
58
|
return `:host { content: 'css for ${tag}' }`;
|
|
@@ -70,7 +70,7 @@ test('should apply declarative shadow dom recursively', async (t) => {
|
|
|
70
70
|
const applicator = new Applicator(new NoopTemplateCache(), new MockTemplateLoader());
|
|
71
71
|
const document = `<mock-foo></mock-foo>`;
|
|
72
72
|
const res = await applicator.apply(document, ['mock-foo', 'mock-bar', 'mock-baz']);
|
|
73
|
-
|
|
73
|
+
assert.equal(trim(res), trim(`
|
|
74
74
|
<html>
|
|
75
75
|
<head></head>
|
|
76
76
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applicator.test.js","sourceRoot":"","sources":["../../src/lib/applicator.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"applicator.test.js","sourceRoot":"","sources":["../../src/lib/applicator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;IACzE,MAAM,kBAAkB;QACtB,OAAO,CAAC,GAAW;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,6BAA6B,GAAG,KAAK,CAAC,CAAC;QAChE,CAAC;QACD,QAAQ,CAAC,GAAW;YAClB,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC;QACvD,CAAC;KACF;IAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,iBAAiB,EAAE,EAAE,IAAI,kBAAkB,EAAE,CAAC,CAAC;IAErF,MAAM,QAAQ,GAAY;;;;;;;;;;GAUzB,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAE7F,MAAM,CAAC,KAAK,CACV,IAAI,CAAC,GAAG,CAAC,EACT,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BN,CAAC,CACD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;IAC/D,MAAM,kBAAkB;QACtB,KAAK,CAAC,OAAO,CAAC,GAAW;YACvB,OAAO,6BAA6B,GAAG,KAAK,CAAC;QAC/C,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,GAAW;YACxB,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,UAAU;oBACb,OAAO,uBAAuB,CAAC;gBAEjC,KAAK,UAAU;oBACb,OAAO,uBAAuB,CAAC;YACnC,CAAC;YAED,OAAO,iBAAiB,GAAG,QAAQ,CAAC;QACtC,CAAC;KACF;IAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,iBAAiB,EAAE,EAAE,IAAI,kBAAkB,EAAE,CAAC,CAAC;IAErF,MAAM,QAAQ,GAAG,uBAAuB,CAAC;IAEzC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAEnF,MAAM,CAAC,KAAK,CACV,IAAI,CAAC,GAAG,CAAC,EACT,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAuBN,CAAC,CACD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,IAAI,CAAC,KAAa;IACzB,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { assert } from 'chai';
|
|
2
2
|
import { NoopTemplateCache, TemplateCache } from './template-cache.js';
|
|
3
|
-
|
|
3
|
+
it('should cache (in memory)', async () => {
|
|
4
4
|
const cache = new TemplateCache();
|
|
5
5
|
await cache.set('foo-bar', '<h1>Hello World</h1>');
|
|
6
|
-
|
|
6
|
+
assert.equal(await cache.get('foo-bar'), '<h1>Hello World</h1>');
|
|
7
7
|
});
|
|
8
|
-
|
|
8
|
+
it('should never cache (noop)', async () => {
|
|
9
9
|
const cache = new NoopTemplateCache();
|
|
10
10
|
await cache.set('foo-bar', '<h1>Hello World</h1>');
|
|
11
|
-
|
|
11
|
+
assert.equal(await cache.get('foo-bar'), undefined);
|
|
12
12
|
});
|
|
13
13
|
//# sourceMappingURL=template-cache.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-cache.test.js","sourceRoot":"","sources":["../../src/lib/template-cache.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"template-cache.test.js","sourceRoot":"","sources":["../../src/lib/template-cache.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvE,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IACxC,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAElC,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAEnD,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACnE,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;IACzC,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEtC,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAEnD,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { assert } from 'chai';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { FileSysTemplateLoader } from './template-loader.js';
|
|
5
5
|
const dirname = join(fileURLToPath(new URL('.', import.meta.url)), '../../src/testing');
|
|
6
|
-
|
|
6
|
+
it('FileSysTemplateLoader: should read from defined paths', async () => {
|
|
7
7
|
const loader = new FileSysTemplateLoader((tag) => join(dirname, 'elements', tag, tag + '.html'), (tag) => join(dirname, 'elements', tag, tag + '.css'));
|
|
8
8
|
const html = await loader.loadHTML('my-element');
|
|
9
9
|
const css = await loader.loadCSS('my-element');
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
assert.equal(html?.trim(), `<h2>Hello World</h2>\n\n<slot></slot>`);
|
|
11
|
+
assert.equal(css?.trim(), `:host {\n display: flex;\n}`);
|
|
12
12
|
});
|
|
13
13
|
//# sourceMappingURL=template-loader.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-loader.test.js","sourceRoot":"","sources":["../../src/lib/template-loader.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"template-loader.test.js","sourceRoot":"","sources":["../../src/lib/template-loader.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAExF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;IACrE,MAAM,MAAM,GAAG,IAAI,qBAAqB,CACtC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,EACtD,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,CACtD,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/C,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,uCAAuC,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,8BAA8B,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=my-element.js.map
|