Skip to content

Commit fcde994

Browse files
authored
Merge 8367869 into 84437af
2 parents 84437af + 8367869 commit fcde994

22 files changed

+390
-42
lines changed

.changeset/tall-mirrors-notice.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'lit': minor
3+
'lit-html': minor
4+
'@lit/reactive-element': minor
5+
---
6+
7+
Lit and its underlying libraries can now be imported directly from Node without crashing, without the need to load the @lit-labs/ssr dom-shim library. Note that actually rendering from a Node context still requires the @lit-labs/ssr dom-shim, and the appropriate integration between @lit-labs/ssr and your framework/tool.

.eslintignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ packages/lit-element/polyfill-support.*
6262
packages/lit-element/private-ssr-support.*
6363

6464
packages/lit-html/development/
65+
packages/lit-html/node/
6566
packages/lit-html/version-stability-build/
6667
packages/lit-html/directives/
6768
packages/lit-html/node_modules/
@@ -118,6 +119,7 @@ packages/localize-tools/testdata/*/output/
118119

119120
packages/reactive-element/decorators/
120121
packages/reactive-element/development/
122+
packages/reactive-element/node/
121123
packages/reactive-element/test/
122124
packages/reactive-element/css-tag.*
123125
packages/reactive-element/decorators.*

.prettierignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ packages/lit-element/polyfill-support.*
6262
packages/lit-element/private-ssr-support.*
6363

6464
packages/lit-html/development/
65+
packages/lit-html/node/
6566
packages/lit-html/version-stability-build/
6667
packages/lit-html/directives/
6768
packages/lit-html/node_modules/
@@ -104,6 +105,7 @@ packages/localize-tools/testdata/*/output/
104105

105106
packages/reactive-element/decorators/
106107
packages/reactive-element/development/
108+
packages/reactive-element/node/
107109
packages/reactive-element/test/
108110
packages/reactive-element/css-tag.*
109111
packages/reactive-element/decorators.*

packages/lit-element/package.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@
104104
"prepublishOnly": "npm run check-version",
105105
"test": "wireit",
106106
"test:dev": "wireit",
107-
"test:prod": "wireit"
107+
"test:prod": "wireit",
108+
"test:node": "wireit"
108109
},
109110
"wireit": {
110111
"build": {
@@ -198,6 +199,7 @@
198199
"dependencies": [
199200
"test:dev",
200201
"test:prod",
202+
"test:node",
201203
"check-version"
202204
]
203205
},
@@ -219,6 +221,15 @@
219221
],
220222
"files": [],
221223
"output": []
224+
},
225+
"test:node": {
226+
"command": "node development/test/node-imports.js",
227+
"dependencies": [
228+
"build:ts",
229+
"build:rollup"
230+
],
231+
"files": [],
232+
"output": []
222233
}
223234
},
224235
"files": [
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/**
2+
* @license
3+
* Copyright 2022 Google LLC
4+
* SPDX-License-Identifier: BSD-3-Clause
5+
*/
6+
7+
// This file will be loaded by Node from the node:test script to verify that all
8+
// exports of this package can be imported without crashing in Node.
9+
10+
import 'lit-element';
11+
import 'lit-element/experimental-hydrate-support.js';
12+
import 'lit-element/private-ssr-support.js';
13+
import 'lit-element/decorators.js';
14+
import 'lit-element/decorators/custom-element.js';
15+
import 'lit-element/decorators/event-options.js';
16+
import 'lit-element/decorators/state.js';
17+
import 'lit-element/decorators/property.js';
18+
import 'lit-element/decorators/query.js';
19+
import 'lit-element/decorators/query-all.js';
20+
import 'lit-element/decorators/query-assigned-elements.js';
21+
import 'lit-element/decorators/query-assigned-nodes.js';
22+
import 'lit-element/decorators/query-async.js';
23+
24+
import {LitElement, html} from 'lit-element';
25+
import {customElement} from 'lit-element/decorators.js';
26+
27+
@customElement('my-element')
28+
export class MyElement extends LitElement {
29+
override render() {
30+
return html`Hello World`;
31+
}
32+
}
33+
34+
export class MyOtherElement extends LitElement {
35+
override render() {
36+
return html`Hello World`;
37+
}
38+
}
39+
customElements.define('my-other-element', MyOtherElement);

packages/lit-html/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/development/
2+
/node/
23
/version-stability-build/
34
/directives/
45
/node_modules/

packages/lit-html/package.json

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,141 +15,169 @@
1515
"exports": {
1616
".": {
1717
"types": "./development/lit-html.d.ts",
18+
"node": "./node/lit-html.js",
1819
"development": "./development/lit-html.js",
1920
"default": "./lit-html.js"
2021
},
2122
"./async-directive.js": {
2223
"types": "./development/async-directive.d.ts",
24+
"node": "./node/async-directive.js",
2325
"development": "./development/async-directive.js",
2426
"default": "./async-directive.js"
2527
},
2628
"./directive-helpers.js": {
2729
"types": "./development/directive-helpers.d.ts",
30+
"node": "./node/directive-helpers.js",
2831
"development": "./development/directive-helpers.js",
2932
"default": "./directive-helpers.js"
3033
},
3134
"./directive.js": {
3235
"types": "./development/directive.d.ts",
36+
"node": "./node/directive.js",
3337
"development": "./development/directive.js",
3438
"default": "./directive.js"
3539
},
3640
"./directives/async-append.js": {
3741
"types": "./development/directives/async-append.d.ts",
42+
"node": "./node/directives/async-append.js",
3843
"development": "./development/directives/async-append.js",
3944
"default": "./directives/async-append.js"
4045
},
4146
"./directives/async-replace.js": {
4247
"types": "./development/directives/async-replace.d.ts",
48+
"node": "./node/directives/async-replace.js",
4349
"development": "./development/directives/async-replace.js",
4450
"default": "./directives/async-replace.js"
4551
},
4652
"./directives/cache.js": {
4753
"types": "./development/directives/cache.d.ts",
54+
"node": "./node/directives/cache.js",
4855
"development": "./development/directives/cache.js",
4956
"default": "./directives/cache.js"
5057
},
5158
"./directives/choose.js": {
5259
"types": "./development/directives/choose.d.ts",
60+
"node": "./node/directives/choose.js",
5361
"development": "./development/directives/choose.js",
5462
"default": "./directives/choose.js"
5563
},
5664
"./directives/class-map.js": {
5765
"types": "./development/directives/class-map.d.ts",
66+
"node": "./node/directives/class-map.js",
5867
"development": "./development/directives/class-map.js",
5968
"default": "./directives/class-map.js"
6069
},
6170
"./directives/guard.js": {
6271
"types": "./development/directives/guard.d.ts",
72+
"node": "./node/directives/guard.js",
6373
"development": "./development/directives/guard.js",
6474
"default": "./directives/guard.js"
6575
},
6676
"./directives/if-defined.js": {
6777
"types": "./development/directives/if-defined.d.ts",
78+
"node": "./node/directives/if-defined.js",
6879
"development": "./development/directives/if-defined.js",
6980
"default": "./directives/if-defined.js"
7081
},
7182
"./directives/join.js": {
7283
"types": "./development/directives/join.d.ts",
84+
"node": "./node/directives/join.js",
7385
"development": "./development/directives/join.js",
7486
"default": "./directives/join.js"
7587
},
7688
"./directives/keyed.js": {
7789
"types": "./development/directives/keyed.d.ts",
90+
"node": "./node/directives/keyed.js",
7891
"development": "./development/directives/keyed.js",
7992
"default": "./directives/keyed.js"
8093
},
8194
"./directives/live.js": {
8295
"types": "./development/directives/live.d.ts",
96+
"node": "./node/directives/live.js",
8397
"development": "./development/directives/live.js",
8498
"default": "./directives/live.js"
8599
},
86100
"./directives/map.js": {
87101
"types": "./development/directives/map.d.ts",
102+
"node": "./node/directives/map.js",
88103
"development": "./development/directives/map.js",
89104
"default": "./directives/map.js"
90105
},
91106
"./directives/range.js": {
92107
"types": "./development/directives/range.d.ts",
108+
"node": "./node/directives/range.js",
93109
"development": "./development/directives/range.js",
94110
"default": "./directives/range.js"
95111
},
96112
"./directives/ref.js": {
97113
"types": "./development/directives/ref.d.ts",
114+
"node": "./node/directives/ref.js",
98115
"development": "./development/directives/ref.js",
99116
"default": "./directives/ref.js"
100117
},
101118
"./directives/repeat.js": {
102119
"types": "./development/directives/repeat.d.ts",
120+
"node": "./node/directives/repeat.js",
103121
"development": "./development/directives/repeat.js",
104122
"default": "./directives/repeat.js"
105123
},
106124
"./directives/style-map.js": {
107125
"types": "./development/directives/style-map.d.ts",
126+
"node": "./node/directives/style-map.js",
108127
"development": "./development/directives/style-map.js",
109128
"default": "./directives/style-map.js"
110129
},
111130
"./directives/template-content.js": {
112131
"types": "./development/directives/template-content.d.ts",
132+
"node": "./node/directives/template-content.js",
113133
"development": "./development/directives/template-content.js",
114134
"default": "./directives/template-content.js"
115135
},
116136
"./directives/unsafe-html.js": {
117137
"types": "./development/directives/unsafe-html.d.ts",
138+
"node": "./node/directives/unsafe-html.js",
118139
"development": "./development/directives/unsafe-html.js",
119140
"default": "./directives/unsafe-html.js"
120141
},
121142
"./directives/unsafe-svg.js": {
122143
"types": "./development/directives/unsafe-svg.d.ts",
144+
"node": "./node/directives/unsafe-svg.js",
123145
"development": "./development/directives/unsafe-svg.js",
124146
"default": "./directives/unsafe-svg.js"
125147
},
126148
"./directives/until.js": {
127149
"types": "./development/directives/until.d.ts",
150+
"node": "./node/directives/until.js",
128151
"development": "./development/directives/until.js",
129152
"default": "./directives/until.js"
130153
},
131154
"./directives/when.js": {
132155
"types": "./development/directives/when.d.ts",
156+
"node": "./node/directives/when.js",
133157
"development": "./development/directives/when.js",
134158
"default": "./directives/when.js"
135159
},
136160
"./experimental-hydrate.js": {
137161
"types": "./development/experimental-hydrate.d.ts",
162+
"node": "./node/experimental-hydrate.js",
138163
"development": "./development/experimental-hydrate.js",
139164
"default": "./experimental-hydrate.js"
140165
},
141166
"./polyfill-support.js": {
142167
"types": "./development/polyfill-support.d.ts",
168+
"node": "./node/polyfill-support.js",
143169
"development": "./development/polyfill-support.js",
144170
"default": "./polyfill-support.js"
145171
},
146172
"./private-ssr-support.js": {
147173
"types": "./development/private-ssr-support.d.ts",
174+
"node": "./node/private-ssr-support.js",
148175
"development": "./development/private-ssr-support.js",
149176
"default": "./private-ssr-support.js"
150177
},
151178
"./static.js": {
152179
"types": "./development/static.d.ts",
180+
"node": "./node/static.js",
153181
"development": "./development/static.js",
154182
"default": "./static.js"
155183
}
@@ -165,7 +193,8 @@
165193
"prepublishOnly": "npm run check-version",
166194
"test": "wireit",
167195
"test:dev": "wireit",
168-
"test:prod": "wireit"
196+
"test:prod": "wireit",
197+
"test:node": "wireit"
169198
},
170199
"files": [
171200
"/async-directive.{d.ts,d.ts.map,js,js.map}",
@@ -178,7 +207,8 @@
178207
"/static.{d.ts,d.ts.map,js,js.map}",
179208
"/development/",
180209
"!/development/test/",
181-
"/directives/"
210+
"/directives/",
211+
"/node/"
182212
],
183213
"wireit": {
184214
"build": {
@@ -240,7 +270,8 @@
240270
"test/*_test.html",
241271
"development/test/*_test.html",
242272
"test/polyfill-support/*_test.html",
243-
"development/test/polyfill-support/*_test.html"
273+
"development/test/polyfill-support/*_test.html",
274+
"node/"
244275
]
245276
},
246277
"build:version-stability-test": {
@@ -281,6 +312,7 @@
281312
"dependencies": [
282313
"test:dev",
283314
"test:prod",
315+
"test:node",
284316
"check-version"
285317
]
286318
},
@@ -303,6 +335,15 @@
303335
],
304336
"files": [],
305337
"output": []
338+
},
339+
"test:node": {
340+
"command": "node development/test/node-imports.js",
341+
"dependencies": [
342+
"build:ts",
343+
"build:rollup"
344+
],
345+
"files": [],
346+
"output": []
306347
}
307348
},
308349
"dependencies": {

packages/lit-html/rollup.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export const defaultConfig = (options = {}) =>
4545
file: 'polyfill-support',
4646
},
4747
],
48+
includeNodeBuild: true,
4849
...options,
4950
});
5051

0 commit comments

Comments
 (0)