-
Notifications
You must be signed in to change notification settings - Fork 785
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(compiler): sourcemap for dist-custom-elements generation #4200
Conversation
|
Path | Error Count |
---|---|
src/compiler/config/test/validate-dev-server.spec.ts | 49 |
src/compiler/config/test/validate-output-www.spec.ts | 40 |
src/screenshot/connector-base.ts | 40 |
src/dev-server/index.ts | 38 |
src/mock-doc/serialize-node.ts | 36 |
src/compiler/sys/tests/in-memory-fs.spec.ts | 34 |
src/screenshot/screenshot-compare.ts | 33 |
src/compiler/transformers/test/parse-props.spec.ts | 32 |
src/dev-server/server-process.ts | 32 |
src/runtime/vdom/vdom-render.ts | 31 |
src/compiler/sys/typescript/typescript-config.ts | 28 |
src/compiler/build/build-stats.ts | 27 |
src/compiler/output-targets/dist-lazy/generate-lazy-module.ts | 26 |
src/compiler/prerender/prerender-main.ts | 25 |
src/sys/node/test/worker-manager.spec.ts | 24 |
src/compiler/style/test/optimize-css.spec.ts | 23 |
src/runtime/update-component.ts | 23 |
src/testing/puppeteer/puppeteer-element.ts | 23 |
src/compiler/config/test/validate-paths.spec.ts | 22 |
src/utils/test/message-utils.spec.ts | 21 |
Our most common errors
Typescript Error Code | Count | Error messages |
---|---|---|
TS2345 | 590 | Error messagesArgument of type 'CompilerSystem | undefined' is not assignable to parameter of type 'CompilerSystem'.Type 'undefined' is not assignable to type 'CompilerSystem'. Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. Argument of type 'Promise<(() => void) | null>' is not assignable to parameter of type 'Promise<() => void>'. Argument of type 'null' is not assignable to parameter of type 'BuildResultsComponentGraph'. Argument of type 'DevServerConfig | undefined' is not assignable to parameter of type 'StencilDevServerConfig'. Type 'undefined' is not assignable to type 'StencilDevServerConfig'. Argument of type 'Promise<(() => void) | null>' is not assignable to parameter of type 'Promise<() => void>'. Type '(() => void) | null' is not assignable to type '() => void'. Type 'null' is not assignable to type '() => void'. Argument of type 'ComponentRuntimeHostListener[] | undefined' is not assignable to parameter of type 'ComponentRuntimeHostListener[]'. Type 'undefined' is not assignable to type 'ComponentRuntimeHostListener[]'. Argument of type 'HTMLScriptElement | null | undefined' is not assignable to parameter of type 'HTMLScriptElement'. Type 'undefined' is not assignable to type 'HTMLScriptElement'. Argument of type 'string | null' is not assignable to parameter of type 'string'. Type 'null' is not assignable to type 'string'. Argument of type 'Logger | undefined' is not assignable to parameter of type 'Logger'. Type 'undefined' is not assignable to type 'Logger'. Argument of type 'string[] | undefined' is not assignable to parameter of type 'string[]'. Type 'undefined' is not assignable to type 'string[]'. Argument of type 'string' is not assignable to parameter of type 'never'. Argument of type 'Diagnostic[] | undefined' is not assignable to parameter of type 'readonly Diagnostic[]'. Type 'undefined' is not assignable to type 'readonly Diagnostic[]'. Argument of type 'boolean | undefined' is not assignable to parameter of type 'boolean'. Argument of type 'BuildConditionals | undefined' is not assignable to parameter of type 'BuildConditionals'. Type 'undefined' is not assignable to type 'BuildConditionals'. Argument of type 'Diagnostic[] | undefined' is not assignable to parameter of type 'Diagnostic[]'. Type 'undefined' is not assignable to type 'Diagnostic[]'. Argument of type '{ styleText: string; output: string; map: null; diagnostics: never[]; imports: never[]; defaultVarName: string; styleDocs: never[]; }' is not assignable to parameter of type 'never'. Argument of type 'WorkerMeta | undefined' is not assignable to parameter of type 'WorkerMeta'. Type 'undefined' is not assignable to type 'WorkerMeta'. Argument of type 'string | null | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. Argument of type 'Set<string | null>' is not assignable to parameter of type 'Set'. Type 'string | null' is not assignable to type 'string'. Type 'null' is not assignable to type 'string'. Argument of type 'Set<string | null>' is not assignable to parameter of type 'Set'. Argument of type 'RollupConfig | undefined' is not assignable to parameter of type 'RollupConfig'. Type 'undefined' is not assignable to type 'RollupConfig'. Argument of type '(string[] | undefined)[]' is not assignable to parameter of type 'string[][]'. Type 'string[] | undefined' is not assignable to type 'string[]'. Type 'undefined' is not assignable to type 'string[]'. Argument of type 'ComponentCompilerMeta | undefined' is not assignable to parameter of type 'ComponentCompilerMeta'. Type 'undefined' is not assignable to type 'ComponentCompilerMeta'. Argument of type 'true | Object | undefined' is not assignable to parameter of type 'boolean | Object | null'. Type 'undefined' is not assignable to type 'boolean | Object | null'. Argument of type 'SourceTarget | undefined' is not assignable to parameter of type 'SourceTarget'. Type 'undefined' is not assignable to type 'SourceTarget'. Argument of type 'boolean | undefined' is not assignable to parameter of type 'boolean'. Type 'undefined' is not assignable to type 'boolean'. Argument of type '(string | undefined)[]' is not assignable to parameter of type 'string[]'. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Argument of type '(string | undefined)[]' is not assignable to parameter of type 'string[]'. Argument of type 'RollupSourceMap | undefined' is not assignable to parameter of type 'SourceMap'. Type 'undefined' is not assignable to type 'SourceMap'. Argument of type 'EntryModule | undefined' is not assignable to parameter of type 'EntryModule'. Type 'undefined' is not assignable to type 'EntryModule'. Argument of type '(Module | undefined)[]' is not assignable to parameter of type 'Module[]'. Type 'Module | undefined' is not assignable to type 'Module'. Type 'undefined' is not assignable to type 'Module'. Argument of type 'Document | null' is not assignable to parameter of type 'Document'. Type 'null' is not assignable to type 'Document'. Argument of type 'Document | null' is not assignable to parameter of type 'Node | MockNode'. Type 'null' is not assignable to type 'Node | MockNode'. Argument of type 'HydrateAnchorElement' is not assignable to parameter of type '{ [attrName: string]: string; }'. 'string' index signatures are incompatible. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Argument of type 'URL | null' is not assignable to parameter of type 'URL'. Type 'null' is not assignable to type 'URL'. Argument of type 'number | undefined' is not assignable to parameter of type 'number'. Type 'undefined' is not assignable to type 'number'. Argument of type 'SitemapXmpResults | null' is not assignable to parameter of type 'SitemapXmpResults'. Type 'null' is not assignable to type 'SitemapXmpResults'. Argument of type 'string | undefined' is not assignable to parameter of type 'string | URL'. Argument of type 'Map<string, string[]> | undefined' is not assignable to parameter of type 'Map<string, string[]>'. Type 'undefined' is not assignable to type 'Map<string, string[]>'. Argument of type 'undefined' is not assignable to parameter of type 'string'. Argument of type 'ServiceWorkerConfig | undefined' is not assignable to parameter of type 'ServiceWorkerConfig'. Type 'undefined' is not assignable to type 'ServiceWorkerConfig'. Argument of type 'string | undefined' is not assignable to parameter of type 'string | URL'. Type 'undefined' is not assignable to type 'string | URL'. Argument of type 'CssNode[] | null | undefined' is not assignable to parameter of type 'void | CssNode[]'. Argument of type 'CssNode[] | null | undefined' is not assignable to parameter of type 'void | CssNode[]'. Type 'null' is not assignable to type 'void | CssNode[]'. Argument of type 'null' is not assignable to parameter of type 'string'. Argument of type 'CompilerSystemCreateDirectoryOptions | undefined' is not assignable to parameter of type 'CompilerSystemCreateDirectoryOptions'. Type 'undefined' is not assignable to type 'CompilerSystemCreateDirectoryOptions'. Argument of type 'null' is not assignable to parameter of type 'CompilerFileWatcherEvent'. Argument of type 'null' is not assignable to parameter of type '{ access: (filePath: string) => Promise; accessSync: (filePath: string) => boolean; cancelDeleteDirectoriesFromDisk: (dirPaths: string[]) => void; cancelDeleteFilesFromDisk: (filePaths: string[]) => void; ... 17 more ...; writeFiles: (files: { ...; } | Map<...>, opts?: FsWriteOptions | undefined) => Promise...'. Argument of type 'undefined' is not assignable to parameter of type 'TypeChecker'. Argument of type 'CollectionBundleManifest[] | undefined' is not assignable to parameter of type 'any[]'. Type 'undefined' is not assignable to type 'any[]'. Argument of type 'Module | undefined' is not assignable to parameter of type 'Module'. Type 'undefined' is not assignable to type 'Module'. Argument of type 'NodeArray | undefined' is not assignable to parameter of type 'NodeArray | HeritageClause[]'. Type 'undefined' is not assignable to type 'NodeArray | HeritageClause[]'. Argument of type 'Block | undefined' is not assignable to parameter of type 'Block'. Type 'undefined' is not assignable to type 'Block'. Argument of type 'Expression | undefined' is not assignable to parameter of type 'Node'. Type 'undefined' is not assignable to type 'Node'. Argument of type 'Symbol | undefined' is not assignable to parameter of type 'Symbol'. Type 'undefined' is not assignable to type 'Symbol'. Argument of type 'TypeNode | undefined' is not assignable to parameter of type 'Node'. Type 'undefined' is not assignable to type 'Node'. Argument of type '(PropertyAssignment | null)[]' is not assignable to parameter of type 'readonly ObjectLiteralElementLike[]'. Type 'PropertyAssignment | null' is not assignable to type 'ObjectLiteralElementLike'. Type 'null' is not assignable to type 'ObjectLiteralElementLike'. Argument of type 'Signature | undefined' is not assignable to parameter of type 'Signature'. Type 'undefined' is not assignable to type 'Signature'. Argument of type 'Identifier | undefined' is not assignable to parameter of type 'Node'. Type 'undefined' is not assignable to type 'Node'. Argument of type 'ScriptTarget | undefined' is not assignable to parameter of type 'ScriptTarget | CreateSourceFileOptions'. Argument of type 'Config | null | undefined' is not assignable to parameter of type 'Config'. Type 'undefined' is not assignable to type 'Config'. Argument of type 'null' is not assignable to parameter of type 'CollectionCompilerMeta'. Argument of type 'PropertyName | undefined' is not assignable to parameter of type 'PropertyName'. Type 'undefined' is not assignable to type 'PropertyName'. Argument of type 'NamedExportBindings | undefined' is not assignable to parameter of type 'Node'. Type 'undefined' is not assignable to type 'Node'. Argument of type 'Declaration | undefined' is not assignable to parameter of type 'Node'. Type 'undefined' is not assignable to type 'Node'. Argument of type 'Identifier | undefined' is not assignable to parameter of type 'string | BindingName'. Type 'undefined' is not assignable to type 'string | BindingName'. Argument of type 'ScriptTarget | undefined' is not assignable to parameter of type 'ScriptTarget | CreateSourceFileOptions'. Type 'undefined' is not assignable to type 'ScriptTarget | CreateSourceFileOptions'. Argument of type 'Diagnostic' is not assignable to parameter of type 'DiagnosticWithLocation'. Types of property 'file' are incompatible. Type 'SourceFile | undefined' is not assignable to type 'SourceFile'. Type 'undefined' is not assignable to type 'SourceFile'. Argument of type '(...pathSegments: string[]) => string | undefined' is not assignable to parameter of type '(...args: string[]) => string'. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Argument of type 'OpenInEditorCallback | undefined' is not assignable to parameter of type 'OpenInEditorCallback'. Type 'undefined' is not assignable to type 'OpenInEditorCallback'. Argument of type 'CompilerWatcher | undefined' is not assignable to parameter of type 'CompilerWatcher'. Type 'undefined' is not assignable to type 'CompilerWatcher'. Argument of type '{ editor: string | undefined; }' is not assignable to parameter of type 'OpenInEditorOptions'. Types of property 'editor' are incompatible. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Argument of type 'string | undefined' is not assignable to parameter of type 'PathLike'. Argument of type 'DevServerConfig | undefined' is not assignable to parameter of type 'DevServerConfig'. Type 'undefined' is not assignable to type 'DevServerConfig'. Argument of type 'CompilerBuildResults | undefined' is not assignable to parameter of type 'CompilerBuildResults'. Type 'undefined' is not assignable to type 'CompilerBuildResults'. Argument of type 'Window | undefined' is not assignable to parameter of type 'Window'. Type 'undefined' is not assignable to type 'Window'. Argument of type 'SerializeDocumentOptions | undefined' is not assignable to parameter of type 'HydrateDocumentOptions'. Type 'undefined' is not assignable to type 'HydrateDocumentOptions'. Argument of type 'HydrateDocumentOptions | undefined' is not assignable to parameter of type 'HydrateDocumentOptions'. Type 'undefined' is not assignable to type 'HydrateDocumentOptions'. Argument of type 'MockNode | null' is not assignable to parameter of type 'MockNode'. Type 'null' is not assignable to type 'MockNode'. Argument of type 'string | undefined' is not assignable to parameter of type 'string | null'. Type 'undefined' is not assignable to type 'string | null'. Argument of type 'string | undefined' is not assignable to parameter of type 'string | null'. Argument of type 'ShadowRoot | null' is not assignable to parameter of type 'Node'. Type 'null' is not assignable to type 'Node'. Argument of type 'MockElement' is not assignable to parameter of type 'MockHTMLElement'. Types of property 'namespaceURI' are incompatible. Type 'string | null' is not assignable to type 'string'. Type 'null' is not assignable to type 'string'. Argument of type 'null' is not assignable to parameter of type 'string | Node'. Argument of type 'null' is not assignable to parameter of type 'string | boolean | undefined'. Argument of type '(Window & typeof globalThis) | null' is not assignable to parameter of type 'Window'. Type 'null' is not assignable to type 'Window'. Argument of type 'string | null | undefined' is not assignable to parameter of type 'string | undefined'. Argument of type 'HostRef | undefined' is not assignable to parameter of type 'HostRef'. Type 'undefined' is not assignable to type 'HostRef'. Argument of type 'this' is not assignable to parameter of type 'HostElement'. Type 'HostElement' is not assignable to type 'import("/home/runner/work/stencil/stencil/src/declarations/stencil-private").HostElement'. The types returned by 'componentOnReady()' are incompatible between these types. Type 'Promise | undefined' is not assignable to type 'Promise'. Type 'undefined' is not assignable to type 'Promise'. Argument of type 'this' is not assignable to parameter of type 'HostElement'. Argument of type 'string | null' is not assignable to parameter of type 'string | undefined'. Argument of type 'PropertyDescriptor | undefined' is not assignable to parameter of type 'PropertyDescriptor & ThisType'. Type 'undefined' is not assignable to type 'PropertyDescriptor & ThisType'. Type 'undefined' is not assignable to type 'PropertyDescriptor'. Argument of type 'HTMLElement | undefined' is not assignable to parameter of type 'HTMLElement'. Type 'undefined' is not assignable to type 'HTMLElement'. Argument of type 'HostElement | undefined' is not assignable to parameter of type 'HostElement'. Type 'undefined' is not assignable to type 'HostElement'. Argument of type 'HostElement | undefined' is not assignable to parameter of type 'EventTarget'. Type 'undefined' is not assignable to type 'EventTarget'. Argument of type 'HostElement | undefined' is not assignable to parameter of type 'Element'. Type 'undefined' is not assignable to type 'Element'. Argument of type 'VNode[] | undefined' is not assignable to parameter of type 'VNode[]'. Type 'undefined' is not assignable to type 'VNode[]'. Argument of type 'null | undefined' is not assignable to parameter of type 'ChildType'. Type 'undefined' is not assignable to type 'ChildType'. Argument of type 'VNode | null' is not assignable to parameter of type 'ChildType'. Type 'null' is not assignable to type 'ChildType'. Argument of type 'VNode | undefined' is not assignable to parameter of type 'ChildType'. Type 'undefined' is not assignable to type 'ChildType'. Argument of type 'VNode | null | undefined' is not assignable to parameter of type 'ChildType'. Type 'undefined' is not assignable to type 'ChildType'. Argument of type 'null | undefined' is not assignable to parameter of type 'ChildType'. Argument of type 'RenderNode | undefined' is not assignable to parameter of type 'Node | null'. Type 'undefined' is not assignable to type 'Node | null'. Argument of type 'VNode | undefined' is not assignable to parameter of type 'VNode'. Type 'undefined' is not assignable to type 'VNode'. Argument of type 'null' is not assignable to parameter of type 'VNode'. Argument of type 'RenderNode | undefined' is not assignable to parameter of type 'Node'. Type 'undefined' is not assignable to type 'Node'. Argument of type 'null' is not assignable to parameter of type 'RenderNode'. Argument of type 'ScreenshotDiff | undefined' is not assignable to parameter of type 'ScreenshotDiff'. Type 'undefined' is not assignable to type 'ScreenshotDiff'. Argument of type 'string | undefined' is not assignable to parameter of type 'PathLike'. Type 'undefined' is not assignable to type 'PathLike'. Argument of type 'string | undefined' is not assignable to parameter of type 'string | SemVer'. Type 'undefined' is not assignable to type 'string | SemVer'. Argument of type 'string | undefined' is not assignable to parameter of type 'string | SemVer'. Argument of type 'null' is not assignable to parameter of type 'number | undefined'. Argument of type 'null' is not assignable to parameter of type 'number | PromiseLike'. Argument of type 'CompilerWorkerTask | undefined' is not assignable to parameter of type 'CompilerWorkerTask'. Type 'undefined' is not assignable to type 'CompilerWorkerTask'. Argument of type 'null' is not assignable to parameter of type 'CompilerWorkerTask'. Argument of type 'undefined' is not assignable to parameter of type 'ErrorHandler'. Argument of type 'string | undefined' is not assignable to parameter of type 'MockRequestInfo'. Type 'undefined' is not assignable to type 'MockRequestInfo'. Argument of type 'string | undefined' is not assignable to parameter of type 'MockRequestInfo'. Argument of type 'MockResponse | undefined' is not assignable to parameter of type 'MockResponse'. Type 'undefined' is not assignable to type 'MockResponse'. Argument of type 'RuntimeRef | undefined' is not assignable to parameter of type 'RuntimeRef'. Type 'undefined' is not assignable to type 'RuntimeRef'. Argument of type 'this' is not assignable to parameter of type 'E2EElementInternal'. Type 'E2EElement' is not assignable to type 'E2EElementInternal'. Types of property 'find' are incompatible. Type '(selector: string) => Promise<E2EElement | null>' is not assignable to type '(selector: FindSelector) => Promise'. Argument of type '(elm: Element, pseudoElt: string) => any' is not assignable to parameter of type 'string | EvaluateFunc<[ElementHandle, string | null | undefined]>'. Type '(elm: Element, pseudoElt: string) => any' is not assignable to type 'EvaluateFunc<[ElementHandle, string | null | undefined]>'. Types of parameters 'pseudoElt' and 'params_1' are incompatible. Type 'string | null | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Argument of type 'this' is not assignable to parameter of type 'E2EElementInternal'. Argument of type '{ viewport: EmulateViewport | undefined; userAgent: string | undefined; }' is not assignable to parameter of type 'Device'. Types of property 'userAgent' are incompatible. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Argument of type 'null' is not assignable to parameter of type 'SourceMap | undefined'. Argument of type '{ tags: never[]; text: string; } | null | undefined' is not assignable to parameter of type 'CompilerJsDoc | undefined'. Type 'null' is not assignable to type 'CompilerJsDoc | undefined'. |
TS18048 | 572 | Error messages'config.sys' is possibly 'undefined'.'sys.details' is possibly 'undefined'. 'details' is possibly 'undefined'. 'config.devServer' is possibly 'undefined'. 'config.sys.getDevServerExecutingPath' is possibly 'undefined'. 'config.sys.lazyRequire' is possibly 'undefined'. 'sys.parseYarnLockFile' is possibly 'undefined'. 'scope.styleEl' is possibly 'undefined'. 'moduleFile' is possibly 'undefined'. 'config.extras' is possibly 'undefined'. 'config.logger' is possibly 'undefined'. 'hmr' is possibly 'undefined'. 'config.outputTargets' is possibly 'undefined'. 'c.moduleFiles' is possibly 'undefined'. 'a.name' is possibly 'undefined'. 'b.name' is possibly 'undefined'. 'orgNodeResolveId' is possibly 'undefined'. 'config.rollupPlugins' is possibly 'undefined'. 'config.rollupConfig' is possibly 'undefined'. 'config.rollupConfig.inputOptions' is possibly 'undefined'. 'compilerCtx.worker' is possibly 'undefined'. 'pluginTransforms.dependencies' is possibly 'undefined'. 'lastModified' is possibly 'undefined'. 'config.devServer.historyApiFallback' is possibly 'undefined'. 'inputConfig.devServer' is possibly 'undefined'. 'inputConfig.flags' is possibly 'undefined'. 'userConfig.flags' is possibly 'undefined'. 'www' is possibly 'undefined'. 'outputTarget' is possibly 'undefined'. 'o' is possibly 'undefined'. 'cmp' is possibly 'undefined'. 'deps' is possibly 'undefined'. 'cmp.directDependents' is possibly 'undefined'. 'cmp.dependents' is possibly 'undefined'. 'config.bundles' is possibly 'undefined'. 'c.dependencies' is possibly 'undefined'. 'c.directDependencies' is possibly 'undefined'. 'outputTargets' is possibly 'undefined'. 'opts' is possibly 'undefined'. 'errorLine.text' is possibly 'undefined'. 'errorLine.errorLength' is possibly 'undefined'. 'opts.format' is possibly 'undefined'. 'entryModule' is possibly 'undefined'. 'a.directDependents' is possibly 'undefined'. 'b.directDependents' is possibly 'undefined'. 'a.directDependencies' is possibly 'undefined'. 'b.directDependencies' is possibly 'undefined'. 'a.dependents' is possibly 'undefined'. 'b.dependents' is possibly 'undefined'. 'a.dependencies' is possibly 'undefined'. 'b.dependencies' is possibly 'undefined'. 'bundleOptions.loader' is possibly 'undefined'. 'pluginCtx.config.plugins' is possibly 'undefined'. 'transformResults.id' is possibly 'undefined'. 'transformResults.dependencies' is possibly 'undefined'. 'transformResults.diagnostics' is possibly 'undefined'. 'config.maxConcurrentWorkers' is possibly 'undefined'. 'hydrateOpts.staticComponents' is possibly 'undefined'. 'sys.generateFileHash' is possibly 'undefined'. 'manager.config.logger' is possibly 'undefined'. 'manager.config.sys' is possibly 'undefined'. 'serviceWorker' is possibly 'undefined'. 'node.comment' is possibly 'undefined'. 'node.selectors' is possibly 'undefined'. 'node.values' is possibly 'undefined'. 'moduleId' is possibly 'undefined'. 'sys' is possibly 'undefined'. 'tsResults.diagnostics' is possibly 'undefined'. 'r.resolvedModule' is possibly 'undefined'. 'results' is possibly 'undefined'. 'compilerSystem.watchDirectory' is possibly 'undefined'. 'compilerSystem.watchFile' is possibly 'undefined'. 'collectionManifest.bundles' is possibly 'undefined'. 'cstrMethod.body' is possibly 'undefined'. 'cmp.dependencies' is possibly 'undefined'. 'foundDep' is possibly 'undefined'. 'connectedCallback.body' is possibly 'undefined'. 'cmpNode.name' is possibly 'undefined'. 'symbol.declarations' is possibly 'undefined'. 'signature' is possibly 'undefined'. 'collection.moduleFiles' is possibly 'undefined'. 'tsSourceFiles' is possibly 'undefined'. 'results.data' is possibly 'undefined'. 'results.imports' is possibly 'undefined'. 'transformers.before' is possibly 'undefined'. 'transformers.afterDeclarations' is possibly 'undefined'. 'transformers.after' is possibly 'undefined'. 'msg.requestLog' is possibly 'undefined'. 'msg.error' is possibly 'undefined'. 'msg.buildResults' is possibly 'undefined'. 'a.priority' is possibly 'undefined'. 'b.priority' is possibly 'undefined'. 'devServerConfig.historyApiFallback' is possibly 'undefined'. 'devServerConfig.basePath' is possibly 'undefined'. 'req.pathname' is possibly 'undefined'. 'req.stats' is possibly 'undefined'. 'devServerConfig' is possibly 'undefined'. 'res.$content' is possibly 'undefined'. 'opts.maxHydrateCount' is possibly 'undefined'. 'ref' is possibly 'undefined'. 'opts.excludeComponents' is possibly 'undefined'. 'hostRef' is possibly 'undefined'. 'hostRef.$instanceValues$' is possibly 'undefined'. 'ref.$onInstancePromise$' is possibly 'undefined'. 'ref.$lazyInstance$' is possibly 'undefined'. 'opts.indentSpaces' is possibly 'undefined'. 'opts.approximateLineWidth' is possibly 'undefined'. 'plt.$orgLocNodes$' is possibly 'undefined'. 'hostRef.$lazyInstance$' is possibly 'undefined'. 'cmpMeta.$attrsToReflect$' is possibly 'undefined'. 'cmpMeta.$members$' is possibly 'undefined'. 'elm' is possibly 'undefined'. 'hostRef.$renderCount$' is possibly 'undefined'. 'childrenPromises' is possibly 'undefined'. 'hostRef.$hostElement$' is possibly 'undefined'. 'nodeRef' is possibly 'undefined'. 'hostElm' is possibly 'undefined'. 'screenshot.diff' is possibly 'undefined'. 'screenshotCache.items' is possibly 'undefined'. 'a.width' is possibly 'undefined'. 'b.width' is possibly 'undefined'. 'a.height' is possibly 'undefined'. 'b.height' is possibly 'undefined'. 'a.id' is possibly 'undefined'. 'b.id' is possibly 'undefined'. 'emulateConfig.viewport' is possibly 'undefined'. 'emulateConfig.viewport.deviceScaleFactor' is possibly 'undefined'. 'res.statusCode' is possibly 'undefined'. 'tsSysWatchDirectory' is possibly 'undefined'. 'tsSysWatchFile' is possibly 'undefined'. 'sys.events' is possibly 'undefined'. 't.retries' is possibly 'undefined'. 'testing.emulate' is possibly 'undefined'. 'parsedConfig.collectCoverageFrom' is possibly 'undefined'. 'compare.width' is possibly 'undefined'. 'compare.deviceScaleFactor' is possibly 'undefined'. 'compare.height' is possibly 'undefined'. 'config' is possibly 'undefined'. 'screenshotEmulate.viewport' is possibly 'undefined'. 'd.absFilePath' is possibly 'undefined'. 'd.code' is possibly 'undefined'. |
TS2322 | 505 | Error messagesType 'string | null | undefined' is not assignable to type 'string'.Type 'undefined' is not assignable to type 'string'. Type 'null' is not assignable to type 'DevServerConfig | undefined'. Type 'boolean | null | undefined' is not assignable to type 'boolean | undefined'. Type 'null' is not assignable to type 'boolean | undefined'. Type 'null' is not assignable to type 'DevServer'. Type 'undefined' is not assignable to type 'ComponentConstructor | Promise'. Type 'HTMLElement | null' is not assignable to type 'HTMLElement'. Type 'null' is not assignable to type 'HTMLElement'. Type '({ type: "chunk"; fileName: string; map: SourceMap | undefined; code: string; moduleFormat: ModuleFormat | undefined; entryKey: string; imports: string[]; isEntry: boolean; ... 4 more ...; content?: undefined; } | { ...; })[]' is not assignable to type 'RollupResult[]'. Type '{ type: "chunk"; fileName: string; map: SourceMap | undefined; code: string; moduleFormat: ModuleFormat | undefined; entryKey: string; imports: string[]; isEntry: boolean; ... 4 more ...; content?: undefined; } | { ...; }' is not assignable to type 'RollupResult'. Type '{ type: "chunk"; fileName: string; map: SourceMap | undefined; code: string; moduleFormat: ModuleFormat | undefined; entryKey: string; imports: string[]; isEntry: boolean; ... 4 more ...; content?: undefined; }' is not assignable to type 'RollupResult'. Type '{ type: "chunk"; fileName: string; map: SourceMap | undefined; code: string; moduleFormat: ModuleFormat | undefined; entryKey: string; imports: string[]; isEntry: boolean; ... 4 more ...; content?: undefined; }' is not assignable to type 'RollupChunkResult'. Types of property 'moduleFormat' are incompatible. Type 'ModuleFormat | undefined' is not assignable to type 'ModuleFormat'. Type 'undefined' is not assignable to type 'ModuleFormat'. Type 'null' is not assignable to type 'CompilerBuildResults'. Type 'undefined' is not assignable to type 'string'. Type 'null' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'Document'. Type 'null' is not assignable to type 'Promise'. Type 'null' is not assignable to type 'LoggerTimeSpan'. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type 'boolean | undefined' is not assignable to type 'boolean'. Type 'number | undefined' is not assignable to type 'number'. Type 'undefined' is not assignable to type 'number'. Type 'boolean | "prod" | undefined' is not assignable to type 'boolean | "prod"'. Type 'undefined' is not assignable to type 'boolean | "prod"'. Type 'BuildResultsComponentGraph | undefined' is not assignable to type 'BuildResultsComponentGraph'. Type 'undefined' is not assignable to type 'BuildResultsComponentGraph'. Type 'RollupResults | undefined' is not assignable to type 'RollupResults'. Type 'undefined' is not assignable to type 'RollupResults'. Type '{ name: string | undefined; source: string; tags: any[]; }[]' is not assignable to type '{ name: string; source: string; tags: string[]; }[]'. Type '{ name: string | undefined; source: string; tags: any[]; }' is not assignable to type '{ name: string; source: string; tags: string[]; }'. Types of property 'name' are incompatible. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type 'null' is not assignable to type 'CompilerWorkerContext'. Type 'null' is not assignable to type 'WatchOfConfigFile'. Type 'null' is not assignable to type 'Promise<(void | void[])[]>'. Type 'Promise<(void | void[] | null)[]>' is not assignable to type 'Promise<(void | void[])[]>'. Type '(void | void[] | null)[]' is not assignable to type '(void | void[])[]'. Type 'void | void[] | null' is not assignable to type 'void | void[]'. Type 'null' is not assignable to type 'void | void[]'. Type 'null' is not assignable to type '{ program: WatchOfConfigFile; rebuild: () => void; }'. Type '(this: PluginContext, importee: string, importer: string) => Promise' is not assignable to type 'ResolveIdHook'. Types of parameters 'importer' and 'importer' are incompatible. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type '(this: PluginContext, importee: string, importer: string) => Promise' is not assignable to type 'ResolveIdHook'. Types of parameters 'importer' and 'importer' are incompatible. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type 'string | null' is not assignable to type 'string'. Type 'null' is not assignable to type 'string'. Type 'null' is not assignable to type 'string | undefined'. Type '{ code: string; exports: string[]; workerMsgId: string; dependencies: string[]; } | null' is not assignable to type 'WorkerMeta | undefined'. Type 'null' is not assignable to type 'WorkerMeta | undefined'. Type 'WorkerMeta | undefined' is not assignable to type 'WorkerMeta'. Type 'undefined' is not assignable to type 'WorkerMeta'. Type 'CompilerSystem | undefined' is not assignable to type 'CompilerSystem'. Type 'undefined' is not assignable to type 'CompilerSystem'. Type 'Logger | undefined' is not assignable to type 'Logger'. Type 'undefined' is not assignable to type 'Logger'. Type 'import("/home/runner/work/stencil/stencil/src/compiler/cache").Cache' is not assignable to type 'import("/home/runner/work/stencil/stencil/src/declarations/stencil-private").Cache'. The types returned by 'get(...)' are incompatible between these types. Type 'Promise<string | null>' is not assignable to type 'Promise'. Type 'null' is not assignable to type 'ValidatedConfig'. Type 'null' is not assignable to type 'Config'. Type 'null' is not assignable to type 'string[]'. Type '{ dir: string; buildDir: string; collectionDir: string | null; typesDir: string; esmLoaderPath: string; copy: d.CopyTask[]; polyfills: boolean | undefined; empty: boolean; transformAliasedImportPathsInCollection: boolean; type: "dist"; }' is not assignable to type 'Required'. Types of property 'polyfills' are incompatible. Type 'boolean | undefined' is not assignable to type 'boolean'. Type 'null' is not assignable to type 'number | undefined'. Type 'null' is not assignable to type 'HistoryApiFallback | undefined'. Type 'null' is not assignable to type 'CopyTask[] | undefined'. Type '{ dirPath: string; filePath: string; fileName: string; readmePath: string; usagesDir: string; tag: string; readme: string | undefined; overview: string; usage: JsonDocsUsage; ... 13 more ...; listeners: JsonDocsListener[]; }[]' is not assignable to type 'JsonDocsComponent[]'. Type '{ dirPath: string; filePath: string; fileName: string; readmePath: string; usagesDir: string; tag: string; readme: string | undefined; overview: string; usage: d.JsonDocsUsage; docs: string; ... 12 more ...; listeners: d.JsonDocsListener[]; }' is not assignable to type 'JsonDocsComponent'. Types of property 'readme' are incompatible. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type 'string[] | undefined' is not assignable to type 'string[]'. Type 'undefined' is not assignable to type 'string[]'. Type '{ name: string; type: string; mutable: boolean; attr: string | undefined; reflectToAttr: boolean; docs: string; docsTags: CompilerJsDocTagInfo[]; default: string | undefined; deprecation: string | undefined; values: JsonDocsValue[]; optional: boolean; required: boolean; }[]' is not assignable to type 'JsonDocsProp[]'. Type '{ name: string; type: string; mutable: boolean; attr: string | undefined; reflectToAttr: boolean; docs: string; docsTags: d.CompilerJsDocTagInfo[]; default: string | undefined; deprecation: string | undefined; values: d.JsonDocsValue[]; optional: boolean; required: boolean; }' is not assignable to type 'JsonDocsProp'. Types of property 'default' are incompatible. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type '{ name: string; type: string; mutable: false; attr: string; reflectToAttr: false; docs: string; docsTags: never[]; default: undefined; deprecation: undefined; values: JsonDocsValue[]; optional: true; required: false; }[]' is not assignable to type 'JsonDocsProp[]'. Type '{ name: string; type: string; mutable: false; attr: string; reflectToAttr: false; docs: string; docsTags: never[]; default: undefined; deprecation: undefined; values: d.JsonDocsValue[]; optional: true; required: false; }' is not assignable to type 'JsonDocsProp'. Types of property 'default' are incompatible. Type 'undefined' is not assignable to type 'string'. Type '(ComponentCompilerMeta | undefined)[]' is not assignable to type 'ComponentCompilerMeta[]'. Type 'ComponentCompilerMeta | undefined' is not assignable to type 'ComponentCompilerMeta'. Type 'undefined' is not assignable to type 'ComponentCompilerMeta'. Type '(ComponentCompilerMeta | undefined)[][]' is not assignable to type 'readonly ComponentCompilerMeta[][]'. Type '(ComponentCompilerMeta | undefined)[]' is not assignable to type 'ComponentCompilerMeta[]'. Type 'null' is not assignable to type 'boolean | SourceMapOptions | undefined'. Type 'null' is not assignable to type 'SourceMap | undefined'. Type '{ name: string | undefined; tags: string[]; }[]' is not assignable to type 'CollectionDependencyData[]'. Type '{ name: string | undefined; tags: string[]; }' is not assignable to type 'CollectionDependencyData'. Types of property 'name' are incompatible. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type 'string | undefined' is not assignable to type 'string | number'. Type 'undefined' is not assignable to type 'string | number'. Type 'SourceMap | undefined' is not assignable to type 'SourceMap'. Type 'undefined' is not assignable to type 'SourceMap'. Type 'string | null' is not assignable to type 'string | undefined'. Type 'null' is not assignable to type 'string | undefined'. Type 'null' is not assignable to type 'Function'. Type 'null' is not assignable to type 'Map<string, string[]>'. Type 'null' is not assignable to type 'PrerenderConfig'. Type 'null' is not assignable to type 'Set'. Type 'null' is not assignable to type 'HydrateAnchorElement[]'. Type 'null' is not assignable to type '(prerenderRequest: PrerenderUrlRequest) => Promise'. Type 'CssNode | null' is not assignable to type 'void | CssNode'. Type 'null' is not assignable to type 'void | CssNode'. Type 'CssNode | null' is not assignable to type 'CssNode'. Type 'null' is not assignable to type 'CssNode'. Type 'CssNode | null' is not assignable to type 'void | CssNode'. Type 'RegExpExecArray | null' is not assignable to type 'RegExpExecArray'. Type 'null' is not assignable to type 'RegExpExecArray'. Type 'null' is not assignable to type '() => string'. Type 'null' is not assignable to type 'number'. Type 'null' is not assignable to type 'boolean'. Type 'null' is not assignable to type 'boolean | undefined'. Type 'FsItem | undefined' is not assignable to type 'FsItem'. Type 'undefined' is not assignable to type 'FsItem'. Type 'null' is not assignable to type 'CompilerFileWatcherCallback[]'. Type '(key: string) => string | undefined' is not assignable to type '(key: string) => string'. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type '(p: string) => Promise<string | undefined>' is not assignable to type '{ (p: string): Promise; (p: string, encoding: "utf8"): Promise; (p: string, encoding: "binary"): Promise; }'. Type 'Promise<string | undefined>' is not assignable to type 'Promise'. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type '(p: string) => string | undefined' is not assignable to type '(p: string, encoding?: string | undefined) => string'. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type '((maxConcurrentWorkers: number) => WorkerMainController) | null' is not assignable to type '((maxConcurrentWorkers: number) => WorkerMainController) | undefined'. Type 'null' is not assignable to type '((maxConcurrentWorkers: number) => WorkerMainController) | undefined'. Type 'null' is not assignable to type 'ResolvedModuleWithFailedLookupLocations'. Type 'null' is not assignable to type 'Worker'. Type 'CollectionCompilerMeta | undefined' is not assignable to type 'CollectionCompilerMeta'. Type 'undefined' is not assignable to type 'CollectionCompilerMeta'. Type 'DeclarationName | undefined' is not assignable to type 'DeclarationName'. Type 'undefined' is not assignable to type 'DeclarationName'. Type 'boolean | null' is not assignable to type 'boolean'. Type 'null' is not assignable to type 'boolean'. Type 'undefined' is not assignable to type 'ComponentCompilerVirtualProperty'. Type '{ name: string; method: string; bubbles: boolean; cancelable: boolean; composed: boolean; docs: CompilerJsDoc; complexType: ComponentCompilerEventComplexType; internal: boolean | undefined; }[]' is not assignable to type 'ComponentCompilerEvent[]'. Type '{ name: string; method: string; bubbles: boolean; cancelable: boolean; composed: boolean; docs: d.CompilerJsDoc; complexType: d.ComponentCompilerEventComplexType; internal: boolean | undefined; }' is not assignable to type 'ComponentCompilerEvent'. Types of property 'internal' are incompatible. Type 'boolean | undefined' is not assignable to type 'boolean'. Type '{ name: string; docs: CompilerJsDoc; complexType: ComponentCompilerMethodComplexType; internal: boolean | undefined; }[]' is not assignable to type 'ComponentCompilerMethod[]'. Type '{ name: string; docs: d.CompilerJsDoc; complexType: d.ComponentCompilerMethodComplexType; internal: boolean | undefined; }' is not assignable to type 'ComponentCompilerMethod'. Types of property 'internal' are incompatible. Type 'boolean | undefined' is not assignable to type 'boolean'. Type '{ name: string; type: ComponentCompilerPropertyType; attribute: string | undefined; reflect: boolean; mutable: boolean; required: boolean; optional: boolean; defaultValue: string | undefined; complexType: ComponentCompilerPropertyComplexType; docs: CompilerJsDoc; internal: boolean | undefined; }[]' is not assignable to type 'ComponentCompilerProperty[]'. Type '{ name: string; type: d.ComponentCompilerPropertyType; attribute: string | undefined; reflect: boolean; mutable: boolean; required: boolean; optional: boolean; defaultValue: string | undefined; complexType: d.ComponentCompilerPropertyComplexType; docs: d.CompilerJsDoc; internal: boolean | undefined; }' is not assignable to type 'ComponentCompilerProperty'. Types of property 'internal' are incompatible. Type 'boolean | undefined' is not assignable to type 'boolean'. Type 'null' is not assignable to type 'ImportData'. Type 'undefined' is not assignable to type '"queryparams" | null'. Type 'null' is not assignable to type 'WeakSet'. Type 'null' is not assignable to type 'Module'. Type 'Module | undefined' is not assignable to type 'Module'. Type 'undefined' is not assignable to type 'Module'. Type 'undefined' is not assignable to type 'CompilerJsDoc'. Type '{ [x: string]: d.TypesMemberNameData[] | undefined; }' is not assignable to type 'TypesImportData'. 'string' index signatures are incompatible. Type 'TypesMemberNameData[] | undefined' is not assignable to type 'TypesMemberNameData[]'. Type 'undefined' is not assignable to type 'TypesMemberNameData[]'. Type 'string | undefined' is not assignable to type 'string | null'. Type '((data: { file: string; line: number; column: number; }) => void) | null' is not assignable to type 'OpenInEditorCallback | undefined'. Type 'null' is not assignable to type 'OpenInEditorCallback | undefined'. Type 'null' is not assignable to type 'WebSocket'. Type 'null' is not assignable to type 'BuildOnEventRemove'. Type 'null' is not assignable to type '() => void'. Type 'null' is not assignable to type '(msg: DevServerMessage) => void'. Type 'DevServerConfig | undefined' is not assignable to type 'DevServerConfig'. Type 'undefined' is not assignable to type 'DevServerConfig'. Type 'null' is not assignable to type '{ open(openId: string): Promise; }'. Type 'string | null' is not assignable to type 'string | undefined'. Type 'null' is not assignable to type 'Promise<DevServerEditor[]>'. Type 'null' is not assignable to type '(req: IncomingMessage, res: ServerResponse, next: () => void) => void'. Type 'null' is not assignable to type 'URL'. Type 'null' is not assignable to type 'URLSearchParams'. Type 'PageReloadStrategy | undefined' is not assignable to type 'PageReloadStrategy'. Type 'undefined' is not assignable to type 'PageReloadStrategy'. Type 'null' is not assignable to type 'Server<typeof IncomingMessage, typeof ServerResponse>'. Type 'null' is not assignable to type 'DevWebSocket'. Type 'null' is not assignable to type 'DevServerContext'. Type 'DevWebSocket | null' is not assignable to type 'DevWebSocket'. Type 'null' is not assignable to type 'DevWebSocket'. Type 'null' is not assignable to type 'ChildProcess'. Type 'null' is not assignable to type 'HydrateApp'. Type '() => undefined' is not assignable to type '{ (cb?: (() => void) | undefined): TestServerResponse; (chunk: any, cb?: (() => void) | undefined): TestServerResponse; (chunk: any, encoding: BufferEncoding, cb?: (() => void) | undefined): TestServerResponse; }'. Type 'undefined' is not assignable to type 'TestServerResponse'. Type 'null' is not assignable to type 'ComponentConstructor'. Type '(this: HostElement) => Promise | undefined' is not assignable to type '() => Promise'. Type 'Promise | undefined' is not assignable to type 'Promise'. Type 'undefined' is not assignable to type 'Promise'. Type 'null' is not assignable to type 'Window & typeof globalThis'. Type 'null' is not assignable to type 'Window'. Type 'null' is not assignable to type 'Window & typeof globalThis'. Type 'null' is not assignable to type 'MockCSSStyleSheet'. Type 'null' is not assignable to type 'string | boolean'. Type 'null' is not assignable to type 'Location'. Type 'null' is not assignable to type 'MockElement'. Type 'null' is not assignable to type 'SVGSVGElement'. Type 'null' is not assignable to type 'SVGElement'. Type 'null' is not assignable to type 'EventTarget'. Type 'null' is not assignable to type 'MockEventListener[]'. Type 'null' is not assignable to type 'MockDocument'. Type '{ name: string; value: string; namespace: string | null; prefix: null; }[]' is not assignable to type 'Attribute[]'. Type '{ name: string; value: string; namespace: string | null; prefix: null; }' is not assignable to type 'Attribute'. Types of property 'namespace' are incompatible. Type 'string | null' is not assignable to type 'string | undefined'. Type '(element: MockElement) => string | null' is not assignable to type '(element: unknown) => string'. Type 'string | null' is not assignable to type 'string'. Type 'null' is not assignable to type 'string'. Type 'ParentNode | null' is not assignable to type 'Node'. Type 'null' is not assignable to type 'Node'. Type 'null' is not assignable to type 'Document'. Type 'string | null | undefined' is not assignable to type 'string | undefined'. Type 'never[] | null' is not assignable to type 'RenderNode[]'. Type 'null' is not assignable to type 'RenderNode[]'. Type 'null' is not assignable to type 'VNode[]'. Type 'null' is not assignable to type 'string | number | undefined'. Type 'null' is not assignable to type 'string | number | Function'. Type 'RenderNode | null' is not assignable to type 'RenderNode'. Type 'null' is not assignable to type 'RenderNode'. Type 'HTMLElement | null' is not assignable to type 'EventTarget'. Type 'null' is not assignable to type 'EventTarget'. Type 'string | null | undefined' is not assignable to type 'string | undefined'. Type 'null' is not assignable to type 'string | undefined'. Type 'null' is not assignable to type 'Set | undefined'. Type 'null' is not assignable to type '[string, any][] | undefined'. Type 'VNode[] | undefined' is not assignable to type 'VNode[]'. Type 'undefined' is not assignable to type 'VNode[]'. Type '(props: {}, children: VNode[], utils: FunctionalUtilities) => null' is not assignable to type 'FunctionalComponent<{}>'. Type 'null' is not assignable to type 'VNode | VNode[]'. Type '() => null' is not assignable to type 'FunctionalComponent<{}>'. Type 'null' is not assignable to type 'VNode | VNode[]'. Type 'null' is not assignable to type 'VNode'. Type 'undefined' is not assignable to type 'VNode'. Type 'RenderNode | undefined' is not assignable to type 'RenderNode'. Type 'undefined' is not assignable to type 'RenderNode'. Type 'RelocateNodeData | undefined' is not assignable to type 'RelocateNodeData'. Type 'undefined' is not assignable to type 'RelocateNodeData'. Type 'ChildNode | null' is not assignable to type 'Node'. Type 'null' is not assignable to type 'Node'. Type 'null' is not assignable to type 'ScreenshotBuild'. Type 'null' is not assignable to type 'ScreenshotCache'. Type 'null' is not assignable to type 'Buffer'. Type 'null' is not assignable to type 'Screenshot'. Type '(() => void) | undefined' is not assignable to type '() => any'. Type 'undefined' is not assignable to type '() => any'. Type '() => null' is not assignable to type '(opts: { rootDir: string; moduleId: string; path: string; }) => string'. Type 'null' is not assignable to type 'string'. Type '() => null' is not assignable to type '(opts: { moduleId: string; path?: string | undefined; version?: string | undefined; }) => string'. Type 'null' is not assignable to type 'string'. Type '() => string | undefined' is not assignable to type '() => string'. Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. Type 'number | null' is not assignable to type 'number'. Type 'null' is not assignable to type 'number'. Type 'any[] | undefined' is not assignable to type 'any[]'. Type 'undefined' is not assignable to type 'any[]'. Type 'boolean | null | undefined' is not assignable to type 'boolean | undefined'. Type 'null' is not assignable to type 'ConfigBundle[] | undefined'. Type 'null' is not assignable to type 'OutputTarget[] | undefined'. Type 'null' is not assignable to type 'TestingConfig | undefined'. Type 'null' is not assignable to type 'Cache'. Type 'null' is not assignable to type '{ access: (filePath: string) => Promise; accessSync: (filePath: string) => boolean; cancelDeleteDirectoriesFromDisk: (dirPaths: string[]) => void; cancelDeleteFilesFromDisk: (filePaths: string[]) => void; ... 17 more ...; writeFiles: (files: { ...; } | Map<...>, opts?: FsWriteOptions | undefined) => Promise...'. Type 'HostRef | undefined' is not assignable to type 'HostRef'. Type 'undefined' is not assignable to type 'HostRef'. Type 'Function | undefined' is not assignable to type 'Function'. Type 'undefined' is not assignable to type 'Function'. Type 'RafCallback | undefined' is not assignable to type 'Function'. Type 'undefined' is not assignable to type 'Function'. Type 'QueuedLoadModule | undefined' is not assignable to type 'QueuedLoadModule'. Type 'undefined' is not assignable to type 'QueuedLoadModule'. Type 'null' is not assignable to type 'ElementHandle'. Type 'null' is not assignable to type 'E2EPageInternal'. Type 'ElementHandle | null' is not assignable to type 'ElementHandle'. Type 'null' is not assignable to type 'ElementHandle'. Type 'ElementHandle | null' is not assignable to type 'ElementHandle'. Type 'null' is not assignable to type 'ElementHandle'. Type 'ElementHandle | null' is not assignable to type 'ElementHandle | null'. Type 'ElementHandle' is not assignable to type 'ElementHandle'. Type 'Node' is missing the following properties from type 'Element': attributes, classList, className, clientHeight, and 114 more. Type 'null' is not assignable to type 'Promise<JSHandle>'. Type '(a?: any, b?: any) => Promise<ScreenshotDiff | undefined>' is not assignable to type '{ (): Promise; (description: string): Promise; (opts: ScreenshotOptions): Promise<...>; (description: string, opts: ScreenshotOptions): Promise<...>; }'. Type 'Promise<ScreenshotDiff | undefined>' is not assignable to type 'Promise'. Type 'ScreenshotDiff | undefined' is not assignable to type 'ScreenshotDiff'. Type 'undefined' is not assignable to type 'ScreenshotDiff'. Type 'null' is not assignable to type 'CompilerWatcher'. Type 'null' is not assignable to type 'Promise'. Type 'Browser | null' is not assignable to type 'Browser'. Type 'null' is not assignable to type 'Browser'. Type 'null' is not assignable to type 'ValidatedConfig'. Type 'null' is not assignable to type 'Browser'. Type 'null' is not assignable to type 'SourceMap'. Type 'null' is not assignable to type 'PackageJsonData'. Type 'null' is not assignable to type '{ [moduleId: string]: string; } | undefined'. |
TS18047 | 167 | Error messages'var1' is possibly 'null'.'configFileData' is possibly 'null'. 'canonicalLinkElm.parentNode' is possibly 'null'. 'link.parentNode' is possibly 'null'. 'href' is possibly 'null'. 'stencilScriptElm.parentNode' is possibly 'null'. 'attr' is possibly 'null'. 't.cmp' is possibly 'null'. 't.event' is possibly 'null'. 't.property' is possibly 'null'. 'appErrorElm.parentNode' is possibly 'null'. 'progressBar.parentNode' is possibly 'null'. 'serverProcess.stdout' is possibly 'null'. 'serverProcess.stderr' is possibly 'null'. 'node.nodeName' is possibly 'null'. 'element.nodeName' is possibly 'null'. 'nodeValue' is possibly 'null'. 'cloned' is possibly 'null'. 'clonedDiv' is possibly 'null'. 'clonedTemplate' is possibly 'null'. 'clonedTemplate.content.firstChild' is possibly 'null'. 'clonedTemplate.content.firstChild.textContent' is possibly 'null'. 'clonedWin' is possibly 'null'. 'titleElm' is possibly 'null'. 'doc.body.firstElementChild' is possibly 'null'. 'doc.body.firstElementChild.firstElementChild' is possibly 'null'. 'tmplElm.content.firstChild' is possibly 'null'. 'doc.firstElementChild' is possibly 'null'. 'doc.lastChild' is possibly 'null'. 'dstWin' is possibly 'null'. 'orgLocationNode.parentNode' is possibly 'null'. 'node.nodeValue' is possibly 'null'. 'node.parentNode' is possibly 'null'. 'appendAfter.parentNode' is possibly 'null'. 'hostElm.firstElementChild' is possibly 'null'. 'hostElm.lastElementChild' is possibly 'null'. 'nodeRef.nodeValue' is possibly 'null'. 'nodeRef.parentNode' is possibly 'null'. 'parentNode' is possibly 'null'. 'defaultHolder.parentNode' is possibly 'null'. 'nodeToRelocate.parentNode' is possibly 'null'. 'w' is possibly 'null'. 'elm.textContent' is possibly 'null'. 'rsp' is possibly 'null'. 'p.params' is possibly 'null'. 'head' is possibly 'null'. |
TS2532 | 63 | Error messagesObject is possibly 'undefined'. |
TS2454 | 45 | Error messagesVariable 'pkgJsonData' is used before being assigned.Variable 'minifyOpts' is used before being assigned. Variable 'workerCtrl' is used before being assigned. Variable 'timespan' is used before being assigned. Variable 'content' is used before being assigned. Variable 'compilerExe' is used before being assigned. Variable 'declarationOutputText' is used before being assigned. Variable 'outputText' is used before being assigned. Variable 'importResolvedFile' is used before being assigned. Variable 'win' is used before being assigned. Variable 'attrName' is used before being assigned. Variable 'oldValue' is used before being assigned. Variable 'newValue' is used before being assigned. Variable 'hostId' is used before being assigned. Variable 'promise' is used before being assigned. Variable 'textContent' is used before being assigned. Variable 'resolve' is used before being assigned. Variable 'opts' is used before being assigned. |
TS2722 | 39 | Error messagesCannot invoke an object which is possibly 'undefined'. |
TS2531 | 37 | Error messagesObject is possibly 'null'. |
TS2352 | 19 | Error messagesConversion of type 'null' to type 'CompilerSystem' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.Conversion of type 'null' to type 'string' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Conversion of type 'null' to type 'string[]' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Conversion of type '{ cmps: never[]; }' to type 'Module' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type '{ cmps: never[]; }' is missing the following properties from type 'Module': coreRuntimeApis, outputTargetCoreRuntimeApis, collectionName, dtsFilePath, and 28 more. Conversion of type 'null' to type 'ScreenshotCache' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. |
TS2769 | 12 | Error messagesNo overload matches this call.Overload 1 of 2, '(type: keyof DocumentEventMap, listener: (this: Document, ev: PointerEvent | MouseEvent | UIEvent | Event | ErrorEvent | ... 13 more ... | WheelEvent) => any, options?: boolean | ... 1 more ... | undefined): void', gave the following error. Argument of type '"e"' is not assignable to parameter of type 'keyof DocumentEventMap'. Overload 2 of 2, '(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void', gave the following error. Argument of type 'null' is not assignable to parameter of type 'EventListenerOrEventListenerObject'. No overload matches this call. Overload 1 of 2, '(o: {}): string[]', gave the following error. Argument of type 'BuildResultsComponentGraph | undefined' is not assignable to parameter of type '{}'. Type 'undefined' is not assignable to type '{}'. Overload 2 of 2, '(o: object): string[]', gave the following error. Argument of type 'BuildResultsComponentGraph | undefined' is not assignable to parameter of type 'object'. Type 'undefined' is not assignable to type 'object'. No overload matches this call. Overload 1 of 4, '(object: {}, method: never): SpyInstance<never, never>', gave the following error. Argument of type 'CompilerWorkerContext | undefined' is not assignable to parameter of type '{}'. Type 'undefined' is not assignable to type '{}'. Overload 2 of 4, '(object: {}, method: never): SpyInstance<never, never>', gave the following error. Argument of type 'CompilerWorkerContext | undefined' is not assignable to parameter of type '{}'. Type 'undefined' is not assignable to type '{}'. No overload matches this call. The last overload gave the following error. Argument of type 'string | null' is not assignable to parameter of type '(substring: string, ...args: any[]) => string'. Type 'null' is not assignable to type '(substring: string, ...args: any[]) => string'. No overload matches this call. The last overload gave the following error. Argument of type 'string | undefined' is not assignable to parameter of type 'string | RegExp'. Type 'undefined' is not assignable to type 'string | RegExp'. No overload matches this call. Overload 1 of 2, '(configFileName: string, optionsToExtend: CompilerOptions | undefined, system: System, createProgram?: CreateProgram | undefined, reportDiagnostic?: DiagnosticReporter | undefined, reportWatchStatus?: WatchStatusReporter | undefined, watchOptionsToExtend?: WatchOptions | undefined, extraFileExtensions?: readonly FileExtensionInfo[] | undefined): WatchCompilerHostOfConfigFile<...>', gave the following error. Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. Overload 2 of 2, '(rootFiles: string[], options: CompilerOptions, system: System, createProgram?: CreateProgram | undefined, reportDiagnostic?: DiagnosticReporter | undefined, reportWatchStatus?: WatchStatusReporter | undefined, projectReferences?: readonly ProjectReference[] | undefined, watchOptions?: WatchOptions | undefined): WatchCompilerHostOfFilesAndCompilerOptions<...>', gave the following error. Argument of type 'string | undefined' is not assignable to parameter of type 'string[]'. Type 'undefined' is not assignable to type 'string[]'. No overload matches this call. Overload 1 of 2, '(timeoutId: string | number | Timeout | undefined): void', gave the following error. Argument of type 'Timeout | null' is not assignable to parameter of type 'string | number | Timeout | undefined'. Type 'null' is not assignable to type 'string | number | Timeout | undefined'. Overload 2 of 2, '(id: number | undefined): void', gave the following error. Argument of type 'Timeout | null' is not assignable to parameter of type 'number | undefined'. Type 'null' is not assignable to type 'number | undefined'. No overload matches this call. Overload 1 of 2, '(timeoutId: string | number | Timeout | undefined): void', gave the following error. Argument of type 'Timeout | null' is not assignable to parameter of type 'string | number | Timeout | undefined'. Overload 2 of 2, '(id: number | undefined): void', gave the following error. Argument of type 'Timeout | null' is not assignable to parameter of type 'number | undefined'. No overload matches this call. Overload 1 of 3, '(p: string, encoding: "utf8"): Promise', gave the following error. Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. Overload 2 of 3, '(p: string, encoding: "binary"): Promise', gave the following error. Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. No overload matches this call. Overload 1 of 2, '(values: [] | readonly unknown[]): Promise<unknown[] | []>', gave the following error. Argument of type 'Promise[] | undefined' is not assignable to parameter of type '[] | readonly unknown[]'. Type 'undefined' is not assignable to type '[] | readonly unknown[]'. Overload 2 of 2, '(values: Iterable<void | PromiseLike>): Promise<void[]>', gave the following error. Argument of type 'Promise[] | undefined' is not assignable to parameter of type 'Iterable<void | PromiseLike>'. Type 'undefined' is not assignable to type 'Iterable<void | PromiseLike>'. |
TS2790 | 10 | Error messagesThe operand of a 'delete' operator must be optional. |
TS2538 | 8 | Error messagesType 'undefined' cannot be used as an index type.Type 'null' cannot be used as an index type. |
TS2344 | 5 | Error messagesType 'T' does not satisfy the constraint 'Answers'. |
TS2416 | 5 | Error messagesProperty 'get' in type 'Cache' is not assignable to the same property in base type 'Cache'.Type '(key: string) => Promise<string | null>' is not assignable to type '(key: string) => Promise'. Type 'Promise<string | null>' is not assignable to type 'Promise'. Type 'string | null' is not assignable to type 'string'. Type 'null' is not assignable to type 'string'. Property 'getMemoryStats' in type 'Cache' is not assignable to the same property in base type 'Cache'. Type '() => string | null' is not assignable to type '() => string'. Type 'string | null' is not assignable to type 'string'. Type 'null' is not assignable to type 'string'. Property 'find' in type 'E2EElement' is not assignable to the same property in base type 'E2EElementInternal'. Type '(selector: string) => Promise<E2EElement | null>' is not assignable to type '(selector: FindSelector) => Promise'. Type 'Promise<E2EElement | null>' is not assignable to type 'Promise'. Type 'E2EElement | null' is not assignable to type 'E2EElement'. Type 'null' is not assignable to type 'E2EElement'. Property 'findAll' in type 'E2EElement' is not assignable to the same property in base type 'E2EElementInternal'. Type '(selector: string) => Promise<E2EElement[]>' is not assignable to type '(selector: FindSelector) => Promise<E2EElement[]>'. Type 'Promise<import("/home/runner/work/stencil/stencil/src/testing/puppeteer/puppeteer-element").E2EElement[]>' is not assignable to type 'Promise<import("/home/runner/work/stencil/stencil/src/testing/puppeteer/puppeteer-declarations").E2EElement[]>'. Type 'import("/home/runner/work/stencil/stencil/src/testing/puppeteer/puppeteer-element").E2EElement[]' is not assignable to type 'import("/home/runner/work/stencil/stencil/src/testing/puppeteer/puppeteer-declarations").E2EElement[]'. Type 'import("/home/runner/work/stencil/stencil/src/testing/puppeteer/puppeteer-element").E2EElement' is not assignable to type 'import("/home/runner/work/stencil/stencil/src/testing/puppeteer/puppeteer-declarations").E2EElement'. The types returned by 'find(...)' are incompatible between these types. Type 'Promise<E2EElement | null>' is not assignable to type 'Promise'. Property 'getComputedStyle' in type 'E2EElement' is not assignable to the same property in base type 'E2EElementInternal'. Type '(pseudoElt?: string | null | undefined) => Promise' is not assignable to type '(pseudoElt?: string | null | undefined) => Promise'. Type 'Promise' is not assignable to type 'Promise'. Type 'unknown' is not assignable to type 'CSSStyleDeclaration'. |
TS18049 | 3 | Error messages'scriptElm' is possibly 'null' or 'undefined'. |
TS2493 | 3 | Error messagesTuple type '[]' of length '0' has no element at index '0'. |
TS2488 | 2 | Error messagesType 'Diagnostic[] | undefined' must have a 'Symbol.iterator' method that returns an iterator.Type 'string[] | undefined' must have a 'Symbol.iterator' method that returns an iterator. |
TS2774 | 2 | Error messagesThis condition will always return true since this function is always defined. Did you mean to call it instead? |
TS18046 | 2 | Error messages'style' is of type 'unknown'. |
TS2684 | 1 | Error messagesThe 'this' context of type 'ResolveIdHook | undefined' is not assignable to method's 'this' of type 'Function'.Type 'undefined' is not assignable to type 'Function'. |
TS2464 | 1 | Error messagesA computed property name must be of type 'string', 'number', 'symbol', or 'any'. |
TS2430 | 1 | Error messagesInterface 'SerializeOpts' incorrectly extends interface 'SerializeCssOptions'.Types of property 'usedSelectors' are incompatible. Type 'UsedSelectors | null' is not assignable to type 'UsedSelectors | undefined'. Type 'null' is not assignable to type 'UsedSelectors | undefined'. |
Unused exports report
There are 10 unused exports on this PR. That's the same number of errors on main, so at least we're not creating new ones!
Unused exports
File | Line | Identifier |
---|---|---|
src/runtime/bootstrap-lazy.ts | 15 | setNonce |
src/screenshot/screenshot-fs.ts | 18 | readScreenshotData |
src/testing/testing-utils.ts | 186 | withSilentWarn |
src/compiler/app-core/app-data.ts | 3 | BUILD |
src/compiler/app-core/app-data.ts | 92 | Env |
src/compiler/app-core/app-data.ts | 94 | NAMESPACE |
src/compiler/fs-watch/fs-watch-rebuild.ts | 111 | updateCacheFromRebuild |
src/testing/platform/testing-platform.ts | 30 | cssVarShim |
src/testing/puppeteer/puppeteer-declarations.ts | 485 | WaitForEventOptions |
src/client/polyfills/css-shim/utils.ts | 2 | GLOBAL_SCOPE |
a8b0c43
to
42fcb01
Compare
42fcb01
to
7994efe
Compare
@@ -48,7 +48,7 @@ export const outputCustomElements = async ( | |||
return; | |||
} | |||
|
|||
const bundlingEventMessage = 'generate custom elements'; | |||
const bundlingEventMessage = `generate custom elements${config.sourceMap ? ' + source maps' : ''}`; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This matches how we do generate a message for lazy loading. It looks like we missed this in #3005 - I added it here for consistency. LMK if you'd prefer I rip it out into a separate PR. Some ~30 odd characters didn't seem worth it, given I've split like...3 PRs out of this one at this point 😆
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
consistency is good!
// a constructor may not have a body (e.g. in the case of constructor overloads) | ||
const cstrBodyStatements: ts.NodeArray<ts.Statement> = cstrMethod.body?.statements ?? ts.factory.createNodeArray(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function largely assumes that there won't be any overloaded ctor's in a Stencil component. While I don't know if that will always hold true, I don't think it's something we need to worry about this second.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no real concerns on my end, just had one or two questions
*/ | ||
export const addOutputTargetCoreRuntimeApi = ( | ||
moduleFile: d.Module, | ||
outputTarget: string, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should this be typed more stringently? maybe OutputTarget["type"]
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point! Fixed in d3ee635
export const createModule = ( | ||
staticSourceFile: ts.SourceFile, // this is NOT the original | ||
staticSourceFile: ts.SourceFile, // this may NOT the original |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we accidentally a word here
staticSourceFile: ts.SourceFile, // this may NOT the original | |
staticSourceFile: ts.SourceFile, // this may NOT be the original |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in 6667944 👍
@@ -165,6 +165,12 @@ export const createStaticGetter = (propName: string, returnExpression: ts.Expres | |||
); | |||
}; | |||
|
|||
/** | |||
* Retrieves a value represented by TypeScript's syntax tree by name of a static getter. The value is transformed to a TypeScript value. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we possibly call a "TypeScript Value" a "runtime value" here, for less ambiguity?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good call - 5ebde16
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just noticed a few more things
* @param node the current node in the tree being inspected | ||
* @returns the updated component class, or the unchanged node | ||
*/ | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think extra blank line here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I blame my IDE 😆 It's been doing some weird things lately trying to show inline git blame
info, and I just stopped noticing these 🙃
845ae63 removes it
src/declarations/stencil-private.ts
Outdated
* A collection of modules that a component will need for a specific output target. The modules in this list must | ||
* have import statements generated in order for the component to function, but only for a specific output target. | ||
*/ | ||
outputTargetCoreRuntimeApis: Record<string, string[]>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just realized this, we might want to type this Record<OutputTarget['type'], string[]>
here just to prevent any typos in the future
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 I had to make this a Partial<Record<>>
, otherwise our mocks/initialization for Module
expect us to initialize a key/value pair for every output target type 8d845d2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
makes sense!
export type ModuleMap = Map<string, Module>; | ||
|
||
/** | ||
* Stencil's Intermediate Representation (IR) of a module, bundling together | ||
* various pieces of information like the classes declared within it, the path | ||
* to the original source file, HTML tag names defined in the file, and so on. | ||
* | ||
* Note that this gets serialized/parsed as JSON and therefore cannot be a | ||
* Note that this gets serialized/parsed as JSON and therefore cannot contain a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if you're concerned about JSON have I got a PR for you!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😬 😆
8d845d2
to
e8bbaf5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this all looks good!
e8bbaf5
to
1ef61ea
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good overall. One new SNC violation that would be nice to avoid if possible
@tanner-reits fixed in 9c034fe |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚢
----- this commit updates an issue where sourcemap generation in a stencil project would result in an error: ``` [ WARN ] Bundling Warning SOURCEMAP_ERROR Error when using sourcemap for reporting an error: Can't resolve original location of error. ``` in order to trigger this warning, the following conditions needed to be true: 1. `sourceMaps` had to be enabled in `stencil.config.ts` (this is the default value starting with stencil v3.0+) 2. both a lazy build (e.g. `www`) and `dist-custom-elments` had to be specified in a project's `stencil.config.ts#outputTargets` field. the aforementioned output targets are provided by default in the current stencil-component-starter, provided by the create-stencil cli. this error would occur due to how the import statement for `attachShadow` would be added to stencil's intermediate representation of a component. prior to this commit, the intent to later add an import for `attachShadow` during the component generation process would be expressed by adding it to a `Module` instance's `coreRuntimeApis` collection. `Module#coreRuntimeApis` however, is a data structure that is shared during the generation of all output targets. mutations to this data structure could be picked up by other output target generation steps. the reason that changes to `Module#coreRuntimeApis` can be found across the generation of multiple output targets is that stencil: 1. attempts to parallelize output target generation by generating all output targets specified in `stencil.config.ts` at once 2. no copy of `Module` objects are made for each output target generation, to avoid a performance hit in allocating the same object for each output target specified in a a project's config `lazy` output targets have their own mechanism for calling `attachShadow` that doesn't require importing a proxy for it. this all resulted in a race condition where the api for `attachShadow` would be added to `Module#coreRuntimeApis` before a lazy build got to the sourcemap generation step. once the lazy build attempted to generate sourcemaps, it saw the import for `attachShadow`, which it could not reconcile against the original source file, causing the warning message for SOURCMAP_ERROR above. this commit fixes this bug by introducing the concept if 'output target specific imports'. for imports that are not meant to be used across multiple output targets, `coreRuntimeApis` can be added using a stringly typed identifier (the name of the output target being generated). this allows for apis to be added while: - keeping the `addImports` function signature the same - not changing the type of `Module#coreRuntimeApis` - avoiding creating several separate copies of data for each output target - avoiding a 'copy and restore' procedure where `coreRuntimeApis` are copied at the beginning of output target generation, and restored at the end of such generation - the added data structure allows `Module` to continue to be safely serialized using `JSON.stringify` this does however, have a few implications: 1. named import order changes named imports that occur in the same path will now have an ordering where `coreRuntimeApis` occur first in the order they were added, followed by output target specific named imports occur second in the order that they were added. this reordering occurs in a single import statement for generated code, and no issues are foreseen with regard to import side effect orderings or lint errors (i.e. alphabetized named imports) 2. the shape of `Module` is changed it is assumed that a `Module`, a private data structure, can be safely changed. this commit was a part of a larger investigation into the bug. as a result, several funcitons/modules were provided jsdoc that were read/re-read in pursuit of tracking down this bug. they are included in this commit for posterity.
9c034fe
to
77202f6
Compare
…te-script this commit fixes an issue where a stencil project that use both the `dist-custom-elements` and `dist-hydrate-script` output targets would see the following error when building their project (with sourcemaps enabled): ``` [ WARN ] Bundling Warning SOURCEMAP_ERROR Error when using sourcemap for reporting an error: Can't resolve original location of error. ``` this commit resolves this error by ensuring the `HTMLElement` core runtime API used by `dist-custom-elements` no longer interferese with the generated code for `dist-hydrate-script`. this is accomplished by using the output-target-specific runtime api slots introduced in #4200. this prevents the `HTMLElement` import from polluting the sourcemaps/source used in the `dist-hydrate-script` target
…te-script (#4527) this commit fixes an issue where a stencil project that use both the `dist-custom-elements` and `dist-hydrate-script` output targets would see the following error when building their project (with sourcemaps enabled): ``` [ WARN ] Bundling Warning SOURCEMAP_ERROR Error when using sourcemap for reporting an error: Can't resolve original location of error. ``` this commit resolves this error by ensuring the `HTMLElement` core runtime API used by `dist-custom-elements` no longer interferese with the generated code for `dist-hydrate-script`. this is accomplished by using the output-target-specific runtime api slots introduced in #4200. this prevents the `HTMLElement` import from polluting the sourcemaps/source used in the `dist-hydrate-script` target
Pull request checklist
Please check if your PR fulfills the following requirements:
npm run build
) was run locally and any changes were pushednpm test
) were run locally and passednpm run test.karma.prod
) were run locally and passednpm run prettier
) was run locally and passedPull request type
Please check the type of change your PR introduces:
What is the current behavior?
GitHub Issue Number: #3165
What is the new behavior?
this commit updates an issue where sourcemap generation in a stencil
project would result in an error:
in order to trigger this warning, the following conditions needed to be
true:
sourceMaps
had to be enabled instencil.config.ts
(this is thedefault value starting with stencil v3.0+)
www
) anddist-custom-elments
had to bespecified in a project's
stencil.config.ts#outputTargets
field. theaforementioned output targets are provided by default in the current
stencil-component-starter, provided by the create-stencil cli.
this error would occur due to how the import statement for
attachShadow
would be added to stencil's intermediate representationof a component. prior to this commit, the intent to later add an import
for
attachShadow
during the component generation process would beexpressed by adding it to a
Module
instance'scoreRuntimeApis
collection.
Module#coreRuntimeApis
however, is a data structure thatis shared during the generation of all output targets. mutations to this
data structure could be picked up by other output target generation
steps.
the reason that changes to
Module#coreRuntimeApis
can be found acrossthe generation of multiple output targets is that stencil:
output targets specified in
stencil.config.ts
at onceModule
objects are made for each output targetgeneration, to avoid a performance hit in allocating the same object
for each output target specified in a a project's config
lazy
output targets have their own mechanism for callingattachShadow
that doesn't require importing a proxy for it.this all resulted in a race condition where the api for
attachShadow
would be added to
Module#coreRuntimeApis
before a lazy build got tothe sourcemap generation step. once the lazy build attempted to generate
sourcemaps, it saw the import for
attachShadow
, which it could notreconcile against the original source file, causing the warning message
for SOURCMAP_ERROR above.
this commit fixes this bug by introducing the concept if 'output target
specific imports'. for imports that are not meant to be used across
multiple output targets,
coreRuntimeApis
can be added using a stringlytyped identifier (the name of the output target being generated). this
allows for apis to be added while:
addImports
function signature the sameModule#coreRuntimeApis
target
coreRuntimeApis
arecopied at the beginning of output target generation, and restored at
the end of such generation
Module
to continue to be safelyserialized using
JSON.stringify
this does however, have a few implications:
named import order changes
named imports that occur in the same path will now have an ordering
where
coreRuntimeApis
occur first in the order they were added,followed by output target specific named imports occur second in the
order that they were added. this reordering occurs in a single import
statement for generated code, and no issues are foreseen with regard
to import side effect orderings or lint errors (i.e. alphabetized
named imports)
the shape of
Module
is changedit is assumed that a
Module
, a private data structure, can besafely changed.
this commit was a part of a larger investigation into the bug. as a
result, several functions/modules were provided jsdoc that were
read/re-read in pursuit of tracking down this bug. they are included in
this commit for posterity.
Does this introduce a breaking change?
Testing
Unit tests added + continue to pass after updates
I built this branch:
then installed it in the output of
npm init stencil component hello-world
I then started the dev server, and used devtools to verify breakpoints for the lazy build would be hit correctly.
I also used a third party tool (https://sokra.github.io/source-map-visualization/#custom) to validate the
dist-custom-elements
sourcemapsOther information