Skip to content

Commit 833c4c2

Browse files
Merge branch 'main' into fix/missing-scope-id-for-user-provided-children
2 parents 8777dc8 + d345412 commit 833c4c2

File tree

4 files changed

+21
-16
lines changed

4 files changed

+21
-16
lines changed

src/compiler/transformers/static-to-meta/visitor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export const convertStaticToMeta = (
1313
compilerCtx: d.CompilerCtx,
1414
buildCtx: d.BuildCtx,
1515
typeChecker: ts.TypeChecker,
16-
collection: d.CollectionCompilerMeta,
16+
collection: d.CollectionCompilerMeta | null,
1717
transformOpts: d.TransformOptions,
1818
): ts.TransformerFactory<ts.SourceFile> => {
1919
return (transformCtx) => {

src/compiler/transpile/transpile-module.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,15 @@ export const transpileModule = (
111111
const program = ts.createProgram([sourceFilePath], tsCompilerOptions, compilerHost);
112112
const typeChecker = program.getTypeChecker();
113113

114-
const transformers: ts.CustomTransformers = {
114+
const transformers = {
115115
before: [
116116
convertDecoratorsToStatic(config, buildCtx.diagnostics, typeChecker, program),
117117
performAutomaticKeyInsertion,
118118
updateStencilCoreImports(transformOpts.coreImportPath),
119119
],
120120
after: [convertStaticToMeta(config, compilerCtx, buildCtx, typeChecker, null, transformOpts)],
121-
afterDeclarations: [],
122-
};
121+
afterDeclarations: [] as (ts.CustomTransformerFactory | ts.TransformerFactory<ts.SourceFile | ts.Bundle>)[],
122+
} satisfies ts.CustomTransformers;
123123

124124
if (config.transformAliasedImportPaths) {
125125
transformers.before.push(rewriteAliasedSourceFileImportPaths);
@@ -146,7 +146,7 @@ export const transpileModule = (
146146

147147
program.emit(undefined, undefined, undefined, false, transformers);
148148

149-
const tsDiagnostics = [...program.getSyntacticDiagnostics()];
149+
const tsDiagnostics = [...program.getSyntacticDiagnostics()] as ts.Diagnostic[];
150150

151151
if (config.validateTypes) {
152152
tsDiagnostics.push(...program.getOptionsDiagnostics());
@@ -156,15 +156,15 @@ export const transpileModule = (
156156

157157
results.diagnostics.push(...buildCtx.diagnostics);
158158

159-
results.moduleFile = compilerCtx.moduleMap.get(results.sourceFilePath);
159+
results.moduleFile = compilerCtx.moduleMap.get(results.sourceFilePath)!;
160160

161161
return results;
162162
};
163163

164164
const getScriptTargetKind = (transformOpts: d.TransformOptions) => {
165165
const target = transformOpts.target && transformOpts.target.toUpperCase();
166-
if (isNumber((ts.ScriptTarget as any)[target])) {
167-
return (ts.ScriptTarget as any)[target];
166+
if (isNumber((ts.ScriptTarget as any)[target as string])) {
167+
return (ts.ScriptTarget as any)[target as string];
168168
}
169169
// ESNext and Latest are the same
170170
return ts.ScriptTarget.Latest;

src/declarations/stencil-public-runtime.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -853,6 +853,7 @@ export namespace JSXBase {
853853
hrefLang?: string;
854854
hreflang?: string;
855855
media?: string;
856+
ping?: string;
856857
rel?: string;
857858
target?: string;
858859
referrerPolicy?: ReferrerPolicy;

src/mock-doc/node.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -481,13 +481,13 @@ Testing components with ElementInternals is fully supported in e2e tests.`,
481481
}
482482

483483
insertAdjacentElement(position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend', elm: MockHTMLElement) {
484-
if (position === 'beforebegin') {
484+
if (position === 'beforebegin' && this.parentNode) {
485485
insertBefore(this.parentNode, elm, this);
486486
} else if (position === 'afterbegin') {
487487
this.prepend(elm);
488488
} else if (position === 'beforeend') {
489489
this.appendChild(elm);
490-
} else if (position === 'afterend') {
490+
} else if (position === 'afterend' && this.parentNode) {
491491
insertBefore(this.parentNode, elm, this.nextSibling);
492492
}
493493
return elm;
@@ -497,7 +497,9 @@ Testing components with ElementInternals is fully supported in e2e tests.`,
497497
const frag = parseFragmentUtil(this.ownerDocument, html);
498498
if (position === 'beforebegin') {
499499
while (frag.childNodes.length > 0) {
500-
insertBefore(this.parentNode, frag.childNodes[0], this);
500+
if (this.parentNode) {
501+
insertBefore(this.parentNode, frag.childNodes[0], this);
502+
}
501503
}
502504
} else if (position === 'afterbegin') {
503505
while (frag.childNodes.length > 0) {
@@ -509,20 +511,22 @@ Testing components with ElementInternals is fully supported in e2e tests.`,
509511
}
510512
} else if (position === 'afterend') {
511513
while (frag.childNodes.length > 0) {
512-
insertBefore(this.parentNode, frag.childNodes[frag.childNodes.length - 1], this.nextSibling);
514+
if (this.parentNode) {
515+
insertBefore(this.parentNode, frag.childNodes[frag.childNodes.length - 1], this.nextSibling);
516+
}
513517
}
514518
}
515519
}
516520

517521
insertAdjacentText(position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend', text: string) {
518522
const elm = this.ownerDocument.createTextNode(text);
519-
if (position === 'beforebegin') {
523+
if (position === 'beforebegin' && this.parentNode) {
520524
insertBefore(this.parentNode, elm, this);
521525
} else if (position === 'afterbegin') {
522526
this.prepend(elm);
523527
} else if (position === 'beforeend') {
524528
this.appendChild(elm);
525-
} else if (position === 'afterend') {
529+
} else if (position === 'afterend' && this.parentNode) {
526530
insertBefore(this.parentNode, elm, this.nextSibling);
527531
}
528532
}
@@ -1077,7 +1081,7 @@ export function resetElement(elm: MockElement) {
10771081
delete elm.__style;
10781082
}
10791083

1080-
function insertBefore(parentNode: MockNode, newNode: MockNode, referenceNode: MockNode) {
1084+
function insertBefore(parentNode: MockNode, newNode: MockNode, referenceNode: MockNode | null) {
10811085
if (newNode !== referenceNode) {
10821086
newNode.remove();
10831087
newNode.parentNode = parentNode;
@@ -1103,7 +1107,7 @@ function insertBefore(parentNode: MockNode, newNode: MockNode, referenceNode: Mo
11031107
export class MockHTMLElement extends MockElement {
11041108
override __namespaceURI = 'http://www.w3.org/1999/xhtml';
11051109

1106-
constructor(ownerDocument: any, nodeName: string) {
1110+
constructor(ownerDocument: any, nodeName: string | null) {
11071111
super(ownerDocument, typeof nodeName === 'string' ? nodeName.toUpperCase() : null);
11081112
}
11091113

0 commit comments

Comments
 (0)