From c883be9eefc10048167938e59f004015f371280e Mon Sep 17 00:00:00 2001 From: Ryan Waskiewicz Date: Mon, 12 Sep 2022 14:04:00 -0400 Subject: [PATCH 01/19] refactor(test-task): pull code out of try block (#3592) this commit refactors the test-task to make the `try` block found in the primary function smaller and more focused. items that can/should not throw have been removed from the block --- src/cli/task-test.ts | 66 ++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/cli/task-test.ts b/src/cli/task-test.ts index b14d3bbf928..2b20d49eb39 100644 --- a/src/cli/task-test.ts +++ b/src/cli/task-test.ts @@ -11,42 +11,42 @@ export const taskTest = async (config: ValidatedConfig): Promise => { return config.sys.exit(1); } - try { - config.buildDocs = false; - const testingRunOpts: TestingRunOptions = { - e2e: !!config.flags.e2e, - screenshot: !!config.flags.screenshot, - spec: !!config.flags.spec, - updateScreenshot: !!config.flags.updateScreenshot, - }; - - // always ensure we have jest modules installed - const ensureModuleIds = ['@types/jest', 'jest', 'jest-cli']; - - if (testingRunOpts.e2e) { - // if it's an e2e test, also make sure we're got - // puppeteer modules installed and if browserExecutablePath is provided don't download Chromium use only puppeteer-core instead - const puppeteer = config.testing.browserExecutablePath ? 'puppeteer-core' : 'puppeteer'; - - ensureModuleIds.push(puppeteer); - - if (testingRunOpts.screenshot) { - // ensure we've got pixelmatch for screenshots - config.logger.warn( - config.logger.yellow( - `EXPERIMENTAL: screenshot visual diff testing is currently under heavy development and has not reached a stable status. However, any assistance testing would be appreciated.` - ) - ); - } + config.buildDocs = false; + const testingRunOpts: TestingRunOptions = { + e2e: !!config.flags.e2e, + screenshot: !!config.flags.screenshot, + spec: !!config.flags.spec, + updateScreenshot: !!config.flags.updateScreenshot, + }; + + // always ensure we have jest modules installed + const ensureModuleIds = ['@types/jest', 'jest', 'jest-cli']; + + if (testingRunOpts.e2e) { + // if it's an e2e test, also make sure we're got + // puppeteer modules installed and if browserExecutablePath is provided don't download Chromium use only puppeteer-core instead + const puppeteer = config.testing.browserExecutablePath ? 'puppeteer-core' : 'puppeteer'; + + ensureModuleIds.push(puppeteer); + + if (testingRunOpts.screenshot) { + // ensure we've got pixelmatch for screenshots + config.logger.warn( + config.logger.yellow( + `EXPERIMENTAL: screenshot visual diff testing is currently under heavy development and has not reached a stable status. However, any assistance testing would be appreciated.` + ) + ); } + } - // ensure we've got the required modules installed - const diagnostics = await config.sys.lazyRequire.ensure(config.rootDir, ensureModuleIds); - if (diagnostics.length > 0) { - config.logger.printDiagnostics(diagnostics); - return config.sys.exit(1); - } + // ensure we've got the required modules installed + const diagnostics = await config.sys.lazyRequire.ensure(config.rootDir, ensureModuleIds); + if (diagnostics.length > 0) { + config.logger.printDiagnostics(diagnostics); + return config.sys.exit(1); + } + try { // let's test! const { createTesting } = await import('@stencil/core/testing'); const testing = await createTesting(config); From 7f59f14cac13ea0d98b8f8c358b2f849a3958f3e Mon Sep 17 00:00:00 2001 From: Ryan Waskiewicz Date: Mon, 12 Sep 2022 14:17:36 -0400 Subject: [PATCH 02/19] chore(types): remove type-check errors from spec-page (#3587) this commit updates the typings for `spec-page.ts` to remove `strictNullChecks` violations from the aforementioned file. the private type `CompnentTestingConstructor` has some of its fields widened to accepted `null` to reflect the state of the the existing assignments. similarly, optional chaining is added to the conditionals to prevent assignments/accesses that would otherwise be illegal this commit also updates the function signature for `getHostRef` in the testing package, to accept an argument of type undefined. today, it is possible for the function to accept a value that is `undefined`; this change only updates the type system to reflect that fact. --- src/declarations/stencil-private.ts | 6 +++--- src/testing/platform/testing-host-ref.ts | 2 +- src/testing/spec-page.ts | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/declarations/stencil-private.ts b/src/declarations/stencil-private.ts index 723395a50e0..04723bf68b9 100644 --- a/src/declarations/stencil-private.ts +++ b/src/declarations/stencil-private.ts @@ -991,9 +991,9 @@ export interface ComponentTestingConstructor extends ComponentConstructor { componentWillLoad?: Function; componentWillUpdate?: Function; componentWillRender?: Function; - __componentWillLoad?: Function; - __componentWillUpdate?: Function; - __componentWillRender?: Function; + __componentWillLoad?: Function | null; + __componentWillUpdate?: Function | null; + __componentWillRender?: Function | null; }; } diff --git a/src/testing/platform/testing-host-ref.ts b/src/testing/platform/testing-host-ref.ts index a52bb993884..d0db33b644b 100644 --- a/src/testing/platform/testing-host-ref.ts +++ b/src/testing/platform/testing-host-ref.ts @@ -2,7 +2,7 @@ import type * as d from '@stencil/core/internal'; import { addHostEventListeners } from '@runtime'; import { hostRefs } from './testing-constants'; -export const getHostRef = (elm: d.RuntimeRef) => { +export const getHostRef = (elm: d.RuntimeRef | undefined) => { return hostRefs.get(elm); }; diff --git a/src/testing/spec-page.ts b/src/testing/spec-page.ts index aaaa660124e..0db369a6f6c 100644 --- a/src/testing/spec-page.ts +++ b/src/testing/spec-page.ts @@ -226,20 +226,20 @@ export async function newSpecPage(opts: NewSpecPageOptions): Promise { } function proxyComponentLifeCycles(Cstr: ComponentTestingConstructor) { - if (typeof Cstr.prototype.__componentWillLoad === 'function') { + if (typeof Cstr.prototype?.__componentWillLoad === 'function') { Cstr.prototype.componentWillLoad = Cstr.prototype.__componentWillLoad; Cstr.prototype.__componentWillLoad = null; } - if (typeof Cstr.prototype.__componentWillUpdate === 'function') { + if (typeof Cstr.prototype?.__componentWillUpdate === 'function') { Cstr.prototype.componentWillUpdate = Cstr.prototype.__componentWillUpdate; Cstr.prototype.__componentWillUpdate = null; } - if (typeof Cstr.prototype.__componentWillRender === 'function') { + if (typeof Cstr.prototype?.__componentWillRender === 'function') { Cstr.prototype.componentWillRender = Cstr.prototype.__componentWillRender; Cstr.prototype.__componentWillRender = null; } - if (typeof Cstr.prototype.componentWillLoad === 'function') { + if (typeof Cstr.prototype?.componentWillLoad === 'function') { Cstr.prototype.__componentWillLoad = Cstr.prototype.componentWillLoad; Cstr.prototype.componentWillLoad = function () { const result = this.__componentWillLoad(); @@ -252,7 +252,7 @@ function proxyComponentLifeCycles(Cstr: ComponentTestingConstructor) { }; } - if (typeof Cstr.prototype.componentWillUpdate === 'function') { + if (typeof Cstr.prototype?.componentWillUpdate === 'function') { Cstr.prototype.__componentWillUpdate = Cstr.prototype.componentWillUpdate; Cstr.prototype.componentWillUpdate = function () { const result = this.__componentWillUpdate(); @@ -265,7 +265,7 @@ function proxyComponentLifeCycles(Cstr: ComponentTestingConstructor) { }; } - if (typeof Cstr.prototype.componentWillRender === 'function') { + if (typeof Cstr.prototype?.componentWillRender === 'function') { Cstr.prototype.__componentWillRender = Cstr.prototype.componentWillRender; Cstr.prototype.componentWillRender = function () { const result = this.__componentWillRender(); From 134796b364f407de51e8d0d7ec3303d715fbfb15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Sep 2022 14:42:11 -0400 Subject: [PATCH 03/19] chore(deps-dev): bump eslint-plugin-jsdoc from 39.3.1 to 39.3.6 (#3540) * chore(deps-dev): bump eslint-plugin-jsdoc from 39.3.1 to 39.3.6 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 39.3.1 to 39.3.6. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v39.3.1...v39.3.6) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * fix(lint): resolve lint errors as a result of the upgrade Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ryan Waskiewicz --- package-lock.json | 12 ++++++------ src/cli/public.ts | 1 + src/declarations/stencil-public-runtime.ts | 20 ++++++++++++++++---- src/sys/node/public.ts | 2 ++ 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 27f3c44e150..ac402145c95 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4915,9 +4915,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "39.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.1.tgz", - "integrity": "sha512-EVee7DW7mIKjQ+i86O3sV8n1BdXXiBo0gqY7S7TYTMEBzZoo4B/xNg0fl+b9ktIJtj6H0einhO3eMpwY2jyJRg==", + "version": "39.3.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.6.tgz", + "integrity": "sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.31.0", @@ -17262,9 +17262,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "39.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.1.tgz", - "integrity": "sha512-EVee7DW7mIKjQ+i86O3sV8n1BdXXiBo0gqY7S7TYTMEBzZoo4B/xNg0fl+b9ktIJtj6H0einhO3eMpwY2jyJRg==", + "version": "39.3.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.6.tgz", + "integrity": "sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.31.0", diff --git a/src/cli/public.ts b/src/cli/public.ts index 57c7526745d..2746bb47cdd 100644 --- a/src/cli/public.ts +++ b/src/cli/public.ts @@ -4,6 +4,7 @@ import type { ConfigFlags } from './config-flags'; /** * Runs the CLI with the given options. This is used by Stencil's default `bin/stencil` file, * but can be used externally too. + * @param init a set of initialization options needed to run Stencil from its CLI */ export declare function run(init: CliInitOptions): Promise; diff --git a/src/declarations/stencil-public-runtime.ts b/src/declarations/stencil-public-runtime.ts index 7edd4ce87ba..56eab71b68b 100644 --- a/src/declarations/stencil-public-runtime.ts +++ b/src/declarations/stencil-public-runtime.ts @@ -258,7 +258,8 @@ export type ErrorHandler = (err: any, element?: HTMLElement) => void; export declare const setMode: (handler: ResolutionHandler) => void; /** - * getMode + * `getMode()` is used for libraries which provide multiple "modes" for styles. + * @param ref a reference to the node to get styles for */ export declare function getMode(ref: any): T; @@ -273,6 +274,8 @@ export declare function setPlatformHelpers(helpers: { /** * Get the base path to where the assets can be found. Use `setAssetPath(path)` * if the path needs to be customized. + * @param path the path to use in calculating the asset path. this value will be + * used in conjunction with the base asset path */ export declare function getAssetPath(path: string): string; @@ -286,20 +289,24 @@ export declare function getAssetPath(path: string): string; * `setAssetPath(document.currentScript.src)`, or using a bundler's replace plugin to * dynamically set the path at build time, such as `setAssetPath(process.env.ASSET_PATH)`. * But do note that this configuration depends on how your script is bundled, or lack of - * bunding, and where your assets can be loaded from. Additionally custom bundling + * bundling, and where your assets can be loaded from. Additionally custom bundling * will have to ensure the static assets are copied to its build directory. + * @param path the asset path to set */ export declare function setAssetPath(path: string): string; /** - * getElement + * Retrieve a Stencil element for a given reference + * @param ref the ref to get the Stencil element for */ export declare function getElement(ref: any): HTMLStencilElement; /** * Schedules a new render of the given instance or element even if no state changed. * - * Notice `forceUpdate()` is not syncronous and might perform the DOM render in the next frame. + * Notice `forceUpdate()` is not synchronous and might perform the DOM render in the next frame. + * + * @param ref the node/element to force the re-render of */ export declare function forceUpdate(ref: any): void; @@ -317,6 +324,8 @@ export interface HTMLStencilElement extends HTMLElement { * in the best moment to perform DOM mutation without causing layout thrashing. * * For further information: https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing + * + * @param task the DOM-write to schedule */ export declare function writeTask(task: RafCallback): void; @@ -325,6 +334,8 @@ export declare function writeTask(task: RafCallback): void; * in the best moment to perform DOM reads without causing layout thrashing. * * For further information: https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing + * + * @param task the DOM-read to schedule */ export declare function readTask(task: RafCallback): void; @@ -512,6 +523,7 @@ export declare const Host: FunctionalComponent; */ export declare const Fragment: FunctionalComponent<{}>; +// eslint-disable-next-line jsdoc/require-param -- we don't want to JSDoc these overloads at this time /** * The "h" namespace is used to import JSX types for elements and attributes. * It is imported in order to avoid conflicting global JSX issues. diff --git a/src/sys/node/public.ts b/src/sys/node/public.ts index fee66bf018c..a4f7a91b032 100644 --- a/src/sys/node/public.ts +++ b/src/sys/node/public.ts @@ -3,6 +3,7 @@ import type { CompilerSystem, Logger } from '@stencil/core/internal'; /** * Creates a "logger", based off of NodeJS APIs, that will be used by the compiler and dev-server. * The NodeJS "process" object must be provided as a property in the first argument's object. + * @param c an object containing a `Process` for Stencil to use */ export declare function createNodeLogger(c: { process: any }): Logger; @@ -11,6 +12,7 @@ export declare function createNodeLogger(c: { process: any }): Logger; * all file system reads and writes using NodeJS. The compiler itself is unaware of Node's * `fs` module. Other system APIs include any use of `crypto` to hash content. The NodeJS * "process" object must be provided as a property in the first argument's object. + * @param c an object containing a `Process` for Stencil to use */ export declare function createNodeSys(c: { process: any }): CompilerSystem; From 611756be93e4cd7a945fba0068c8502a35a1a90a Mon Sep 17 00:00:00 2001 From: Ryan Waskiewicz Date: Mon, 12 Sep 2022 15:51:42 -0400 Subject: [PATCH 04/19] refactor(decorators): fix `strictNullCheck` violation (#3597) this commit fixes a single `strictNullChecks` violation where the result of an expression could set a local variable to be of type `string | false`, where `false` was not an accepted value on `Set.prototype.has`. this change ought to be backwards compatible, as no `Set` provided to this function includes `false` (or any value that is coerced to `false`). the function signature was updated to include a return type, and the function name was updated to provide a better description of what the function does. the deprecated call to `createNodeArray` has been moved to the `ts.factory` for general code health. during this exercise, it was discovered there was an unused instance of `removeDecorators` in the project's utilities. it has been removed as a part of this commit --- .../convert-decorators.ts | 19 ++++++++++++++----- src/compiler/transformers/transform-utils.ts | 18 ------------------ 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/src/compiler/transformers/decorators-to-static/convert-decorators.ts b/src/compiler/transformers/decorators-to-static/convert-decorators.ts index 798bb69c6cd..2f6b9a5b105 100644 --- a/src/compiler/transformers/decorators-to-static/convert-decorators.ts +++ b/src/compiler/transformers/decorators-to-static/convert-decorators.ts @@ -71,7 +71,7 @@ export const visitClassDeclaration = ( return ts.updateClassDeclaration( classNode, - removeDecorators(classNode, CLASS_DECORATORS_TO_REMOVE), + filterDecorators(classNode, CLASS_DECORATORS_TO_REMOVE), classNode.modifiers, classNode.name, classNode.typeParameters, @@ -83,7 +83,7 @@ export const visitClassDeclaration = ( const removeStencilDecorators = (classMembers: ts.ClassElement[]) => { return classMembers.map((m) => { const currentDecorators = m.decorators; - const newDecorators = removeDecorators(m, MEMBER_DECORATORS_TO_REMOVE); + const newDecorators = filterDecorators(m, MEMBER_DECORATORS_TO_REMOVE); if (currentDecorators !== newDecorators) { if (ts.isMethodDeclaration(m)) { return ts.updateMethod( @@ -108,19 +108,28 @@ const removeStencilDecorators = (classMembers: ts.ClassElement[]) => { }); }; -const removeDecorators = (node: ts.Node, decoratorNames: Set) => { +/** + * Generate a list of decorators from an AST node that are not in a provided list + * + * @param node the AST node whose decorators should be inspected + * @param decoratorNames the decorators that should _not_ be included in the returned list + * @returns a list of decorators on the AST node that are not in the provided list, or `undefined` if: + * - there are no decorators on the node + * - the node contains only decorators in the provided list + */ +const filterDecorators = (node: ts.Node, decoratorNames: Set): ts.NodeArray | undefined => { if (node.decorators) { const updatedDecoratorList = node.decorators.filter((dec) => { const name = ts.isCallExpression(dec.expression) && ts.isIdentifier(dec.expression.expression) && dec.expression.expression.text; - return !decoratorNames.has(name); + return typeof name === 'boolean' || !decoratorNames.has(name); }); if (updatedDecoratorList.length === 0) { return undefined; } else if (updatedDecoratorList.length !== node.decorators.length) { - return ts.createNodeArray(updatedDecoratorList); + return ts.factory.createNodeArray(updatedDecoratorList); } } return node.decorators; diff --git a/src/compiler/transformers/transform-utils.ts b/src/compiler/transformers/transform-utils.ts index e9d5e2f52c5..0ab374f2a0a 100644 --- a/src/compiler/transformers/transform-utils.ts +++ b/src/compiler/transformers/transform-utils.ts @@ -137,24 +137,6 @@ export const createStaticGetter = (propName: string, returnExpression: ts.Expres ); }; -export const removeDecorators = (node: ts.Node, decoratorNames: Set) => { - if (node.decorators) { - const updatedDecoratorList = node.decorators.filter((dec) => { - const name = - ts.isCallExpression(dec.expression) && - ts.isIdentifier(dec.expression.expression) && - dec.expression.expression.text; - return !decoratorNames.has(name); - }); - if (updatedDecoratorList.length === 0) { - return undefined; - } else if (updatedDecoratorList.length !== node.decorators.length) { - return ts.createNodeArray(updatedDecoratorList); - } - } - return node.decorators; -}; - export const getStaticValue = (staticMembers: ts.ClassElement[], staticName: string): any => { const staticMember: ts.GetAccessorDeclaration = staticMembers.find( (member) => (member.name as any).escapedText === staticName From f194cc6e2458ee7146984bfe870508a2e251b8a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Sep 2022 16:12:40 -0400 Subject: [PATCH 05/19] chore(deps-dev): bump magic-string from 0.25.7 to 0.26.3 (#3600) Bumps [magic-string](https://github.com/rich-harris/magic-string) from 0.25.7 to 0.26.3. - [Release notes](https://github.com/rich-harris/magic-string/releases) - [Changelog](https://github.com/Rich-Harris/magic-string/blob/master/CHANGELOG.md) - [Commits](https://github.com/rich-harris/magic-string/compare/v0.25.7...v0.26.3) --- updated-dependencies: - dependency-name: magic-string dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ryan Waskiewicz --- package-lock.json | 57 +++++++++++++++++++++++++++++++++++++++-------- package.json | 2 +- 2 files changed, 49 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index ac402145c95..6802b8ab6fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,7 +65,7 @@ "jest-cli": "^27.4.5", "jest-environment-node": "^27.4.4", "listr": "^0.14.3", - "magic-string": "^0.25.7", + "magic-string": "^0.26.3", "merge-source-map": "^1.1.0", "mime-db": "^1.46.0", "minimatch": "3.0.4", @@ -1163,6 +1163,15 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, + "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/@rollup/plugin-json": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", @@ -1295,6 +1304,15 @@ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", "dev": true }, + "node_modules/@rollup/plugin-replace/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/@rollup/pluginutils": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", @@ -8805,12 +8823,15 @@ } }, "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.3.tgz", + "integrity": "sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==", "dev": true, "dependencies": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" } }, "node_modules/make-dir": { @@ -14111,6 +14132,15 @@ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } } } }, @@ -14219,6 +14249,15 @@ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", "dev": true + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } } } }, @@ -20177,12 +20216,12 @@ } }, "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.3.tgz", + "integrity": "sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" } }, "make-dir": { diff --git a/package.json b/package.json index d597e9f8bec..4a4f1fccaa4 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,7 @@ "jest-cli": "^27.4.5", "jest-environment-node": "^27.4.4", "listr": "^0.14.3", - "magic-string": "^0.25.7", + "magic-string": "^0.26.3", "merge-source-map": "^1.1.0", "mime-db": "^1.46.0", "minimatch": "3.0.4", From 546d3aa66778195da25685c983dc448ecdb2673f Mon Sep 17 00:00:00 2001 From: Ryan Waskiewicz Date: Mon, 12 Sep 2022 16:27:15 -0400 Subject: [PATCH 06/19] refactor(private): move BuildResultsComponentGraph to type import (#3599) update the import statement for `BuildResultsComponentGraph` to the `import type ...` statement. this shouldn't have an effect on much, as its an interface to begin with --- src/declarations/stencil-private.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarations/stencil-private.ts b/src/declarations/stencil-private.ts index 04723bf68b9..a8bd897e72d 100644 --- a/src/declarations/stencil-private.ts +++ b/src/declarations/stencil-private.ts @@ -1,7 +1,7 @@ -import { BuildResultsComponentGraph } from '.'; import type { BuildEvents, BuildLog, + BuildResultsComponentGraph, CompilerBuildResults, CompilerBuildStart, CompilerFsStats, From 083169cb242e966ecd1e38cb92525db2b3e009c7 Mon Sep 17 00:00:00 2001 From: Ryan Waskiewicz Date: Mon, 12 Sep 2022 16:40:15 -0400 Subject: [PATCH 07/19] chore(repo): format additional files in repo (#3598) this commit updates our prettier configuration to format all yaml files in the `.github` directory at the root of the the repo. both `.yml` and `.yaml` were added. although the latter isn't used today, it is added as a bit of 'future proofing'. with the updated config, prettier was run on the repo. the only change that is worth noting is that none of the double to single quote changes _shouldn't_ be of issue, as the contents of the strings themselves don't have an double quotes in them (e.g. `""something""`) this commit updates the prettier configuration for the project to format all top level .js files. this commit then formats those files. --- .eslintrc.js | 73 +++++++++++++----------- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/dependabot.yml | 16 +++--- .github/ionic-issue-bot.yml | 22 +++---- .github/workflows/main.yml | 8 +-- .github/workflows/tech-debt-burndown.yml | 8 +-- .github/workflows/test-analysis.yml | 4 +- .github/workflows/test-browserstack.yml | 2 +- .github/workflows/test-e2e.yml | 4 +- .github/workflows/test-unit.yml | 4 +- jest.config.js | 2 +- package.json | 2 +- rollup.config.js | 2 +- 13 files changed, 78 insertions(+), 71 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index b44e2e8b9a9..26c8e9d8a6a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -10,62 +10,69 @@ module.exports = { 'prettier', ], rules: { - '@typescript-eslint/no-unused-vars': ['error', { - "argsIgnorePattern": "^_", - // TODO(STENCIL-452): Investigate using eslint-plugin-react to remove the need for varsIgnorePattern - "varsIgnorePattern": "^(h|Fragment)$" - }], + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + // TODO(STENCIL-452): Investigate using eslint-plugin-react to remove the need for varsIgnorePattern + varsIgnorePattern: '^(h|Fragment)$', + }, + ], /** - * Configuration for Jest rules can be found here: + * Configuration for Jest rules can be found here: * https://github.com/jest-community/eslint-plugin-jest/tree/main/docs/rules */ - "jest/expect-expect": [ - "error", + 'jest/expect-expect': [ + 'error', { // we set this to `expect*` so that any function whose name starts with expect will be counted // as an assertion function, allowing us to use functions to DRY up test suites. - "assertFunctionNames": ["expect*"], - } + assertFunctionNames: ['expect*'], + }, ], // we...have a number of things disabled :) // TODO(STENCIL-488): Turn this rule back on once there are no violations of it remaining - "jest/no-disabled-tests": ["off"], + 'jest/no-disabled-tests': ['off'], // we use this in enough places that we don't want to do per-line disables - "jest/no-conditional-expect": ["off"], + 'jest/no-conditional-expect': ['off'], // this enforces that Jest hooks (e.g. `beforeEach`) are declared in test files in their execution order // see here for details: https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/prefer-hooks-in-order.md - "jest/prefer-hooks-in-order": ["warn"], + 'jest/prefer-hooks-in-order': ['warn'], // this enforces that Jest hooks (e.g. `beforeEach`) are declared at the top of `describe` blocks - "jest/prefer-hooks-on-top": ["warn"], + 'jest/prefer-hooks-on-top': ['warn'], /** * Configuration for the JSDoc plugin rules can be found at: * https://github.com/gajus/eslint-plugin-jsdoc */ // validates that the name immediately following `@param` matches the parameter name in the function signature // this works in conjunction with "jsdoc/require-param" - "jsdoc/check-param-names": [ - "error", { - // if `checkStructured` is `true`, it asks that the JSDoc describe the fields being destructured. - // turn this off to not leak function internals/discourage describing them - checkDestructured: false, - }], + 'jsdoc/check-param-names': [ + 'error', + { + // if `checkStructured` is `true`, it asks that the JSDoc describe the fields being destructured. + // turn this off to not leak function internals/discourage describing them + checkDestructured: false, + }, + ], // require that jsdoc attached to a method/function require one `@param` per parameter - "jsdoc/require-param": [ - "error", { + 'jsdoc/require-param': [ + 'error', + { // if `checkStructured` is `true`, it asks that the JSDoc describe the fields being destructured. // turn this off to not leak function internals/discourage describing them checkDestructured: false, // always check setters as they should require a parameter (by definition) - checkSetters: true - }], + checkSetters: true, + }, + ], // rely on TypeScript types to be the source of truth, minimize verbosity in comments - "jsdoc/require-param-type": ["off"], - "jsdoc/require-param-description": ["error"], - "jsdoc/require-returns-check": ["error"], - "jsdoc/require-returns-description": ["error"], + 'jsdoc/require-param-type': ['off'], + 'jsdoc/require-param-description': ['error'], + 'jsdoc/require-returns-check': ['error'], + 'jsdoc/require-returns-description': ['error'], // rely on TypeScript types to be the source of truth, minimize verbosity in comments - "jsdoc/require-returns-type": ["off"], - "jsdoc/require-returns": ["error"], + 'jsdoc/require-returns-type': ['off'], + 'jsdoc/require-returns': ['error'], 'prefer-const': 'error', 'no-var': 'error', 'prefer-rest-params': 'error', @@ -73,7 +80,7 @@ module.exports = { }, // inform ESLint about the global variables defined in a Jest context // see https://github.com/jest-community/eslint-plugin-jest/#usage - "env": { - "jest/globals": true - } + env: { + 'jest/globals': true, + }, }; diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index a4650ca45ec..0c094382bbb 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -43,7 +43,7 @@ body: description: Please reproduce this issue in a blank Stencil starter application and provide a link to the repo. Run `npm init stencil` to quickly spin up a Stencil project. This is the best way to ensure this issue is triaged quickly. Issues without a code reproduction may be closed if the Stencil Team cannot reproduce the issue you are reporting. placeholder: https://github.com/... validations: - required: true + required: true - type: textarea attributes: label: Additional Information diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 08dcdbca650..84f16c602a1 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -3,16 +3,16 @@ version: 2 updates: - - package-ecosystem: "npm" # See documentation for possible values - directory: "/" # Location of package manifests + - package-ecosystem: 'npm' # See documentation for possible values + directory: '/' # Location of package manifests schedule: - interval: "daily" + interval: 'daily' open-pull-requests-limit: 5 # Disable rebasing for pull requests, as having several open pull requests all get simultaneously rebased gets # noisy from a notification standpoint - rebase-strategy: "disabled" + rebase-strategy: 'disabled' ignore: - - dependency-name: "@types/node" - versions: ["17", "18"] - - dependency-name: "typescript" - versions: ["4.8"] + - dependency-name: '@types/node' + versions: ['17', '18'] + - dependency-name: 'typescript' + versions: ['4.8'] diff --git a/.github/ionic-issue-bot.yml b/.github/ionic-issue-bot.yml index b3b7bb4240c..1ace6173a7a 100644 --- a/.github/ionic-issue-bot.yml +++ b/.github/ionic-issue-bot.yml @@ -4,7 +4,7 @@ triage: closeAndLock: labels: - - label: "ionitron: support" + - label: 'ionitron: support' message: > Thanks for the issue! This issue appears to be a support request. We use this issue tracker exclusively for bug reports and feature requests. Please use our [slack channel](https://stencil-worldwide.herokuapp.com/) @@ -12,7 +12,7 @@ closeAndLock: Thank you for using Stencil! - - label: "ionitron: missing template" + - label: 'ionitron: missing template' message: > Thanks for the issue! It appears that you have not filled out the provided issue template. We use this issue template in order to gather more information and further assist you. Please create a new issue and ensure the @@ -26,7 +26,7 @@ closeAndLock: comment: labels: - - label: "ionitron: needs reproduction" + - label: 'ionitron: needs reproduction' message: > Thanks for the issue! This issue has been labeled as `needs reproduction`. This label is added to issues that need a code reproduction. @@ -56,7 +56,7 @@ noReply: noReproduction: days: 14 maxIssuesPerRun: 100 - label: "ionitron: needs reproduction" + label: 'ionitron: needs reproduction' responseLabel: triage exemptProjects: true exemptMilestones: true @@ -74,18 +74,18 @@ stale: days: 30 maxIssuesPerRun: 100 exemptLabels: - - "Bug: Validated" - - "Feature: Want this? Upvote it!" + - 'Bug: Validated' + - 'Feature: Want this? Upvote it!' - good first issue - help wanted - Request For Comments - - "Resolution: Needs Investigation" - - "Resolution: Refine" + - 'Resolution: Needs Investigation' + - 'Resolution: Refine' - triage exemptAssigned: true exemptProjects: true exemptMilestones: true - label: "ionitron: stale issue" + label: 'ionitron: stale issue' message: > Thanks for the issue! This issue is being closed due to inactivity. If this is still an issue with the latest version of Stencil, please create a new issue and ensure the @@ -99,7 +99,7 @@ stale: wrongRepo: repos: - - label: "ionitron: cli" + - label: 'ionitron: cli' repo: ionic-cli message: > Thanks for the issue! We use this issue tracker exclusively for bug reports and feature requests @@ -108,7 +108,7 @@ wrongRepo: Thank you for using Stencil! - - label: "ionitron: ionic" + - label: 'ionitron: ionic' repo: ionic message: > Thanks for the issue! We use this issue tracker exclusively for bug reports and feature requests diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 94525b86e24..0a501d8af3a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,20 +24,20 @@ jobs: analysis_tests: name: Analysis Tests - needs: [ build_core ] + needs: [build_core] uses: ./.github/workflows/test-analysis.yml bundler_tests: name: Bundler Tests - needs: [ build_core ] + needs: [build_core] uses: ./.github/workflows/test-bundlers.yml e2e_tests: name: E2E Tests - needs: [ build_core ] + needs: [build_core] uses: ./.github/workflows/test-e2e.yml unit_tests: name: Unit Tests - needs: [ build_core ] + needs: [build_core] uses: ./.github/workflows/test-unit.yml diff --git a/.github/workflows/tech-debt-burndown.yml b/.github/workflows/tech-debt-burndown.yml index d9150e817e8..f22d222af08 100644 --- a/.github/workflows/tech-debt-burndown.yml +++ b/.github/workflows/tech-debt-burndown.yml @@ -15,7 +15,7 @@ jobs: strict_null_check: # TODO(STENCIL-446): Remove this workflow once `strictNullChecks` is enabled strategy: matrix: - branch: [ 'main', 'pr' ] + branch: ['main', 'pr'] name: 'Get strictNullChecks errors on ${{ matrix.branch }}' runs-on: 'ubuntu-latest' steps: @@ -53,7 +53,7 @@ jobs: unused_exports_check: strategy: matrix: - branch: [ 'main', 'pr' ] + branch: ['main', 'pr'] name: Find unused variables on ${{ matrix.branch }} runs-on: 'ubuntu-latest' steps: @@ -85,7 +85,7 @@ jobs: path: 'unused-exports-${{ matrix.branch }}.txt' format_report: - needs: [ "strict_null_check", "unused_exports_check" ] + needs: ['strict_null_check', 'unused_exports_check'] name: Download error files and report runs-on: 'ubuntu-latest' steps: @@ -130,7 +130,7 @@ jobs: - name: Set action output run: node scripts/build/tech-debt-burndown-report.js > $GITHUB_STEP_SUMMARY - # for syntax information, see https://github.com/peter-evans/create-or-update-comment#setting-the-comment-body-from-a-file + # for syntax information, see https://github.com/peter-evans/create-or-update-comment#setting-the-comment-body-from-a-file - name: Set comment body id: set-comment-body run: | diff --git a/.github/workflows/test-analysis.yml b/.github/workflows/test-analysis.yml index fc491755cdb..e58f2ff9781 100644 --- a/.github/workflows/test-analysis.yml +++ b/.github/workflows/test-analysis.yml @@ -11,8 +11,8 @@ jobs: strategy: fail-fast: false matrix: - node: [ '12', '14', '16' ] - os: [ 'ubuntu-latest', 'windows-latest' ] + node: ['12', '14', '16'] + os: ['ubuntu-latest', 'windows-latest'] runs-on: ${{ matrix.os }} steps: - name: Checkout Code diff --git a/.github/workflows/test-browserstack.yml b/.github/workflows/test-browserstack.yml index e88bcdc6da9..14c85f0af6c 100644 --- a/.github/workflows/test-browserstack.yml +++ b/.github/workflows/test-browserstack.yml @@ -40,7 +40,7 @@ jobs: run_browserstack: name: Run Browserstack runs-on: ubuntu-latest - needs: [ build_core ] + needs: [build_core] # The concurrency field allows us to block multiple invocations of this job across multiple workflow runs. # Stencil is only able to run 5 parallel tests in Browserstack, which is exceeded when more than one run of this diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 7d4f5a5714c..d9e5861e786 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -11,8 +11,8 @@ jobs: strategy: fail-fast: false matrix: - node: [ '12', '14', '16' ] - os: [ 'ubuntu-latest', 'windows-latest' ] + node: ['12', '14', '16'] + os: ['ubuntu-latest', 'windows-latest'] runs-on: ${{ matrix.os }} steps: - name: Checkout Code diff --git a/.github/workflows/test-unit.yml b/.github/workflows/test-unit.yml index eb94fbb2495..fec90d8e2be 100644 --- a/.github/workflows/test-unit.yml +++ b/.github/workflows/test-unit.yml @@ -11,8 +11,8 @@ jobs: strategy: fail-fast: false matrix: - node: [ '12', '14', '16' ] - os: [ 'ubuntu-latest', 'windows-latest' ] + node: ['12', '14', '16'] + os: ['ubuntu-latest', 'windows-latest'] runs-on: ${{ matrix.os }} steps: - name: Checkout Code diff --git a/jest.config.js b/jest.config.js index d09c39fe6cc..6a8a97e7aa6 100644 --- a/jest.config.js +++ b/jest.config.js @@ -58,5 +58,5 @@ module.exports = { testRegex: '/(src|scripts)/.*\\.spec\\.(ts|tsx|js)$', // TODO(STENCIL-307): Move away from Jasmine runner for internal Stencil tests, which involves re-working environment // setup - testRunner: 'jest-jasmine2' + testRunner: 'jest-jasmine2', }; diff --git a/package.json b/package.json index 4a4f1fccaa4..64136612afe 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "license": "node scripts --license", "lint": "eslint \"src/*.ts\" \"src/**/*.ts\" \"src/**/*.tsx\"", "prettier": "npm run prettier.base -- --write", - "prettier.base": "prettier \"./({bin,scripts,src,test}/**/*.{ts,tsx,js,jsx})|bin/stencil\"", + "prettier.base": "prettier \"./({bin,scripts,src,test}/**/*.{ts,tsx,js,jsx})|bin/stencil|.github/(**/)?*.(yml|yaml)|*.js\"", "prettier.dry-run": "npm run prettier.base -- --list-different", "release": "node scripts --release --publish", "release.prepare": "node scripts --release --prepare", diff --git a/rollup.config.js b/rollup.config.js index 9a3d58d014b..db6708815fa 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,7 +1,7 @@ const { createBuild } = require('./scripts/build/build.js'); const { getOptions } = require('./scripts/build/utils/options.js'); -module.exports = function(args) { +module.exports = function (args) { const opts = getOptions(__dirname, { isProd: !!args['config-prod'], isCI: !!args['config-ci'], From e64e4da4e4cf1401cc557605ad3c98b4c1663f9f Mon Sep 17 00:00:00 2001 From: Ryan Waskiewicz Date: Mon, 12 Sep 2022 16:59:59 -0400 Subject: [PATCH 08/19] chore(event): resolve strictNullCheck errors in event-decorator (#3590) this commit updates the function signatures in `event-decorator.ts` to resolve a few `strictNullChecks` violations in the file. it also adds JSDoc to the file --- .../decorators-to-static/event-decorator.ts | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/src/compiler/transformers/decorators-to-static/event-decorator.ts b/src/compiler/transformers/decorators-to-static/event-decorator.ts index 3a51cf717c5..9a9c46693f3 100644 --- a/src/compiler/transformers/decorators-to-static/event-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/event-decorator.ts @@ -27,12 +27,22 @@ export const eventDecoratorsToStatic = ( } }; +/** + * Parse a single instance of Stencil's `@Event()` decorator and generate metadata for the class member that is + * decorated + * @param diagnostics a list of diagnostics used as a part of the parsing process. Any parse errors/warnings shall be + * added to this collection + * @param typeChecker an instance of the TypeScript type checker, used to generate information about the `@Event()` and + * its surrounding context in the AST + * @param prop the property on the Stencil component class that is decorated with `@Event()` + * @returns generated metadata for the class member decorated by `@Event()`, or `null` if none could be derived + */ const parseEventDecorator = ( diagnostics: d.Diagnostic[], typeChecker: ts.TypeChecker, prop: ts.PropertyDeclaration -): d.ComponentCompilerStaticEvent => { - const eventDecorator = prop.decorators.find(isDecoratorNamed('Event')); +): d.ComponentCompilerStaticEvent | null => { + const eventDecorator = prop.decorators?.find(isDecoratorNamed('Event')); if (eventDecorator == null) { return null; @@ -70,6 +80,12 @@ export const getEventName = (eventOptions: d.EventOptions, memberName: string) = return memberName; }; +/** + * Derive Stencil's class member type metadata from a node in the AST + * @param typeChecker the TypeScript type checker + * @param node the node in the AST to generate metadata for + * @returns the generated metadata + */ const getComplexType = ( typeChecker: ts.TypeChecker, node: ts.PropertyDeclaration @@ -83,6 +99,11 @@ const getComplexType = ( }; }; +/** + * Derive the type of the event from the typings of `EventEmitter` + * @param type the AST node containing the `EventEmitter` typing + * @returns the type taken from `EventEmitter`, or `null` if the type cannot be derived + */ const getEventType = (type: ts.TypeNode): ts.TypeNode | null => { if ( ts.isTypeReferenceNode(type) && @@ -96,7 +117,18 @@ const getEventType = (type: ts.TypeNode): ts.TypeNode | null => { return null; }; -const validateEventName = (diagnostics: d.Diagnostic[], node: ts.Node, eventName: string) => { +/** + * Helper function for validating the name of the event + * + * This function assumes that the name of the event has been determined prior to calling it + * + * @param diagnostics a list of diagnostics used as a part of the validation process. Any parse errors/warnings shall be + * added to this collection + * @param node the node in the AT containing the class member decorated with `@Event()` + * @param eventName the name of the event + */ +const validateEventName = (diagnostics: d.Diagnostic[], node: ts.Node, eventName: string): void => { + // this regex checks for a string that begins with a capital letter - e.g. 'AskJeeves', 'Zoo', 'Spotify' if (/^[A-Z]/.test(eventName)) { const diagnostic = buildWarn(diagnostics); diagnostic.messageText = [ @@ -108,6 +140,7 @@ const validateEventName = (diagnostics: d.Diagnostic[], node: ts.Node, eventName return; } + // this regex checks for a string that begins 'on', followed by a capital letter - e.g. 'onAbout', 'onZing', 'onBlur' if (/^on[A-Z]/.test(eventName)) { const warn = buildWarn(diagnostics); const suggestedEventName = eventName[2].toLowerCase() + eventName.slice(3); From 94b6330de6a8d369ec9c4c31e8663c3ad47948b3 Mon Sep 17 00:00:00 2001 From: Ryan Waskiewicz Date: Mon, 12 Sep 2022 17:23:27 -0400 Subject: [PATCH 09/19] chore(types): fix logs.ts strictNullChecks errors (#3589) this commit resolves the `strictNullChecks` errors in `logs.ts` by: 1. updating `loadedCompilerConfig`'s logging in the event that `SystemDetails` can't be determined 2. replacing `Config` with `ValidatedConfig` where applicable/possible this commit also adds JSDoc to the file --- src/cli/logs.ts | 62 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 9 deletions(-) diff --git a/src/cli/logs.ts b/src/cli/logs.ts index 0e0d1e6a427..be7b2292588 100644 --- a/src/cli/logs.ts +++ b/src/cli/logs.ts @@ -1,8 +1,18 @@ -import type { Config, Logger, CompilerSystem, TaskCommand } from '../declarations'; +import type { Logger, CompilerSystem, TaskCommand, ValidatedConfig } from '../declarations'; import type { ConfigFlags } from './config-flags'; import type { CoreCompiler } from './load-compiler'; -export const startupLog = (logger: Logger, task: TaskCommand) => { +/** + * Log the name of this package (`@stencil/core`) to an output stream + * + * The output stream is determined by the {@link Logger} instance that is provided as an argument to this function + * + * The name of the package may not be logged, by design, for certain `task` types and logging levels + * + * @param logger the logging entity to use to output the name of the package + * @param task the current task + */ +export const startupLog = (logger: Logger, task: TaskCommand): void => { if (task === 'info' || task === 'serve' || task === 'version') { return; } @@ -10,7 +20,18 @@ export const startupLog = (logger: Logger, task: TaskCommand) => { logger.info(logger.cyan(`@stencil/core`)); }; -export const startupLogVersion = (logger: Logger, task: TaskCommand, coreCompiler: CoreCompiler) => { +/** + * Log this package's version to an output stream + * + * The output stream is determined by the {@link Logger} instance that is provided as an argument to this function + * + * The package version may not be logged, by design, for certain `task` types and logging levels + * + * @param logger the logging entity to use for output + * @param task the current task + * @param coreCompiler the compiler instance to derive version information from + */ +export const startupLogVersion = (logger: Logger, task: TaskCommand, coreCompiler: CoreCompiler): void => { if (task === 'info' || task === 'serve' || task === 'version') { return; } @@ -28,18 +49,33 @@ export const startupLogVersion = (logger: Logger, task: TaskCommand, coreCompile logger.info(startupMsg); }; +/** + * Log details from a {@link CompilerSystem} used by Stencil to an output stream + * + * The output stream is determined by the {@link Logger} instance that is provided as an argument to this function + * + * @param sys the `CompilerSystem` to report details on + * @param logger the logging entity to use for output + * @param flags user set flags for the current invocation of Stencil + * @param coreCompiler the compiler instance being used for this invocation of Stencil + */ export const loadedCompilerLog = ( sys: CompilerSystem, logger: Logger, flags: ConfigFlags, coreCompiler: CoreCompiler -) => { +): void => { const sysDetails = sys.details; const runtimeInfo = `${sys.name} ${sys.version}`; - const platformInfo = `${sysDetails.platform}, ${sysDetails.cpuModel}`; - const statsInfo = `cpus: ${sys.hardwareConcurrency}, freemem: ${Math.round( - sysDetails.freemem() / 1000000 - )}MB, totalmem: ${Math.round(sysDetails.totalmem / 1000000)}MB`; + + const platformInfo = sysDetails + ? `${sysDetails.platform}, ${sysDetails.cpuModel}` + : `Unknown Platform, Unknown CPU Model`; + const statsInfo = sysDetails + ? `cpus: ${sys.hardwareConcurrency}, freemem: ${Math.round( + sysDetails.freemem() / 1000000 + )}MB, totalmem: ${Math.round(sysDetails.totalmem / 1000000)}MB` + : 'Unknown CPU Core Count, Unknown Memory'; if (logger.getLevel() === 'debug') { logger.debug(runtimeInfo); @@ -54,7 +90,15 @@ export const loadedCompilerLog = ( } }; -export const startupCompilerLog = (coreCompiler: CoreCompiler, config: Config) => { +/** + * Log various warnings to an output stream + * + * The output stream is determined by the {@link Logger} instance attached to the `config` argument to this function + * + * @param coreCompiler the compiler instance being used for this invocation of Stencil + * @param config a validated configuration object to be used for this run of Stencil + */ +export const startupCompilerLog = (coreCompiler: CoreCompiler, config: ValidatedConfig) => { if (config.suppressLogs === true) { return; } From 3013f5e9b03bf48db5c70472e7b4a3f89c444bfc Mon Sep 17 00:00:00 2001 From: Tim W <39673874+tmwrnr@users.noreply.github.com> Date: Tue, 13 Sep 2022 13:52:41 +0200 Subject: [PATCH 10/19] fix(cli): typo in telemetry command (#3602) this commit fixes a small typo in the telemetry command, where we describe how to toggle the feature --- src/cli/task-telemetry.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cli/task-telemetry.ts b/src/cli/task-telemetry.ts index 51e3588859e..08671a43a44 100644 --- a/src/cli/task-telemetry.ts +++ b/src/cli/task-telemetry.ts @@ -13,7 +13,7 @@ export const taskTelemetry = async (flags: ConfigFlags, sys: d.CompilerSystem, l const prompt = logger.dim(sys.details.platform === 'windows' ? '>' : '$'); const isEnabling = flags.args.includes('on'); const isDisabling = flags.args.includes('off'); - const INFORMATION = `Opt in or our of telemetry. Information about the data we collect is available on our website: ${logger.bold( + const INFORMATION = `Opt in or out of telemetry. Information about the data we collect is available on our website: ${logger.bold( 'https://stenciljs.com/telemetry' )}`; const THANK_YOU = `Thank you for helping to make Stencil better! 💖`; From 6395e51d9a1ea8d0bd1bc139fa0242f1f8d673e9 Mon Sep 17 00:00:00 2001 From: Alice Date: Tue, 13 Sep 2022 08:42:35 -0400 Subject: [PATCH 11/19] test(runtime): add regression tests for `updateChildren` algorithm (#3572) This adds tests which ensure that children are being correctly reconciled between re-renders and, in particular, that the handling of `ref` attrs set on those children (or _their_ children) are handled correctly. This is in part adding a regression test for the fix for the issue described in #3253. --- src/runtime/test/render-vdom.spec.tsx | 95 +++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/src/runtime/test/render-vdom.spec.tsx b/src/runtime/test/render-vdom.spec.tsx index c31262d0aea..00e939e5a27 100644 --- a/src/runtime/test/render-vdom.spec.tsx +++ b/src/runtime/test/render-vdom.spec.tsx @@ -1097,5 +1097,100 @@ describe('render-vdom', () => { await waitForChanges(); expect(rootInstance.counter).toEqual(2); }); + + it('should not call ref cb w/ null when children are reordered', async () => { + // this test is a regression test ensuring that the algorithm for matching + // up children across rerenders works correctly when a basic transposition is + // done (the elements at the ends of the children swap places). + @Component({ tag: 'cmp-a' }) + class CmpA { + divRef: HTMLElement; + @Prop() state = true; + + renderA() { + return ( +
(this.divRef = el)}> + A +
+ ); + } + + renderB() { + return
B
; + } + + render() { + return this.state + ? [this.renderB(),
middle
, this.renderA()] + : [this.renderA(),
middle
, this.renderB()]; + } + } + + const { root, rootInstance, waitForChanges } = await newSpecPage({ + components: [CmpA], + html: ``, + }); + // ref should be set correctly after the first render + expect(rootInstance.divRef).toEqual(root.querySelector('.a')); + root.state = false; + await waitForChanges(); + // We've changed the state and forced a re-render. This tests one of the + // ways in which children can be re-ordered that the `updateChildren` algo + // can handle without having `key` attrs set. + expect(rootInstance.divRef).toEqual(root.querySelector('.a')); + }); + + it('should not call ref cb w/ null when children w/ keys are reordered', async () => { + // this test is a regression test ensuring that the algorithm for matching + // up children across rerenders works correctly in a situation in which it + // needs to use the `key` attribute to disambiguate them. At present, if the + // `key` attribute is _not_ present in this case then this test will fail + // because without the `key` Stencil's child-identity heuristic falls over. + @Component({ tag: 'cmp-a' }) + class CmpA { + divRef: HTMLElement; + @Prop() state = true; + + renderA() { + return ( +
(this.divRef = el)}> + A +
+ ); + } + + renderB() { + return
B
; + } + + render() { + return this.state ? [this.renderB(), this.renderA()] : [this.renderA()]; + } + } + + const { root, rootInstance, waitForChanges } = await newSpecPage({ + components: [CmpA], + html: ``, + }); + + // ref should be set correctly after the first render + expect(rootInstance.divRef).toEqual(root.querySelector('.a')); + root.state = false; + await waitForChanges(); + // We've changed the state and forced a re-render where the algorithm for + // reconciling children will have to use the `key` attribute to find the + // equivalent VNode on the re-render. So if that is all working correctly + // then the value of our `divRef` property should be set correctly after + // the rerender. + // + // The reordering that is conditionally done in the `render` method of the + // test component above is specifically the type of edge case that the + // parts of the `updateChildren` algorithm which _don't_ use the `key` attr + // have trouble with. + // + // This is essentially a regression test for the issue described in + // https://github.com/ionic-team/stencil/issues/3253 + expect(rootInstance.divRef).toEqual(root.querySelector('.a')); + }); }); }); From 80ef14361613706d38ad6799a03d3e5f1e1e6cbe Mon Sep 17 00:00:00 2001 From: Tanner Reits <47483144+tanner-reits@users.noreply.github.com> Date: Tue, 13 Sep 2022 11:17:55 -0400 Subject: [PATCH 12/19] chore(lint): add auto-sort for imports/exports (#3583) this commit adds the 'simple-import-sort' eslint plugin package to the repository, and sorts imports according to its default heuristic. this is being done to promote consistency within the repo, as we gradually build out our list of lint rules. it also updates the order of ci steps, since this plugin can create prettier/format errors when it reorders imports. --- .eslintrc.js | 4 ++- .github/workflows/lint-and-format.yml | 6 ++-- package-lock.json | 17 +++++++++ package.json | 1 + src/cli/check-version.ts | 3 +- src/cli/find-config.ts | 3 +- src/cli/index.ts | 2 +- src/cli/ionic-config.ts | 2 +- src/cli/logs.ts | 2 +- src/cli/parse-flags.ts | 5 +-- src/cli/public.ts | 1 + src/cli/run.ts | 15 ++++---- src/cli/task-build.ts | 4 +-- src/cli/task-docs.ts | 2 +- src/cli/task-generate.ts | 5 +-- src/cli/task-prerender.ts | 3 +- src/cli/task-serve.ts | 3 +- src/cli/task-test.ts | 2 +- src/cli/task-watch.ts | 2 +- src/cli/telemetry/telemetry.ts | 6 ++-- src/cli/telemetry/test/helpers.spec.ts | 2 +- src/cli/telemetry/test/telemetry.spec.ts | 13 +++---- src/cli/test/ionic-config.spec.ts | 5 +-- src/cli/test/parse-flags.spec.ts | 5 +-- src/cli/test/run.spec.ts | 7 ++-- src/cli/test/task-generate.spec.ts | 10 +++--- src/client/client-build.ts | 3 +- src/client/client-host-ref.ts | 5 +-- src/client/client-load-module.ts | 5 +-- src/client/client-log.ts | 3 +- src/client/client-patch-browser.ts | 5 +-- src/client/client-task-queue.ts | 5 +-- src/client/client-window.ts | 3 +- src/client/index.ts | 6 ++-- src/client/polyfills/css-shim/custom-style.ts | 6 ++-- src/client/polyfills/css-shim/selectors.ts | 4 +-- src/client/polyfills/css-shim/template.ts | 2 +- .../polyfills/css-shim/test/css-shim.spec.ts | 3 +- .../polyfills/css-shim/test/utils.spec.ts | 4 +-- src/compiler/app-core/app-es5-disabled.ts | 3 +- src/compiler/app-core/app-polyfills.ts | 3 +- src/compiler/app-core/bundle-app-core.ts | 3 +- src/compiler/build/build-ctx.ts | 3 +- src/compiler/build/build-finish.ts | 7 ++-- src/compiler/build/build-hmr.ts | 9 ++--- src/compiler/build/build-results.ts | 5 +-- src/compiler/build/build-stats.ts | 1 + src/compiler/build/build.ts | 11 +++--- src/compiler/build/compiler-ctx.ts | 5 +-- src/compiler/build/full-build.ts | 5 +-- src/compiler/build/test/build-stats.spec.ts | 3 +- src/compiler/build/validate-files.ts | 2 +- src/compiler/build/watch-build.ts | 13 +++---- src/compiler/build/write-build.ts | 3 +- src/compiler/bundle/app-data-plugin.ts | 9 ++--- src/compiler/bundle/bundle-interface.ts | 5 +-- src/compiler/bundle/bundle-output.ts | 13 +++---- src/compiler/bundle/core-resolve-plugin.ts | 11 +++--- src/compiler/bundle/dev-module.ts | 9 ++--- src/compiler/bundle/ext-format-plugin.ts | 5 +-- src/compiler/bundle/ext-transforms-plugin.ts | 9 ++--- src/compiler/bundle/file-load-plugin.ts | 1 + src/compiler/bundle/plugin-helper.ts | 3 +- src/compiler/bundle/server-plugin.ts | 5 +-- .../bundle/test/core-resolve-plugin.spec.ts | 2 +- .../bundle/test/ext-transforms-plugin.spec.ts | 5 +-- src/compiler/bundle/typescript-plugin.ts | 11 +++--- src/compiler/bundle/user-index-plugin.ts | 5 +-- src/compiler/bundle/worker-plugin.ts | 7 ++-- src/compiler/cache.ts | 3 +- src/compiler/compiler.ts | 13 +++---- src/compiler/config/config-utils.ts | 5 +-- src/compiler/config/load-config.ts | 11 +++--- src/compiler/config/outputs/index.ts | 7 ++-- .../config/outputs/validate-angular.ts | 5 +-- .../config/outputs/validate-collection.ts | 2 +- .../outputs/validate-custom-element-bundle.ts | 3 +- .../config/outputs/validate-custom-element.ts | 9 ++--- .../config/outputs/validate-custom-output.ts | 3 +- src/compiler/config/outputs/validate-dist.ts | 7 ++-- src/compiler/config/outputs/validate-docs.ts | 5 +-- .../config/outputs/validate-hydrate-script.ts | 5 +-- src/compiler/config/outputs/validate-lazy.ts | 5 +-- src/compiler/config/outputs/validate-stats.ts | 5 +-- src/compiler/config/outputs/validate-www.ts | 9 ++--- src/compiler/config/test/load-config.spec.ts | 9 ++--- .../test/validate-config-sourcemap.spec.ts | 7 ++-- .../config/test/validate-config.spec.ts | 5 +-- .../config/test/validate-custom.spec.ts | 3 +- .../config/test/validate-dev-server.spec.ts | 7 ++-- .../config/test/validate-docs.spec.ts | 1 + .../config/test/validate-namespace.spec.ts | 1 + .../validate-output-dist-collection.spec.ts | 5 +-- ...alidate-output-dist-custom-element.spec.ts | 3 +- .../config/test/validate-output-dist.spec.ts | 3 +- .../config/test/validate-output-www.spec.ts | 7 ++-- .../config/test/validate-paths.spec.ts | 5 +-- .../test/validate-rollup-config.spec.ts | 1 + .../test/validate-service-worker.spec.ts | 1 + .../config/test/validate-stats.spec.ts | 1 + .../config/test/validate-testing.spec.ts | 5 +-- .../config/test/validate-workers.spec.ts | 3 +- src/compiler/config/transpile-options.ts | 19 +++++----- src/compiler/config/validate-config.ts | 11 +++--- src/compiler/config/validate-copy.ts | 3 +- src/compiler/config/validate-dev-server.ts | 3 +- src/compiler/config/validate-hydrated.ts | 3 +- src/compiler/config/validate-namespace.ts | 3 +- src/compiler/config/validate-paths.ts | 3 +- src/compiler/config/validate-plugins.ts | 3 +- src/compiler/config/validate-prerender.ts | 3 +- src/compiler/config/validate-rollup-config.ts | 3 +- .../config/validate-service-worker.ts | 5 +-- src/compiler/config/validate-testing.ts | 7 ++-- src/compiler/docs/generate-doc-data.ts | 9 ++--- src/compiler/docs/json/index.ts | 3 +- src/compiler/docs/readme/index.ts | 2 +- .../docs/readme/markdown-dependencies.ts | 3 +- src/compiler/docs/readme/markdown-usage.ts | 3 +- src/compiler/docs/readme/output-docs.ts | 15 ++++---- src/compiler/docs/test/style-docs.spec.ts | 1 + src/compiler/docs/vscode/index.ts | 5 +-- src/compiler/entries/component-bundles.ts | 3 +- src/compiler/entries/default-bundles.ts | 3 +- .../entries/resolve-component-dependencies.ts | 3 +- src/compiler/fs-watch/fs-watch-rebuild.ts | 7 ++-- src/compiler/html/add-script-attr.ts | 3 +- src/compiler/html/html-utils.ts | 3 +- src/compiler/html/inject-module-preloads.ts | 3 +- src/compiler/html/inject-sw-script.ts | 2 +- src/compiler/html/inline-esm-import.ts | 9 ++--- src/compiler/html/inline-style-sheets.ts | 3 +- src/compiler/html/remove-unused-styles.ts | 5 +-- .../html/test/remove-unused-styles.spec.ts | 1 + .../html/update-global-styles-link.ts | 3 +- src/compiler/html/validate-manifest-json.ts | 3 +- src/compiler/index.ts | 21 +++++------ src/compiler/optimize/autoprefixer.ts | 3 +- src/compiler/optimize/minify-css.ts | 3 +- src/compiler/optimize/minify-js.ts | 5 +-- src/compiler/optimize/optimize-css.ts | 3 +- src/compiler/optimize/optimize-js.ts | 5 +-- src/compiler/optimize/optimize-module.ts | 9 ++--- .../output-targets/copy/assets-copy-tasks.ts | 5 +-- .../output-targets/copy/hashed-copy.ts | 3 +- .../output-targets/copy/local-copy-tasks.ts | 3 +- .../output-targets/copy/output-copy.ts | 9 ++--- .../output-targets/dist-collection/index.ts | 11 +++--- .../custom-elements-bundle-types.ts | 5 +-- .../dist-custom-elements-bundle/index.ts | 15 ++++---- .../custom-elements-types.ts | 5 +-- .../dist-custom-elements/index.ts | 21 +++++------ .../bundle-hydrate-factory.ts | 7 ++-- .../generate-hydrate-app.ts | 19 +++++----- .../dist-hydrate-script/index.ts | 2 +- .../update-to-hydrate-components.ts | 3 +- .../write-hydrate-outputs.ts | 5 +-- .../output-targets/dist-lazy/generate-cjs.ts | 9 ++--- .../dist-lazy/generate-esm-browser.ts | 5 +-- .../output-targets/dist-lazy/generate-esm.ts | 11 +++--- .../dist-lazy/generate-lazy-module.ts | 11 +++--- .../dist-lazy/generate-system.ts | 11 +++--- .../dist-lazy/lazy-component-plugin.ts | 3 +- .../output-targets/dist-lazy/lazy-output.ts | 19 +++++----- .../dist-lazy/write-lazy-entry-module.ts | 5 +-- src/compiler/output-targets/empty-dir.ts | 9 ++--- src/compiler/output-targets/index.ts | 11 +++--- src/compiler/output-targets/output-angular.ts | 3 +- src/compiler/output-targets/output-custom.ts | 3 +- src/compiler/output-targets/output-docs.ts | 4 +-- .../output-targets/output-lazy-loader.ts | 5 +-- src/compiler/output-targets/output-utils.ts | 5 +-- src/compiler/output-targets/output-www.ts | 23 ++++++------ .../test/build-conditionals.spec.ts | 7 ++-- .../test/custom-elements-types.spec.ts | 7 ++-- .../test/output-targets-collection.spec.ts | 7 ++-- ...utput-targets-dist-custom-elements.spec.ts | 9 ++--- .../test/output-targets-dist.spec.ts | 3 +- .../test/output-targets-www-dist.spec.ts | 5 +-- .../test/output-targets-www.spec.ts | 3 +- src/compiler/plugin/plugin.ts | 7 ++-- src/compiler/plugin/test/plugin.spec.ts | 3 +- src/compiler/prerender/crawl-urls.ts | 3 +- src/compiler/prerender/prerender-config.ts | 3 +- .../prerender/prerender-hydrate-options.ts | 3 +- src/compiler/prerender/prerender-main.ts | 17 ++++----- src/compiler/prerender/prerender-optimize.ts | 9 ++--- src/compiler/prerender/prerender-queue.ts | 5 +-- .../prerender/prerender-template-html.ts | 5 +-- src/compiler/prerender/prerender-worker.ts | 13 +++---- .../prerender/prerendered-write-path.ts | 3 +- src/compiler/prerender/robots-txt.ts | 5 +-- src/compiler/prerender/sitemap-xml.ts | 3 +- .../test/prerendered-write-path.spec.ts | 7 ++-- src/compiler/public.ts | 14 ++++---- src/compiler/service-worker/generate-sw.ts | 5 +-- .../service-worker/service-worker-util.ts | 3 +- .../test/service-worker-util.spec.ts | 5 +-- .../test/service-worker.spec.ts | 2 +- src/compiler/style/css-imports.ts | 7 ++-- src/compiler/style/css-parser/parse-css.ts | 2 +- src/compiler/style/css-to-esm.ts | 11 +++--- src/compiler/style/global-styles.ts | 7 ++-- src/compiler/style/normalize-styles.ts | 3 +- src/compiler/style/optimize-css.ts | 3 +- src/compiler/style/test/css-imports.spec.ts | 9 ++--- src/compiler/style/test/optimize-css.spec.ts | 5 +-- src/compiler/style/test/style-rebuild.spec.ts | 3 +- src/compiler/sys/config.ts | 4 +-- src/compiler/sys/fetch/fetch-module-async.ts | 2 +- src/compiler/sys/fetch/fetch-module-sync.ts | 5 +-- src/compiler/sys/fetch/fetch-utils.ts | 3 +- .../sys/fetch/tests/fetch-module.spec.ts | 2 +- src/compiler/sys/fetch/write-fetch-success.ts | 5 +-- src/compiler/sys/fs-patch.ts | 3 +- src/compiler/sys/in-memory-fs.ts | 2 +- src/compiler/sys/logger/terminal-logger.ts | 9 ++--- .../sys/logger/test/terminal-logger.spec.ts | 7 ++-- src/compiler/sys/modules/compiler-deps.ts | 2 +- src/compiler/sys/modules/fs.ts | 5 +-- src/compiler/sys/modules/index.ts | 4 +-- src/compiler/sys/modules/path.ts | 5 +-- src/compiler/sys/node-require.ts | 5 +-- .../sys/resolve/resolve-module-async.ts | 13 +++---- .../sys/resolve/resolve-module-sync.ts | 11 +++--- src/compiler/sys/resolve/resolve-utils.ts | 3 +- .../sys/resolve/tests/resolve-module.spec.ts | 2 +- src/compiler/sys/stencil-sys.ts | 17 ++++----- src/compiler/sys/tests/in-memory-fs.spec.ts | 4 +-- .../tests/typescript-resolve-module.spec.ts | 5 +-- .../typescript/tests/typescript-sys.spec.ts | 2 +- .../sys/typescript/typescript-config.ts | 3 +- .../typescript/typescript-resolve-module.ts | 19 +++++----- src/compiler/sys/typescript/typescript-sys.ts | 11 +++--- src/compiler/sys/worker/sys-worker.ts | 5 +-- src/compiler/sys/worker/web-worker-main.ts | 3 +- src/compiler/sys/worker/web-worker-thread.ts | 1 + .../transformers/add-component-meta-proxy.ts | 7 ++-- .../transformers/add-component-meta-static.ts | 3 +- src/compiler/transformers/add-imports.ts | 5 +-- src/compiler/transformers/add-static-style.ts | 9 ++--- .../collections/add-external-import.ts | 7 ++-- .../parse-collection-components.ts | 5 +-- .../collections/parse-collection-manifest.ts | 5 +-- .../collections/parse-collection-module.ts | 5 +-- .../component-build-conditionals.ts | 3 +- .../component-hydrate/hydrate-component.ts | 11 +++--- .../hydrate-runtime-cmp-meta.ts | 5 +-- .../tranform-to-hydrate-component.ts | 5 +-- .../component-lazy/lazy-component.ts | 9 ++--- .../component-lazy/lazy-constructor.ts | 5 +-- .../component-lazy/lazy-element-getter.ts | 5 +-- .../transform-lazy-component.ts | 5 +-- .../add-define-custom-element-function.ts | 5 +-- .../component-native/native-component.ts | 17 ++++----- .../native-connected-callback.ts | 3 +- .../component-native/native-constructor.ts | 5 +-- .../component-native/native-element-getter.ts | 3 +- .../component-native/native-meta.ts | 3 +- .../component-native/native-static-style.ts | 9 ++--- .../proxy-custom-element-function.ts | 1 + .../tranform-to-native-component.ts | 9 ++--- src/compiler/transformers/create-event.ts | 5 +-- .../component-decorator.ts | 7 ++-- .../convert-decorators.ts | 7 ++-- .../decorators-to-static/decorator-utils.ts | 3 +- .../decorators-to-static/element-decorator.ts | 5 +-- .../decorators-to-static/event-decorator.ts | 5 +-- .../decorators-to-static/listen-decorator.ts | 5 +-- .../decorators-to-static/method-decorator.ts | 7 ++-- .../decorators-to-static/prop-decorator.ts | 9 ++--- .../decorators-to-static/state-decorator.ts | 3 +- .../decorators-to-static/style-to-static.ts | 7 ++-- .../decorators-to-static/watch-decorator.ts | 5 +-- .../transformers/define-custom-element.ts | 7 ++-- .../transformers/host-data-transform.ts | 5 +-- src/compiler/transformers/legacy-props.ts | 5 +-- .../map-imports-to-path-aliases.ts | 1 + .../transformers/remove-collection-imports.ts | 3 +- .../transformers/reserved-public-members.ts | 3 +- .../static-to-meta/call-expression.ts | 5 +-- .../static-to-meta/class-methods.ts | 3 +- .../transformers/static-to-meta/component.ts | 21 +++++------ .../static-to-meta/element-ref.ts | 3 +- .../static-to-meta/encapsulation.ts | 3 +- .../transformers/static-to-meta/events.ts | 3 +- .../transformers/static-to-meta/import.ts | 7 ++-- .../transformers/static-to-meta/listeners.ts | 3 +- .../transformers/static-to-meta/methods.ts | 3 +- .../static-to-meta/parse-static.ts | 9 ++--- .../transformers/static-to-meta/props.ts | 3 +- .../transformers/static-to-meta/states.ts | 3 +- .../static-to-meta/string-literal.ts | 3 +- .../transformers/static-to-meta/styles.ts | 7 ++-- .../transformers/static-to-meta/vdom.ts | 3 +- .../transformers/static-to-meta/visitor.ts | 7 ++-- .../transformers/static-to-meta/watchers.ts | 3 +- .../transformers/stencil-import-path.ts | 5 +-- src/compiler/transformers/style-imports.ts | 3 +- .../test/add-component-meta-proxy.spec.ts | 9 ++--- .../transformers/test/lazy-component.spec.ts | 5 +-- .../test/map-imports-to-path-aliases.spec.ts | 7 ++-- .../test/native-constructor.spec.ts | 5 +-- .../proxy-custom-element-function.spec.ts | 11 +++--- src/compiler/transformers/test/transpile.ts | 5 +-- src/compiler/transformers/transform-utils.ts | 5 +-- .../transformers/update-component-class.ts | 3 +- .../update-stencil-core-import.ts | 1 + .../transformers/watcher-meta-transform.ts | 3 +- src/compiler/transpile.ts | 11 +++--- .../transpile/create-build-program.ts | 3 +- .../transpile/create-watch-program.ts | 3 +- src/compiler/transpile/run-program.ts | 13 +++---- src/compiler/transpile/transpile-module.ts | 11 +++--- src/compiler/transpile/transpiled-module.ts | 3 +- src/compiler/transpile/ts-config.ts | 3 +- src/compiler/transpile/validate-components.ts | 3 +- src/compiler/types/generate-app-types.ts | 11 +++--- .../types/generate-component-types.ts | 3 +- .../types/generate-event-detail-types.ts | 3 +- src/compiler/types/generate-event-types.ts | 3 +- src/compiler/types/generate-method-types.ts | 3 +- src/compiler/types/generate-prop-types.ts | 3 +- src/compiler/types/generate-types.ts | 11 +++--- src/compiler/types/stencil-types.ts | 5 +-- .../tests/generate-event-detail-types.spec.ts | 2 +- .../types/tests/generate-event-types.spec.ts | 6 ++-- .../types/tests/generate-method-types.spec.ts | 2 +- .../types/tests/generate-prop-types.spec.ts | 2 +- .../types/tests/stencil-types.spec.ts | 3 +- .../types/tests/validate-package-json.spec.ts | 5 +-- src/compiler/types/update-import-refs.ts | 3 +- .../types/validate-build-package-json.ts | 5 +-- src/declarations/stencil-private.ts | 5 ++- src/declarations/stencil-public-compiler.ts | 4 +-- src/dev-server/client/hmr-components.ts | 2 +- src/dev-server/client/hmr-external-styles.ts | 2 +- src/dev-server/client/hmr-images.ts | 10 +++--- src/dev-server/client/hmr-inline-styles.ts | 2 +- src/dev-server/client/index.ts | 4 +-- src/dev-server/client/test/hmr-util.spec.ts | 2 +- .../dev-server-client/app-update.ts | 2 +- src/dev-server/dev-server-client/index.ts | 2 +- .../dev-server-client/init-dev-client.ts | 2 +- src/dev-server/dev-server-utils.ts | 4 +-- src/dev-server/index.ts | 11 +++--- src/dev-server/open-in-editor.ts | 3 +- src/dev-server/request-handler.ts | 7 ++-- src/dev-server/serve-dev-client.ts | 7 ++-- src/dev-server/serve-dev-node-module.ts | 3 +- src/dev-server/serve-directory-index.ts | 5 +-- src/dev-server/serve-file.ts | 11 +++--- src/dev-server/server-context.ts | 5 +-- src/dev-server/server-http.ts | 5 +-- src/dev-server/server-process.ts | 13 +++---- src/dev-server/server-web-socket.ts | 5 +-- src/dev-server/server-worker-main.ts | 3 +- src/dev-server/ssr-request.ts | 9 ++--- src/dev-server/test/req-handler.spec.ts | 13 +++---- src/dev-server/test/util.spec.ts | 3 +- src/hydrate/platform/h-async.ts | 3 +- src/hydrate/platform/hydrate-app.ts | 7 ++-- src/hydrate/platform/index.ts | 27 +++++++------- src/hydrate/platform/proxy-host-element.ts | 3 +- src/hydrate/runner/create-window.ts | 2 +- .../runner/patch-dom-implementation.ts | 3 +- src/hydrate/runner/render.ts | 17 ++++----- src/hydrate/runner/runtime-log.ts | 2 +- src/hydrate/runner/window-initialize.ts | 3 +- src/internal/stencil-core/index.d.ts | 18 +++++----- src/mock-doc/comment-node.ts | 2 +- src/mock-doc/custom-element-registry.ts | 2 +- src/mock-doc/document-fragment.ts | 2 +- src/mock-doc/document-type-node.ts | 2 +- src/mock-doc/document.ts | 8 ++--- src/mock-doc/element.ts | 2 +- src/mock-doc/event.ts | 2 +- src/mock-doc/global.ts | 2 +- src/mock-doc/index.ts | 14 ++++---- src/mock-doc/node.ts | 16 ++++----- src/mock-doc/parse-util.ts | 9 ++--- src/mock-doc/selector.ts | 3 +- src/mock-doc/serialize-node.ts | 4 +-- src/mock-doc/test/attribute.spec.ts | 2 +- src/mock-doc/test/class-list.spec.ts | 2 +- src/mock-doc/test/clone.spec.ts | 2 +- src/mock-doc/test/element.spec.ts | 4 +-- src/mock-doc/test/event.spec.ts | 4 +-- src/mock-doc/test/html-parse.spec.ts | 4 +-- src/mock-doc/window.ts | 20 +++++------ src/runtime/bootstrap-custom-element.ts | 9 ++--- src/runtime/bootstrap-lazy.ts | 15 ++++---- src/runtime/client-hydrate.ts | 7 ++-- src/runtime/connect.ts | 3 +- src/runtime/connected-callback.ts | 13 +++---- src/runtime/context.ts | 1 + src/runtime/disconnected-callback.ts | 3 +- src/runtime/dom-extras.ts | 5 +-- src/runtime/element.ts | 3 +- src/runtime/event-emitter.ts | 3 +- src/runtime/hmr-component.ts | 3 +- src/runtime/host-listener.ts | 5 +-- src/runtime/index.ts | 22 ++++++------ src/runtime/initialize-component.ts | 11 +++--- src/runtime/mode.ts | 3 +- src/runtime/parse-property-value.ts | 2 +- src/runtime/profile.ts | 3 +- src/runtime/proxy-component.ts | 5 +-- src/runtime/set-value.ts | 3 +- src/runtime/styles.ts | 7 ++-- src/runtime/test/assets.spec.tsx | 5 +-- src/runtime/test/attr.spec.tsx | 2 +- src/runtime/test/before-each.spec.tsx | 1 + .../test/client-hydrate-to-vdom.spec.tsx | 5 +-- src/runtime/test/fetch.spec.tsx | 4 +-- src/runtime/test/fixtures/cmp-a.tsx | 3 +- src/runtime/test/fixtures/cmp-asset.tsx | 2 +- src/runtime/test/globals.spec.tsx | 2 +- src/runtime/test/host.spec.tsx | 2 +- .../test/hydrate-no-encapsulation.spec.tsx | 2 +- src/runtime/test/hydrate-prop-types.spec.tsx | 2 +- src/runtime/test/hydrate-scoped.spec.tsx | 2 +- .../test/hydrate-shadow-child.spec.tsx | 2 +- .../test/hydrate-shadow-in-shadow.spec.tsx | 2 +- .../test/hydrate-shadow-parent.spec.tsx | 2 +- src/runtime/test/jsx.spec.tsx | 3 +- src/runtime/test/lifecycle-sync.spec.tsx | 2 +- src/runtime/test/parse-property-value.spec.ts | 2 +- src/runtime/test/prop-warnings.spec.tsx | 2 +- src/runtime/test/prop.spec.tsx | 2 +- src/runtime/test/queue.spec.tsx | 2 +- src/runtime/test/render-vdom.spec.tsx | 3 +- src/runtime/test/scoped.spec.tsx | 2 +- src/runtime/test/shadow.spec.tsx | 2 +- src/runtime/test/style.spec.tsx | 2 +- src/runtime/test/svg-element.spec.tsx | 1 + src/runtime/test/vdom-relocation.spec.tsx | 2 +- src/runtime/test/watch.spec.tsx | 1 + src/runtime/update-component.ts | 11 +++--- src/runtime/vdom/h.ts | 3 +- src/runtime/vdom/set-accessor.ts | 3 +- src/runtime/vdom/test/attributes.spec.ts | 3 +- src/runtime/vdom/test/patch-svg.spec.ts | 3 +- src/runtime/vdom/test/patch.spec.ts | 5 +-- src/runtime/vdom/test/scoped-slot.spec.tsx | 2 +- src/runtime/vdom/test/update-element.spec.ts | 4 +-- src/runtime/vdom/update-element.ts | 3 +- src/runtime/vdom/vdom-annotations.ts | 3 +- src/runtime/vdom/vdom-render.ts | 7 ++-- src/screenshot/connector-base.ts | 5 +-- src/screenshot/connector-local.ts | 5 +-- src/screenshot/index.ts | 2 +- src/screenshot/screenshot-compare.ts | 5 +-- src/sys/node/index.ts | 2 +- src/sys/node/node-copy-tasks.ts | 7 ++-- src/sys/node/node-lazy-require.ts | 9 ++--- src/sys/node/node-logger.ts | 5 +-- src/sys/node/node-resolve-module.ts | 5 +-- src/sys/node/node-setup-process.ts | 3 +- src/sys/node/node-stencil-version-checker.ts | 5 +-- src/sys/node/node-sys.ts | 23 ++++++------ src/sys/node/node-worker-controller.ts | 7 ++-- src/sys/node/node-worker-main.ts | 5 +-- src/sys/node/test/node-lazy-require.spec.ts | 5 +-- src/sys/node/worker.ts | 2 ++ src/testing/index.ts | 35 +++++++++---------- src/testing/jest/jest-config.ts | 2 +- src/testing/jest/jest-environment.ts | 1 + src/testing/jest/jest-preprocessor.ts | 5 +-- src/testing/jest/jest-runner.ts | 7 ++-- src/testing/jest/jest-screenshot.ts | 3 +- src/testing/jest/jest-setup-test-framework.ts | 17 ++++----- src/testing/jest/test/jest-config.spec.ts | 5 +-- src/testing/jest/test/jest-runner.spec.ts | 1 + src/testing/jest/test/jest-serializer.spec.ts | 3 +- src/testing/matchers/index.ts | 8 ++--- src/testing/mock-fetch.ts | 2 +- src/testing/mocks.ts | 17 ++++----- src/testing/platform/index.ts | 14 ++++---- src/testing/platform/testing-constants.ts | 1 + src/testing/platform/testing-host-ref.ts | 3 +- src/testing/platform/testing-platform.ts | 1 + src/testing/platform/testing-task-queue.ts | 1 + src/testing/puppeteer/puppeteer-element.ts | 7 ++-- src/testing/puppeteer/puppeteer-events.ts | 3 +- src/testing/puppeteer/puppeteer-page.ts | 4 +-- src/testing/puppeteer/puppeteer-screenshot.ts | 3 +- src/testing/spec-page.ts | 23 ++++++------ src/testing/test/testing-utils.spec.ts | 5 +-- src/testing/testing-logger.ts | 2 +- src/testing/testing-sys.ts | 3 +- src/testing/testing-utils.ts | 3 +- src/testing/testing.ts | 11 +++--- src/utils/index.ts | 4 +-- src/utils/logger/logger-rollup.ts | 5 +-- src/utils/logger/logger-typescript.ts | 3 +- src/utils/sourcemaps.ts | 3 +- src/utils/test/normalize-path.spec.ts | 2 +- src/utils/test/scope-css.spec.ts | 2 +- src/utils/test/sourcemaps.spec.ts | 5 +-- src/utils/test/util.spec.ts | 5 +-- src/utils/util.ts | 2 +- 502 files changed, 1577 insertions(+), 1172 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 26c8e9d8a6a..7a3fb734776 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,7 +1,7 @@ module.exports = { root: true, parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'jsdoc', 'jest'], + plugins: ['@typescript-eslint', 'jsdoc', 'jest', 'simple-import-sort'], extends: [ 'plugin:jest/recommended', // including prettier here ensures that we don't set any rules which will conflict @@ -77,6 +77,8 @@ module.exports = { 'no-var': 'error', 'prefer-rest-params': 'error', 'prefer-spread': 'error', + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', }, // inform ESLint about the global variables defined in a Jest context // see https://github.com/jest-community/eslint-plugin-jest/#usage diff --git a/.github/workflows/lint-and-format.yml b/.github/workflows/lint-and-format.yml index 51a80e477a6..ff26bbe3815 100644 --- a/.github/workflows/lint-and-format.yml +++ b/.github/workflows/lint-and-format.yml @@ -16,9 +16,9 @@ jobs: - name: Get Core Dependencies uses: ./.github/workflows/actions/get-core-dependencies + - name: ESLint + run: npm run lint + - name: Prettier Check run: npm run prettier.dry-run shell: bash - - - name: ESLint - run: npm run lint diff --git a/package-lock.json b/package-lock.json index 6802b8ab6fc..97774d8ccf1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,6 +53,7 @@ "eslint-config-prettier": "^8.5.0", "eslint-plugin-jest": "^26.5.3", "eslint-plugin-jsdoc": "^39.3.1", + "eslint-plugin-simple-import-sort": "^8.0.0", "execa": "4.1.0", "exit": "^0.1.2", "fast-deep-equal": "3.1.3", @@ -4997,6 +4998,15 @@ "node": ">=10" } }, + "node_modules/eslint-plugin-simple-import-sort": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-8.0.0.tgz", + "integrity": "sha512-bXgJQ+lqhtQBCuWY/FUWdB27j4+lqcvXv5rUARkzbeWLwea+S5eBZEQrhnO+WgX3ZoJHVj0cn943iyXwByHHQw==", + "dev": true, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, "node_modules/eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", @@ -17341,6 +17351,13 @@ } } }, + "eslint-plugin-simple-import-sort": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-8.0.0.tgz", + "integrity": "sha512-bXgJQ+lqhtQBCuWY/FUWdB27j4+lqcvXv5rUARkzbeWLwea+S5eBZEQrhnO+WgX3ZoJHVj0cn943iyXwByHHQw==", + "dev": true, + "requires": {} + }, "eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", diff --git a/package.json b/package.json index 64136612afe..9665a86ae0a 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "eslint-config-prettier": "^8.5.0", "eslint-plugin-jest": "^26.5.3", "eslint-plugin-jsdoc": "^39.3.1", + "eslint-plugin-simple-import-sort": "^8.0.0", "execa": "4.1.0", "exit": "^0.1.2", "fast-deep-equal": "3.1.3", diff --git a/src/cli/check-version.ts b/src/cli/check-version.ts index 702e3cd5ead..058262c44ea 100644 --- a/src/cli/check-version.ts +++ b/src/cli/check-version.ts @@ -1,6 +1,7 @@ -import type { ValidatedConfig } from '../declarations'; import { isFunction } from '@utils'; +import type { ValidatedConfig } from '../declarations'; + export const startCheckVersion = async (config: ValidatedConfig, currentVersion: string) => { if (config.devMode && !config.flags.ci && !currentVersion.includes('-dev.') && isFunction(config.sys.checkVersion)) { return config.sys.checkVersion(config.logger, currentVersion); diff --git a/src/cli/find-config.ts b/src/cli/find-config.ts index 43108458f8f..3497e0ba7fd 100644 --- a/src/cli/find-config.ts +++ b/src/cli/find-config.ts @@ -1,5 +1,6 @@ +import { buildError, isString, normalizePath } from '@utils'; + import type { CompilerSystem, Diagnostic } from '../declarations'; -import { isString, normalizePath, buildError } from '@utils'; /** * An object containing the {@link CompilerSystem} used to find the configuration file, as well as the location on disk diff --git a/src/cli/index.ts b/src/cli/index.ts index 5c37659ec5e..5404fd15d55 100644 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -1,3 +1,3 @@ +export { ConfigFlags } from './config-flags'; export { parseFlags } from './parse-flags'; export { run, runTask } from './run'; -export { ConfigFlags } from './config-flags'; diff --git a/src/cli/ionic-config.ts b/src/cli/ionic-config.ts index 1f42fbc0601..f6c4f77aa67 100644 --- a/src/cli/ionic-config.ts +++ b/src/cli/ionic-config.ts @@ -1,5 +1,5 @@ import type * as d from '../declarations'; -import { readJson, uuidv4, UUID_REGEX } from './telemetry/helpers'; +import { readJson, UUID_REGEX, uuidv4 } from './telemetry/helpers'; export const isTest = () => process.env.JEST_WORKER_ID !== undefined; diff --git a/src/cli/logs.ts b/src/cli/logs.ts index be7b2292588..21e7432ec2f 100644 --- a/src/cli/logs.ts +++ b/src/cli/logs.ts @@ -1,4 +1,4 @@ -import type { Logger, CompilerSystem, TaskCommand, ValidatedConfig } from '../declarations'; +import type { CompilerSystem, Logger, TaskCommand, ValidatedConfig } from '../declarations'; import type { ConfigFlags } from './config-flags'; import type { CoreCompiler } from './load-compiler'; diff --git a/src/cli/parse-flags.ts b/src/cli/parse-flags.ts index 9e1a2a5c937..a86c5193778 100644 --- a/src/cli/parse-flags.ts +++ b/src/cli/parse-flags.ts @@ -1,10 +1,12 @@ -import { CompilerSystem, LogLevel, LOG_LEVELS, TaskCommand } from '../declarations'; import { dashToPascalCase, toDashCase } from '@utils'; + +import { CompilerSystem, LOG_LEVELS, LogLevel, TaskCommand } from '../declarations'; import { BOOLEAN_CLI_ARGS, BooleanCLIArg, CLI_ARG_ALIASES, ConfigFlags, + createConfigFlags, LOG_LEVEL_CLI_ARGS, LogCLIArg, NUMBER_CLI_ARGS, @@ -13,7 +15,6 @@ import { STRING_NUMBER_CLI_ARGS, StringCLIArg, StringNumberCLIArg, - createConfigFlags, } from './config-flags'; /** diff --git a/src/cli/public.ts b/src/cli/public.ts index 2746bb47cdd..c069e4f58fe 100644 --- a/src/cli/public.ts +++ b/src/cli/public.ts @@ -1,4 +1,5 @@ import type { CliInitOptions, CompilerSystem, Config, Logger, TaskCommand } from '@stencil/core/internal'; + import type { ConfigFlags } from './config-flags'; /** diff --git a/src/cli/run.ts b/src/cli/run.ts index 67856cf5749..1c123ee5b71 100644 --- a/src/cli/run.ts +++ b/src/cli/run.ts @@ -1,8 +1,12 @@ -import type * as d from '../declarations'; +import { hasError, isFunction, shouldIgnoreError } from '@utils'; + import { dependencies } from '../compiler/sys/dependencies.json'; +import { createLogger } from '../compiler/sys/logger/console-logger'; +import type * as d from '../declarations'; +import { ValidatedConfig } from '../declarations'; +import { createConfigFlags } from './config-flags'; import { findConfig } from './find-config'; -import { hasError, isFunction, shouldIgnoreError } from '@utils'; -import { loadCoreCompiler, CoreCompiler } from './load-compiler'; +import { CoreCompiler, loadCoreCompiler } from './load-compiler'; import { loadedCompilerLog, startupLog, startupLogVersion } from './logs'; import { parseFlags } from './parse-flags'; import { taskBuild } from './task-build'; @@ -12,12 +16,9 @@ import { taskHelp } from './task-help'; import { taskInfo } from './task-info'; import { taskPrerender } from './task-prerender'; import { taskServe } from './task-serve'; -import { taskTest } from './task-test'; import { taskTelemetry } from './task-telemetry'; +import { taskTest } from './task-test'; import { telemetryAction } from './telemetry/telemetry'; -import { createLogger } from '../compiler/sys/logger/console-logger'; -import { ValidatedConfig } from '../declarations'; -import { createConfigFlags } from './config-flags'; export const run = async (init: d.CliInitOptions) => { const { args, logger, sys } = init; diff --git a/src/cli/task-build.ts b/src/cli/task-build.ts index d22f6cdd69a..2603c4fec2d 100644 --- a/src/cli/task-build.ts +++ b/src/cli/task-build.ts @@ -1,8 +1,8 @@ import type * as d from '../declarations'; +import { printCheckVersionResults, startCheckVersion } from './check-version'; import type { CoreCompiler } from './load-compiler'; -import { runPrerenderTask } from './task-prerender'; -import { startCheckVersion, printCheckVersionResults } from './check-version'; import { startupCompilerLog } from './logs'; +import { runPrerenderTask } from './task-prerender'; import { taskWatch } from './task-watch'; import { telemetryBuildFinishedAction } from './telemetry/telemetry'; diff --git a/src/cli/task-docs.ts b/src/cli/task-docs.ts index 8705c35d24a..af8c9a0bf29 100644 --- a/src/cli/task-docs.ts +++ b/src/cli/task-docs.ts @@ -1,6 +1,6 @@ +import { isOutputTargetDocs } from '../compiler/output-targets/output-utils'; import type { ValidatedConfig } from '../declarations'; import type { CoreCompiler } from './load-compiler'; -import { isOutputTargetDocs } from '../compiler/output-targets/output-utils'; import { startupCompilerLog } from './logs'; export const taskDocs = async (coreCompiler: CoreCompiler, config: ValidatedConfig) => { diff --git a/src/cli/task-generate.ts b/src/cli/task-generate.ts index 0f5c8982ddc..ec7f2e38771 100644 --- a/src/cli/task-generate.ts +++ b/src/cli/task-generate.ts @@ -1,7 +1,8 @@ +import { validateComponentTag } from '@utils'; + +import { IS_NODE_ENV } from '../compiler/sys/environment'; import type { ValidatedConfig } from '../declarations'; import type { CoreCompiler } from './load-compiler'; -import { IS_NODE_ENV } from '../compiler/sys/environment'; -import { validateComponentTag } from '@utils'; /** * Task to generate component boilerplate and write it to disk. This task can diff --git a/src/cli/task-prerender.ts b/src/cli/task-prerender.ts index a4d0f093b4c..4aae29ecdfb 100644 --- a/src/cli/task-prerender.ts +++ b/src/cli/task-prerender.ts @@ -1,6 +1,7 @@ +import { catchError } from '@utils'; + import type { BuildResultsComponentGraph, Diagnostic, ValidatedConfig } from '../declarations'; import type { CoreCompiler } from './load-compiler'; -import { catchError } from '@utils'; import { startupCompilerLog } from './logs'; export const taskPrerender = async (coreCompiler: CoreCompiler, config: ValidatedConfig) => { diff --git a/src/cli/task-serve.ts b/src/cli/task-serve.ts index ae96d7eb8f3..656da117941 100644 --- a/src/cli/task-serve.ts +++ b/src/cli/task-serve.ts @@ -1,6 +1,7 @@ -import type { ValidatedConfig } from '../declarations'; import { isString } from '@utils'; +import type { ValidatedConfig } from '../declarations'; + export const taskServe = async (config: ValidatedConfig) => { config.suppressLogs = true; diff --git a/src/cli/task-test.ts b/src/cli/task-test.ts index 2b20d49eb39..59bd81eb54e 100644 --- a/src/cli/task-test.ts +++ b/src/cli/task-test.ts @@ -1,5 +1,5 @@ -import type { ValidatedConfig, TestingRunOptions } from '../declarations'; import { IS_NODE_ENV } from '../compiler/sys/environment'; +import type { TestingRunOptions, ValidatedConfig } from '../declarations'; /** * Entrypoint for any Stencil tests diff --git a/src/cli/task-watch.ts b/src/cli/task-watch.ts index c55691a9b0b..039f4ac5c23 100644 --- a/src/cli/task-watch.ts +++ b/src/cli/task-watch.ts @@ -1,6 +1,6 @@ import type { DevServer, ValidatedConfig } from '../declarations'; +import { printCheckVersionResults, startCheckVersion } from './check-version'; import type { CoreCompiler } from './load-compiler'; -import { startCheckVersion, printCheckVersionResults } from './check-version'; import { startupCompilerLog } from './logs'; export const taskWatch = async (coreCompiler: CoreCompiler, config: ValidatedConfig) => { diff --git a/src/cli/telemetry/telemetry.ts b/src/cli/telemetry/telemetry.ts index 4bd7969fa3d..f5a8e1ee478 100644 --- a/src/cli/telemetry/telemetry.ts +++ b/src/cli/telemetry/telemetry.ts @@ -1,9 +1,9 @@ -import { tryFn, hasDebug, readJson, hasVerbose, uuidv4 } from './helpers'; -import { shouldTrack } from './shouldTrack'; +import { isOutputTargetHydrate, WWW } from '../../compiler/output-targets/output-utils'; import type * as d from '../../declarations'; import { readConfig, updateConfig, writeConfig } from '../ionic-config'; import { CoreCompiler } from '../load-compiler'; -import { isOutputTargetHydrate, WWW } from '../../compiler/output-targets/output-utils'; +import { hasDebug, hasVerbose, readJson, tryFn, uuidv4 } from './helpers'; +import { shouldTrack } from './shouldTrack'; /** * Used to within taskBuild to provide the component_count property. diff --git a/src/cli/telemetry/test/helpers.spec.ts b/src/cli/telemetry/test/helpers.spec.ts index 56725395897..b3275125fe6 100644 --- a/src/cli/telemetry/test/helpers.spec.ts +++ b/src/cli/telemetry/test/helpers.spec.ts @@ -1,6 +1,6 @@ -import { isInteractive, tryFn, uuidv4, hasDebug, hasVerbose } from '../helpers'; import { createSystem } from '../../../compiler/sys/stencil-sys'; import { createConfigFlags } from '../../config-flags'; +import { hasDebug, hasVerbose, isInteractive, tryFn, uuidv4 } from '../helpers'; describe('hasDebug', () => { it('Returns true when a flag is passed', () => { diff --git a/src/cli/telemetry/test/telemetry.spec.ts b/src/cli/telemetry/test/telemetry.spec.ts index 0d2c97ea3fc..d9be7dce87f 100644 --- a/src/cli/telemetry/test/telemetry.spec.ts +++ b/src/cli/telemetry/test/telemetry.spec.ts @@ -1,12 +1,13 @@ +import * as coreCompiler from '@stencil/core/compiler'; +import { mockValidatedConfig } from '@stencil/core/testing'; + +import { createConfigFlags } from '../../../cli/config-flags'; +import { DIST, DIST_CUSTOM_ELEMENTS, DIST_HYDRATE_SCRIPT, WWW } from '../../../compiler/output-targets/output-utils'; +import { createSystem } from '../../../compiler/sys/stencil-sys'; import type * as d from '../../../declarations'; -import * as telemetry from '../telemetry'; import * as shouldTrack from '../shouldTrack'; -import { createSystem } from '../../../compiler/sys/stencil-sys'; -import { mockValidatedConfig } from '@stencil/core/testing'; -import * as coreCompiler from '@stencil/core/compiler'; +import * as telemetry from '../telemetry'; import { anonymizeConfigForTelemetry } from '../telemetry'; -import { DIST, DIST_CUSTOM_ELEMENTS, DIST_HYDRATE_SCRIPT, WWW } from '../../../compiler/output-targets/output-utils'; -import { createConfigFlags } from '../../../cli/config-flags'; describe('telemetryBuildFinishedAction', () => { let config: d.ValidatedConfig; diff --git a/src/cli/test/ionic-config.spec.ts b/src/cli/test/ionic-config.spec.ts index 59f8f77cbd6..4cd688a1c69 100644 --- a/src/cli/test/ionic-config.spec.ts +++ b/src/cli/test/ionic-config.spec.ts @@ -1,7 +1,8 @@ -import { readConfig, writeConfig, updateConfig, defaultConfig } from '../ionic-config'; +import { mockCompilerSystem } from '@stencil/core/testing'; + import { createSystem } from '../../compiler/sys/stencil-sys'; +import { defaultConfig, readConfig, updateConfig, writeConfig } from '../ionic-config'; import { UUID_REGEX } from '../telemetry/helpers'; -import { mockCompilerSystem } from '@stencil/core/testing'; const UUID1 = '5588e0f0-02b5-4afa-8194-5d8f78683b36'; const UUID2 = 'e5609819-5c24-4fa2-8817-e05ca10b8cae'; diff --git a/src/cli/test/parse-flags.spec.ts b/src/cli/test/parse-flags.spec.ts index 75594bbbd8b..d56f8609f40 100644 --- a/src/cli/test/parse-flags.spec.ts +++ b/src/cli/test/parse-flags.spec.ts @@ -1,7 +1,8 @@ +import { toDashCase } from '@utils'; + import { LogLevel } from '../../declarations'; -import { BOOLEAN_CLI_ARGS, STRING_CLI_ARGS, NUMBER_CLI_ARGS } from '../config-flags'; +import { BOOLEAN_CLI_ARGS, NUMBER_CLI_ARGS, STRING_CLI_ARGS } from '../config-flags'; import { parseEqualsArg, parseFlags } from '../parse-flags'; -import { toDashCase } from '@utils'; describe('parseFlags', () => { it('should get known and unknown args', () => { diff --git a/src/cli/test/run.spec.ts b/src/cli/test/run.spec.ts index 226bfd57a54..ce3d69f5b3f 100644 --- a/src/cli/test/run.spec.ts +++ b/src/cli/test/run.spec.ts @@ -1,4 +1,3 @@ -import type * as d from '../../declarations'; import * as coreCompiler from '@stencil/core/compiler'; import { mockCompilerSystem, @@ -6,6 +5,10 @@ import { mockLogger as createMockLogger, mockValidatedConfig, } from '@stencil/core/testing'; + +import type * as d from '../../declarations'; +import { createTestingSystem } from '../../testing/testing-sys'; +import { createConfigFlags } from '../config-flags'; import * as ParseFlags from '../parse-flags'; import { run, runTask } from '../run'; import * as BuildTask from '../task-build'; @@ -16,8 +19,6 @@ import * as PrerenderTask from '../task-prerender'; import * as ServeTask from '../task-serve'; import * as TelemetryTask from '../task-telemetry'; import * as TestTask from '../task-test'; -import { createTestingSystem } from '../../testing/testing-sys'; -import { createConfigFlags } from '../config-flags'; describe('run', () => { describe('run()', () => { diff --git a/src/cli/test/task-generate.spec.ts b/src/cli/test/task-generate.spec.ts index e6c522d4676..1b4f21433a6 100644 --- a/src/cli/test/task-generate.spec.ts +++ b/src/cli/test/task-generate.spec.ts @@ -1,11 +1,11 @@ +import * as coreCompiler from '@stencil/core/compiler'; +import { mockCompilerSystem, mockValidatedConfig } from '@stencil/core/testing'; + import type * as d from '../../declarations'; -import { taskGenerate, getBoilerplateByExtension, BoilerplateFile } from '../task-generate'; -import { mockValidatedConfig, mockCompilerSystem } from '@stencil/core/testing'; import * as utils from '../../utils/validation'; - -import * as coreCompiler from '@stencil/core/compiler'; -import { CoreCompiler } from '../load-compiler'; import { createConfigFlags } from '../config-flags'; +import { CoreCompiler } from '../load-compiler'; +import { BoilerplateFile, getBoilerplateByExtension, taskGenerate } from '../task-generate'; const promptMock = jest.fn().mockResolvedValue('my-component'); diff --git a/src/client/client-build.ts b/src/client/client-build.ts index 0e35fe6fe84..ebf6b46481c 100644 --- a/src/client/client-build.ts +++ b/src/client/client-build.ts @@ -1,6 +1,7 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; +import type * as d from '../declarations'; + export const Build: d.UserBuildConditionals = { isDev: BUILD.isDev ? true : false, isBrowser: true, diff --git a/src/client/client-host-ref.ts b/src/client/client-host-ref.ts index d95aefdd01f..47ac29ea85a 100644 --- a/src/client/client-host-ref.ts +++ b/src/client/client-host-ref.ts @@ -1,6 +1,7 @@ -import type * as d from '../declarations'; -import { addHostEventListeners } from '@runtime'; import { BUILD } from '@app-data'; +import { addHostEventListeners } from '@runtime'; + +import type * as d from '../declarations'; const hostRefs: WeakMap = /*@__PURE__*/ new WeakMap(); diff --git a/src/client/client-load-module.ts b/src/client/client-load-module.ts index a7c58fe8385..0c6d10d5671 100644 --- a/src/client/client-load-module.ts +++ b/src/client/client-load-module.ts @@ -1,6 +1,7 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; -import { consoleError, consoleDevError } from './client-log'; + +import type * as d from '../declarations'; +import { consoleDevError, consoleError } from './client-log'; export const cmpModules = /*@__PURE__*/ new Map(); diff --git a/src/client/client-log.ts b/src/client/client-log.ts index 6966e13daf8..4282b7dddc0 100644 --- a/src/client/client-log.ts +++ b/src/client/client-log.ts @@ -1,6 +1,7 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; +import type * as d from '../declarations'; + let customError: d.ErrorHandler; export const consoleError: d.ErrorHandler = (e: any, el?: any) => (customError || console.error)(e, el); diff --git a/src/client/client-patch-browser.ts b/src/client/client-patch-browser.ts index 4e40509830b..2575023227e 100644 --- a/src/client/client-patch-browser.ts +++ b/src/client/client-patch-browser.ts @@ -1,8 +1,9 @@ -import type * as d from '../declarations'; import { BUILD, NAMESPACE } from '@app-data'; -import { consoleDevInfo, H, doc, plt, promiseResolve, win } from '@platform'; +import { consoleDevInfo, doc, H, plt, promiseResolve, win } from '@platform'; import { getDynamicImportFunction } from '@utils'; +import type * as d from '../declarations'; + export const patchBrowser = (): Promise => { // NOTE!! This fn cannot use async/await! if (BUILD.isDev && !BUILD.isTesting) { diff --git a/src/client/client-task-queue.ts b/src/client/client-task-queue.ts index c072e606f2f..efa1caece78 100644 --- a/src/client/client-task-queue.ts +++ b/src/client/client-task-queue.ts @@ -1,8 +1,9 @@ +import { BUILD } from '@app-data'; + import type * as d from '../declarations'; +import { PLATFORM_FLAGS } from '../runtime/runtime-constants'; import { consoleError } from './client-log'; import { plt, promiseResolve } from './client-window'; -import { PLATFORM_FLAGS } from '../runtime/runtime-constants'; -import { BUILD } from '@app-data'; let queueCongestion = 0; let queuePending = false; diff --git a/src/client/client-window.ts b/src/client/client-window.ts index 2301769546f..ba14cb5f5b7 100644 --- a/src/client/client-window.ts +++ b/src/client/client-window.ts @@ -1,6 +1,7 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; +import type * as d from '../declarations'; + export const win = typeof window !== 'undefined' ? window : ({} as Window); export const CSS = BUILD.cssVarShim ? (win as any).CSS : null; diff --git a/src/client/index.ts b/src/client/index.ts index 194a8026d7b..67f181dd10a 100644 --- a/src/client/index.ts +++ b/src/client/index.ts @@ -1,10 +1,10 @@ -export * from './client-window'; +export * from './client-build'; export * from './client-context'; export * from './client-host-ref'; export * from './client-load-module'; export * from './client-log'; export * from './client-style'; export * from './client-task-queue'; -export * from './client-build'; +export * from './client-window'; +export { BUILD, Env, NAMESPACE } from '@app-data'; export * from '@runtime'; -export { BUILD, NAMESPACE, Env } from '@app-data'; diff --git a/src/client/polyfills/css-shim/custom-style.ts b/src/client/polyfills/css-shim/custom-style.ts index 8e7e436d0ee..9c7c5d3ac19 100644 --- a/src/client/polyfills/css-shim/custom-style.ts +++ b/src/client/polyfills/css-shim/custom-style.ts @@ -1,9 +1,9 @@ -import { addGlobalLink, loadDocument, startWatcher } from './load-link-styles'; -import { executeTemplate } from './template'; +import { CssVarShim } from '../../../declarations'; import { CSSScope } from './interfaces'; +import { addGlobalLink, loadDocument, startWatcher } from './load-link-styles'; import { addGlobalStyle, parseCSS, reScope, updateGlobalScopes } from './scope'; import { getActiveSelectors, resolveValues } from './selectors'; -import { CssVarShim } from '../../../declarations'; +import { executeTemplate } from './template'; export class CustomStyle implements CssVarShim { private count = 0; diff --git a/src/client/polyfills/css-shim/selectors.ts b/src/client/polyfills/css-shim/selectors.ts index 81704163795..f9e98a326a2 100644 --- a/src/client/polyfills/css-shim/selectors.ts +++ b/src/client/polyfills/css-shim/selectors.ts @@ -1,6 +1,6 @@ -import { compileTemplate, executeTemplate } from './template'; -import { CSSScope, CSSSelector, CSSTemplate, Declaration } from './interfaces'; import { StyleNode, types } from './css-parser'; +import { CSSScope, CSSSelector, CSSTemplate, Declaration } from './interfaces'; +import { compileTemplate, executeTemplate } from './template'; export function resolveValues(selectors: CSSSelector[]) { const props: { [prop: string]: CSSTemplate } = {}; diff --git a/src/client/polyfills/css-shim/template.ts b/src/client/polyfills/css-shim/template.ts index 3204785d9bf..b6cb63cb918 100644 --- a/src/client/polyfills/css-shim/template.ts +++ b/src/client/polyfills/css-shim/template.ts @@ -1,6 +1,6 @@ -import { findRegex } from './utils'; import { CSSTemplate, CSSVariables } from './interfaces'; import { COMMENTS, TRAILING_LINES, VAR_ASSIGN_START, VAR_USAGE_START } from './regex'; +import { findRegex } from './utils'; export function resolveVar(props: CSSVariables, prop: string, fallback: CSSTemplate | undefined): string { if (props[prop]) { diff --git a/src/client/polyfills/css-shim/test/css-shim.spec.ts b/src/client/polyfills/css-shim/test/css-shim.spec.ts index 2f6b17410b7..5e3a93cd419 100644 --- a/src/client/polyfills/css-shim/test/css-shim.spec.ts +++ b/src/client/polyfills/css-shim/test/css-shim.spec.ts @@ -1,6 +1,7 @@ -import { CustomStyle } from '../custom-style'; import { mockWindow } from '@stencil/core/testing'; +import { CustomStyle } from '../custom-style'; + describe('css-shim', () => { beforeEach(() => { window = mockWindow(); diff --git a/src/client/polyfills/css-shim/test/utils.spec.ts b/src/client/polyfills/css-shim/test/utils.spec.ts index ecfde38fbcb..4735c76833d 100644 --- a/src/client/polyfills/css-shim/test/utils.spec.ts +++ b/src/client/polyfills/css-shim/test/utils.spec.ts @@ -1,7 +1,7 @@ -import { executeTemplate } from '../template'; +import { CSSSelector, Declaration } from '../interfaces'; import { parseCSS } from '../scope'; import { getDeclarations, normalizeValue, resolveValues } from '../selectors'; -import { CSSSelector, Declaration } from '../interfaces'; +import { executeTemplate } from '../template'; describe('utils', () => { describe('resolveValues', () => { diff --git a/src/compiler/app-core/app-es5-disabled.ts b/src/compiler/app-core/app-es5-disabled.ts index 151fda180b5..33100a75402 100644 --- a/src/compiler/app-core/app-es5-disabled.ts +++ b/src/compiler/app-core/app-es5-disabled.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; import { escapeHtml, generatePreamble } from '@utils'; import { join } from 'path'; +import type * as d from '../../declarations'; + export const generateEs5DisabledMessage = async ( config: d.Config, compilerCtx: d.CompilerCtx, diff --git a/src/compiler/app-core/app-polyfills.ts b/src/compiler/app-core/app-polyfills.ts index 0276ec1f89b..ad2b267313f 100644 --- a/src/compiler/app-core/app-polyfills.ts +++ b/src/compiler/app-core/app-polyfills.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { join } from 'path'; +import type * as d from '../../declarations'; + export const getClientPolyfill = async (config: d.Config, compilerCtx: d.CompilerCtx, polyfillFile: string) => { const polyfillFilePath = join( config.sys.getCompilerExecutingPath(), diff --git a/src/compiler/app-core/bundle-app-core.ts b/src/compiler/app-core/bundle-app-core.ts index e6716a7db53..81c1b0e3dd3 100644 --- a/src/compiler/app-core/bundle-app-core.ts +++ b/src/compiler/app-core/bundle-app-core.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import type { OutputAsset, OutputChunk, OutputOptions, RollupBuild } from 'rollup'; + +import type * as d from '../../declarations'; import { STENCIL_CORE_ID } from '../bundle/entry-alias-ids'; /** diff --git a/src/compiler/build/build-ctx.ts b/src/compiler/build/build-ctx.ts index e46006bc109..5ec61317efb 100644 --- a/src/compiler/build/build-ctx.ts +++ b/src/compiler/build/build-ctx.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { hasError, hasWarning } from '@utils'; +import type * as d from '../../declarations'; + /** * A new BuildCtx object is created for every build * and rebuild. diff --git a/src/compiler/build/build-finish.ts b/src/compiler/build/build-finish.ts index e2f9dab1fd8..91c0016b5cf 100644 --- a/src/compiler/build/build-finish.ts +++ b/src/compiler/build/build-finish.ts @@ -1,9 +1,10 @@ +import { isFunction, isRemoteUrl } from '@utils'; +import { relative } from 'path'; + import type * as d from '../../declarations'; +import { IS_NODE_ENV } from '../sys/environment'; import { generateBuildResults } from './build-results'; import { generateBuildStats, writeBuildStats } from './build-stats'; -import { isFunction, isRemoteUrl } from '@utils'; -import { IS_NODE_ENV } from '../sys/environment'; -import { relative } from 'path'; /** * Finish a build as having completed successfully diff --git a/src/compiler/build/build-hmr.ts b/src/compiler/build/build-hmr.ts index 0ce71115755..05dfe60ecc4 100644 --- a/src/compiler/build/build-hmr.ts +++ b/src/compiler/build/build-hmr.ts @@ -1,10 +1,11 @@ -import type * as d from '../../declarations'; -import { getScopeId } from '../style/scope-css'; -import { isOutputTargetWww } from '../output-targets/output-utils'; -import minimatch from 'minimatch'; import { isGlob, normalizePath, sortBy } from '@utils'; +import minimatch from 'minimatch'; import { basename } from 'path'; +import type * as d from '../../declarations'; +import { isOutputTargetWww } from '../output-targets/output-utils'; +import { getScopeId } from '../style/scope-css'; + export const generateHmr = (config: d.Config, compilerCtx: d.CompilerCtx, buildCtx: d.BuildCtx) => { if (config.devServer == null || config.devServer.reloadStrategy == null) { return null; diff --git a/src/compiler/build/build-results.ts b/src/compiler/build/build-results.ts index 09757084353..cc60d280171 100644 --- a/src/compiler/build/build-results.ts +++ b/src/compiler/build/build-results.ts @@ -1,7 +1,8 @@ +import { fromEntries, hasError, isString, normalizeDiagnostics } from '@utils'; + import type * as d from '../../declarations'; -import { generateHmr } from './build-hmr'; import { getBuildTimestamp } from './build-ctx'; -import { hasError, isString, normalizeDiagnostics, fromEntries } from '@utils'; +import { generateHmr } from './build-hmr'; export const generateBuildResults = (config: d.Config, compilerCtx: d.CompilerCtx, buildCtx: d.BuildCtx) => { const componentGraph = buildCtx.componentGraph ? fromEntries(buildCtx.componentGraph.entries()) : undefined; diff --git a/src/compiler/build/build-stats.ts b/src/compiler/build/build-stats.ts index 0931233bd6b..9777e9ccabd 100644 --- a/src/compiler/build/build-stats.ts +++ b/src/compiler/build/build-stats.ts @@ -1,4 +1,5 @@ import { byteSize, sortBy } from '@utils'; + import type * as d from '../../declarations'; import { isOutputTargetStats } from '../output-targets/output-utils'; diff --git a/src/compiler/build/build.ts b/src/compiler/build/build.ts index 839b87a29e1..9e5979777f3 100644 --- a/src/compiler/build/build.ts +++ b/src/compiler/build/build.ts @@ -1,13 +1,14 @@ -import type * as d from '../../declarations'; -import { buildAbort, buildFinish } from './build-finish'; -import { catchError, isString, readPackageJson } from '@utils'; import { createDocument } from '@stencil/core/mock-doc'; +import { catchError, isString, readPackageJson } from '@utils'; +import ts from 'typescript'; + +import type * as d from '../../declarations'; +import { generateOutputTargets } from '../output-targets'; import { emptyOutputTargets } from '../output-targets/empty-dir'; import { generateGlobalStyles } from '../style/global-styles'; -import { generateOutputTargets } from '../output-targets'; import { runTsProgram } from '../transpile/run-program'; +import { buildAbort, buildFinish } from './build-finish'; import { writeBuild } from './write-build'; -import ts from 'typescript'; export const build = async ( config: d.ValidatedConfig, diff --git a/src/compiler/build/compiler-ctx.ts b/src/compiler/build/compiler-ctx.ts index 822774617a7..4c8665d6e45 100644 --- a/src/compiler/build/compiler-ctx.ts +++ b/src/compiler/build/compiler-ctx.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; +import { noop, normalizePath } from '@utils'; import { basename, dirname, extname, join } from 'path'; + +import type * as d from '../../declarations'; import { buildEvents } from '../events'; -import { noop, normalizePath } from '@utils'; import { InMemoryFileSystem } from '../sys/in-memory-fs'; /** diff --git a/src/compiler/build/full-build.ts b/src/compiler/build/full-build.ts index 157f98cf5e0..b989c0db04b 100644 --- a/src/compiler/build/full-build.ts +++ b/src/compiler/build/full-build.ts @@ -1,8 +1,9 @@ +import ts from 'typescript'; + import type * as d from '../../declarations'; +import { createTsBuildProgram } from '../transpile/create-build-program'; import { build } from './build'; import { BuildContext } from './build-ctx'; -import { createTsBuildProgram } from '../transpile/create-build-program'; -import ts from 'typescript'; /** * Build a callable function to perform a full build of a Stencil project diff --git a/src/compiler/build/test/build-stats.spec.ts b/src/compiler/build/test/build-stats.spec.ts index 2c32300999b..125845b6984 100644 --- a/src/compiler/build/test/build-stats.spec.ts +++ b/src/compiler/build/test/build-stats.spec.ts @@ -1,5 +1,6 @@ import type * as d from '@stencil/core/declarations'; -import { mockConfig, mockCompilerCtx, mockBuildCtx } from '@stencil/core/testing'; +import { mockBuildCtx, mockCompilerCtx, mockConfig } from '@stencil/core/testing'; + import { generateBuildResults } from '../build-results'; import { generateBuildStats } from '../build-stats'; diff --git a/src/compiler/build/validate-files.ts b/src/compiler/build/validate-files.ts index cadebd2277a..e75cf61f457 100644 --- a/src/compiler/build/validate-files.ts +++ b/src/compiler/build/validate-files.ts @@ -1,6 +1,6 @@ import type * as d from '../../declarations'; -import { validateBuildPackageJson } from '../types/validate-build-package-json'; import { validateManifestJson } from '../html/validate-manifest-json'; +import { validateBuildPackageJson } from '../types/validate-build-package-json'; /** * Validate the existence and contents of certain files that were generated after writing the results of the build to diff --git a/src/compiler/build/watch-build.ts b/src/compiler/build/watch-build.ts index 484845ac866..5a96de55109 100644 --- a/src/compiler/build/watch-build.ts +++ b/src/compiler/build/watch-build.ts @@ -1,9 +1,9 @@ +import { isString } from '@utils'; +import { dirname, resolve } from 'path'; +import type ts from 'typescript'; + import type * as d from '../../declarations'; -import { build } from './build'; -import { BuildContext } from './build-ctx'; import { compilerRequest } from '../bundle/dev-module'; -import { createTsWatchProgram } from '../transpile/create-watch-program'; -import { dirname, resolve } from 'path'; import { filesChanged, hasHtmlChanges, @@ -14,8 +14,9 @@ import { scriptsDeleted, } from '../fs-watch/fs-watch-rebuild'; import { hasServiceWorkerChanges } from '../service-worker/generate-sw'; -import { isString } from '@utils'; -import type ts from 'typescript'; +import { createTsWatchProgram } from '../transpile/create-watch-program'; +import { build } from './build'; +import { BuildContext } from './build-ctx'; export const createWatchBuild = async ( config: d.ValidatedConfig, diff --git a/src/compiler/build/write-build.ts b/src/compiler/build/write-build.ts index f1ee88a9809..9dd6ecae930 100644 --- a/src/compiler/build/write-build.ts +++ b/src/compiler/build/write-build.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { catchError } from '@utils'; + +import type * as d from '../../declarations'; import { outputServiceWorkers } from '../output-targets/output-service-workers'; import { validateBuildFiles } from './validate-files'; diff --git a/src/compiler/bundle/app-data-plugin.ts b/src/compiler/bundle/app-data-plugin.ts index 3ed9036f9a7..00fbf3268eb 100644 --- a/src/compiler/bundle/app-data-plugin.ts +++ b/src/compiler/bundle/app-data-plugin.ts @@ -1,7 +1,10 @@ -import type * as d from '../../declarations'; +import { createJsVarName, isString, loadTypeScriptDiagnostics, normalizePath } from '@utils'; import MagicString from 'magic-string'; -import { createJsVarName, normalizePath, isString, loadTypeScriptDiagnostics } from '@utils'; +import { basename } from 'path'; import type { LoadResult, Plugin, ResolveIdResult, TransformResult } from 'rollup'; +import ts from 'typescript'; + +import type * as d from '../../declarations'; import { removeCollectionImports } from '../transformers/remove-collection-imports'; import { APP_DATA_CONDITIONAL, @@ -10,8 +13,6 @@ import { STENCIL_CORE_ID, STENCIL_INTERNAL_HYDRATE_ID, } from './entry-alias-ids'; -import ts from 'typescript'; -import { basename } from 'path'; export const appDataPlugin = ( config: d.Config, diff --git a/src/compiler/bundle/bundle-interface.ts b/src/compiler/bundle/bundle-interface.ts index db3a02f03b8..e83eb49a6d4 100644 --- a/src/compiler/bundle/bundle-interface.ts +++ b/src/compiler/bundle/bundle-interface.ts @@ -1,6 +1,7 @@ -import type { BuildConditionals } from '../../declarations'; -import type { SourceFile, TransformerFactory } from 'typescript'; import type { PreserveEntrySignaturesOption } from 'rollup'; +import type { SourceFile, TransformerFactory } from 'typescript'; + +import type { BuildConditionals } from '../../declarations'; /** * Options for bundled output passed on Rollup diff --git a/src/compiler/bundle/bundle-output.ts b/src/compiler/bundle/bundle-output.ts index 701e8b6ac91..d261a41d416 100644 --- a/src/compiler/bundle/bundle-output.ts +++ b/src/compiler/bundle/bundle-output.ts @@ -1,20 +1,21 @@ +import { rollupCommonjsPlugin, rollupJsonPlugin, rollupNodeResolvePlugin, rollupReplacePlugin } from '@compiler-deps'; +import { createOnWarnFn, isString, loadRollupDiagnostics } from '@utils'; +import { rollup, RollupOptions, TreeshakingOptions } from 'rollup'; + import type * as d from '../../declarations'; +import { lazyComponentPlugin } from '../output-targets/dist-lazy/lazy-component-plugin'; +import { createCustomResolverAsync } from '../sys/resolve/resolve-module-async'; import { appDataPlugin } from './app-data-plugin'; import type { BundleOptions } from './bundle-interface'; import { coreResolvePlugin } from './core-resolve-plugin'; -import { createCustomResolverAsync } from '../sys/resolve/resolve-module-async'; -import { createOnWarnFn, loadRollupDiagnostics, isString } from '@utils'; import { devNodeModuleResolveId } from './dev-module'; import { extFormatPlugin } from './ext-format-plugin'; import { extTransformsPlugin } from './ext-transforms-plugin'; import { fileLoadPlugin } from './file-load-plugin'; -import { lazyComponentPlugin } from '../output-targets/dist-lazy/lazy-component-plugin'; import { loaderPlugin } from './loader-plugin'; import { pluginHelper } from './plugin-helper'; -import { resolveIdWithTypeScript, typescriptPlugin } from './typescript-plugin'; -import { rollupCommonjsPlugin, rollupJsonPlugin, rollupNodeResolvePlugin, rollupReplacePlugin } from '@compiler-deps'; -import { RollupOptions, TreeshakingOptions, rollup } from 'rollup'; import { serverPlugin } from './server-plugin'; +import { resolveIdWithTypeScript, typescriptPlugin } from './typescript-plugin'; import { userIndexPlugin } from './user-index-plugin'; import { workerPlugin } from './worker-plugin'; diff --git a/src/compiler/bundle/core-resolve-plugin.ts b/src/compiler/bundle/core-resolve-plugin.ts index 47d367c8720..982c9d1af7e 100644 --- a/src/compiler/bundle/core-resolve-plugin.ts +++ b/src/compiler/bundle/core-resolve-plugin.ts @@ -1,19 +1,20 @@ -import type * as d from '../../declarations'; +import { isRemoteUrl, normalizeFsPath, normalizePath } from '@utils'; import { dirname, join } from 'path'; +import type { Plugin } from 'rollup'; + +import type * as d from '../../declarations'; +import { HYDRATED_CSS } from '../../runtime/runtime-constants'; import { fetchModuleAsync } from '../sys/fetch/fetch-module-async'; import { getStencilModuleUrl, packageVersions } from '../sys/fetch/fetch-utils'; -import { HYDRATED_CSS } from '../../runtime/runtime-constants'; -import { isRemoteUrl, normalizePath, normalizeFsPath } from '@utils'; import { APP_DATA_CONDITIONAL, STENCIL_CORE_ID, - STENCIL_INTERNAL_ID, STENCIL_INTERNAL_CLIENT_ID, STENCIL_INTERNAL_CLIENT_PATCH_BROWSER_ID, STENCIL_INTERNAL_CLIENT_PATCH_ESM_ID, STENCIL_INTERNAL_HYDRATE_ID, + STENCIL_INTERNAL_ID, } from './entry-alias-ids'; -import type { Plugin } from 'rollup'; export const coreResolvePlugin = ( config: d.Config, diff --git a/src/compiler/bundle/dev-module.ts b/src/compiler/bundle/dev-module.ts index 8d15d2db63f..211e10cae27 100644 --- a/src/compiler/bundle/dev-module.ts +++ b/src/compiler/bundle/dev-module.ts @@ -1,10 +1,11 @@ -import type * as d from '../../declarations'; +import { generatePreamble } from '@utils'; import { basename, dirname, join, relative } from 'path'; -import { BuildContext } from '../build/build-ctx'; -import { getRollupOptions } from './bundle-output'; import { OutputOptions, PartialResolvedId, rollup } from 'rollup'; -import { generatePreamble } from '@utils'; + +import type * as d from '../../declarations'; +import { BuildContext } from '../build/build-ctx'; import { InMemoryFileSystem } from '../sys/in-memory-fs'; +import { getRollupOptions } from './bundle-output'; export const devNodeModuleResolveId = async ( config: d.Config, diff --git a/src/compiler/bundle/ext-format-plugin.ts b/src/compiler/bundle/ext-format-plugin.ts index b6e5b142275..64f712030b2 100644 --- a/src/compiler/bundle/ext-format-plugin.ts +++ b/src/compiler/bundle/ext-format-plugin.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; -import { basename } from 'path'; import { createJsVarName, normalizeFsPathQuery } from '@utils'; +import { basename } from 'path'; import type { Plugin, TransformPluginContext, TransformResult } from 'rollup'; +import type * as d from '../../declarations'; + export const extFormatPlugin = (config: d.Config): Plugin => { return { name: 'extFormatPlugin', diff --git a/src/compiler/bundle/ext-transforms-plugin.ts b/src/compiler/bundle/ext-transforms-plugin.ts index 08e955ef57c..f2499c16f74 100644 --- a/src/compiler/bundle/ext-transforms-plugin.ts +++ b/src/compiler/bundle/ext-transforms-plugin.ts @@ -1,11 +1,12 @@ -import type * as d from '../../declarations'; -import type { BundleOptions } from './bundle-interface'; import { hasError, normalizeFsPath } from '@utils'; -import { isOutputTargetDistCollection } from '../output-targets/output-utils'; import { join, relative } from 'path'; -import { parseImportPath } from '../transformers/stencil-import-path'; import type { Plugin } from 'rollup'; + +import type * as d from '../../declarations'; +import { isOutputTargetDistCollection } from '../output-targets/output-utils'; import { runPluginTransformsEsmImports } from '../plugin/plugin'; +import { parseImportPath } from '../transformers/stencil-import-path'; +import type { BundleOptions } from './bundle-interface'; /** * A Rollup plugin which bundles up some transformation of CSS imports as well diff --git a/src/compiler/bundle/file-load-plugin.ts b/src/compiler/bundle/file-load-plugin.ts index b106878e4a9..1188d9330b9 100644 --- a/src/compiler/bundle/file-load-plugin.ts +++ b/src/compiler/bundle/file-load-plugin.ts @@ -1,5 +1,6 @@ import { normalizeFsPath } from '@utils'; import type { Plugin } from 'rollup'; + import { InMemoryFileSystem } from '../sys/in-memory-fs'; export const fileLoadPlugin = (fs: InMemoryFileSystem): Plugin => { diff --git a/src/compiler/bundle/plugin-helper.ts b/src/compiler/bundle/plugin-helper.ts index fc63e735400..02f9d9ef54e 100644 --- a/src/compiler/bundle/plugin-helper.ts +++ b/src/compiler/bundle/plugin-helper.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; import { buildError } from '@utils'; import { relative } from 'path'; +import type * as d from '../../declarations'; + export const pluginHelper = (config: d.Config, builtCtx: d.BuildCtx, platform: string) => { return { name: 'pluginHelper', diff --git a/src/compiler/bundle/server-plugin.ts b/src/compiler/bundle/server-plugin.ts index e9aca41f03f..8139d07dc5c 100644 --- a/src/compiler/bundle/server-plugin.ts +++ b/src/compiler/bundle/server-plugin.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; import { isString, normalizeFsPath } from '@utils'; +import { isAbsolute } from 'path'; import type { Plugin } from 'rollup'; + +import type * as d from '../../declarations'; import { isOutputTargetHydrate } from '../output-targets/output-utils'; -import { isAbsolute } from 'path'; export const serverPlugin = (config: d.ValidatedConfig, platform: string): Plugin => { const isHydrateBundle = platform === 'hydrate'; diff --git a/src/compiler/bundle/test/core-resolve-plugin.spec.ts b/src/compiler/bundle/test/core-resolve-plugin.spec.ts index 73b8b74b850..c87156a1990 100644 --- a/src/compiler/bundle/test/core-resolve-plugin.spec.ts +++ b/src/compiler/bundle/test/core-resolve-plugin.spec.ts @@ -1,5 +1,5 @@ -import type * as d from '../../../declarations'; import { createSystem } from '../../../compiler/sys/stencil-sys'; +import type * as d from '../../../declarations'; import { getHydratedFlagHead, getStencilInternalModule } from '../core-resolve-plugin'; describe('core resolve plugin', () => { diff --git a/src/compiler/bundle/test/ext-transforms-plugin.spec.ts b/src/compiler/bundle/test/ext-transforms-plugin.spec.ts index 913102d4d1b..527706a09bb 100644 --- a/src/compiler/bundle/test/ext-transforms-plugin.spec.ts +++ b/src/compiler/bundle/test/ext-transforms-plugin.spec.ts @@ -1,9 +1,10 @@ import { mockBuildCtx, mockCompilerCtx, mockModule, mockValidatedConfig } from '@stencil/core/testing'; +import { normalizePath } from '@utils'; + +import * as importPathLib from '../../transformers/stencil-import-path'; import { stubComponentCompilerMeta } from '../../types/tests/ComponentCompilerMeta.stub'; import { BundleOptions } from '../bundle-interface'; import { extTransformsPlugin } from '../ext-transforms-plugin'; -import * as importPathLib from '../../transformers/stencil-import-path'; -import { normalizePath } from '@utils'; describe('extTransformsPlugin', () => { function setup(bundleOptsOverrides: Partial = {}) { diff --git a/src/compiler/bundle/typescript-plugin.ts b/src/compiler/bundle/typescript-plugin.ts index 4d3f55e3de0..40bdd136616 100644 --- a/src/compiler/bundle/typescript-plugin.ts +++ b/src/compiler/bundle/typescript-plugin.ts @@ -1,12 +1,13 @@ -import type * as d from '../../declarations'; -import type { BundleOptions } from './bundle-interface'; -import { getModule } from '../transpile/transpiled-module'; import { isString, normalizeFsPath } from '@utils'; +import { basename, isAbsolute } from 'path'; import type { LoadResult, Plugin, TransformResult } from 'rollup'; -import { tsResolveModuleName } from '../sys/typescript/typescript-resolve-module'; -import { isAbsolute, basename } from 'path'; import ts from 'typescript'; +import type * as d from '../../declarations'; +import { tsResolveModuleName } from '../sys/typescript/typescript-resolve-module'; +import { getModule } from '../transpile/transpiled-module'; +import type { BundleOptions } from './bundle-interface'; + /** * Rollup plugin that aids in resolving the TypeScript files and performing the transpilation step. * @param compilerCtx the current compiler context diff --git a/src/compiler/bundle/user-index-plugin.ts b/src/compiler/bundle/user-index-plugin.ts index 1352ae8e00c..61b9e1b80e4 100644 --- a/src/compiler/bundle/user-index-plugin.ts +++ b/src/compiler/bundle/user-index-plugin.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; +import { join } from 'path'; import type { Plugin } from 'rollup'; + +import type * as d from '../../declarations'; import { USER_INDEX_ENTRY_ID } from './entry-alias-ids'; -import { join } from 'path'; export const userIndexPlugin = (config: d.Config, compilerCtx: d.CompilerCtx): Plugin => { return { diff --git a/src/compiler/bundle/worker-plugin.ts b/src/compiler/bundle/worker-plugin.ts index 453db2e60be..1678e5b2bc7 100644 --- a/src/compiler/bundle/worker-plugin.ts +++ b/src/compiler/bundle/worker-plugin.ts @@ -1,8 +1,9 @@ +import { generatePreamble, hasError, normalizeFsPath } from '@utils'; +import type { Plugin, PluginContext, TransformResult } from 'rollup'; + import type * as d from '../../declarations'; -import type { Plugin, TransformResult, PluginContext } from 'rollup'; -import { bundleOutput } from './bundle-output'; -import { normalizeFsPath, hasError, generatePreamble } from '@utils'; import { optimizeModule } from '../optimize/optimize-module'; +import { bundleOutput } from './bundle-output'; import { STENCIL_INTERNAL_ID } from './entry-alias-ids'; export const workerPlugin = ( diff --git a/src/compiler/cache.ts b/src/compiler/cache.ts index e49c6d8af08..5e1ae071e2b 100644 --- a/src/compiler/cache.ts +++ b/src/compiler/cache.ts @@ -1,5 +1,6 @@ -import type * as d from '../declarations'; import { join } from 'path'; + +import type * as d from '../declarations'; import { InMemoryFileSystem } from './sys/in-memory-fs'; export class Cache implements d.Cache { diff --git a/src/compiler/compiler.ts b/src/compiler/compiler.ts index d20c80f30b8..3d2b01809b6 100644 --- a/src/compiler/compiler.ts +++ b/src/compiler/compiler.ts @@ -1,16 +1,17 @@ +import { isFunction } from '@utils'; +import ts from 'typescript'; + import type { Compiler, Config, Diagnostic, ValidatedConfig } from '../declarations'; -import { Cache } from './cache'; import { CompilerContext } from './build/compiler-ctx'; import { createFullBuild } from './build/full-build'; -import { createInMemoryFs } from './sys/in-memory-fs'; -import { createSysWorker } from './sys/worker/sys-worker'; import { createWatchBuild } from './build/watch-build'; +import { Cache } from './cache'; import { getConfig } from './sys/config'; import { patchFs } from './sys/fs-patch'; -import { patchTypescript } from './sys/typescript/typescript-sys'; +import { createInMemoryFs } from './sys/in-memory-fs'; import { resolveModuleIdAsync } from './sys/resolve/resolve-module-async'; -import { isFunction } from '@utils'; -import ts from 'typescript'; +import { patchTypescript } from './sys/typescript/typescript-sys'; +import { createSysWorker } from './sys/worker/sys-worker'; /** * Generate a Stencil compiler instance diff --git a/src/compiler/config/config-utils.ts b/src/compiler/config/config-utils.ts index c22c0384444..0b4b125feb3 100644 --- a/src/compiler/config/config-utils.ts +++ b/src/compiler/config/config-utils.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; -import { isAbsolute, join } from 'path'; import { isBoolean } from '@utils'; +import { isAbsolute, join } from 'path'; + import type { ConfigFlags } from '../../cli/config-flags'; +import type * as d from '../../declarations'; export const getAbsolutePath = (config: d.ValidatedConfig, dir: string) => { if (!isAbsolute(dir)) { diff --git a/src/compiler/config/load-config.ts b/src/compiler/config/load-config.ts index 277d9cbf608..2dbff9766fd 100644 --- a/src/compiler/config/load-config.ts +++ b/src/compiler/config/load-config.ts @@ -1,3 +1,7 @@ +import { buildError, catchError, hasError, isString, normalizePath } from '@utils'; +import { dirname } from 'path'; +import ts from 'typescript'; + import type { CompilerSystem, Diagnostic, @@ -5,14 +9,11 @@ import type { LoadConfigResults, UnvalidatedConfig, } from '../../declarations'; -import { buildError, catchError, hasError, isString, normalizePath } from '@utils'; -import { createSystem } from '../sys/stencil-sys'; -import { dirname } from 'path'; import { IS_NODE_ENV } from '../sys/environment'; import { nodeRequire } from '../sys/node-require'; -import { validateConfig } from './validate-config'; +import { createSystem } from '../sys/stencil-sys'; import { validateTsConfig } from '../sys/typescript/typescript-config'; -import ts from 'typescript'; +import { validateConfig } from './validate-config'; /** * Load and validate a configuration to use throughout the lifetime of any Stencil task (build, test, etc.). diff --git a/src/compiler/config/outputs/index.ts b/src/compiler/config/outputs/index.ts index faf554cb750..fb91eb0e080 100644 --- a/src/compiler/config/outputs/index.ts +++ b/src/compiler/config/outputs/index.ts @@ -1,21 +1,22 @@ -import type * as d from '../../../declarations'; import { buildError, buildWarn } from '@utils'; + +import type * as d from '../../../declarations'; import { DIST_CUSTOM_ELEMENTS_BUNDLE, isValidConfigOutputTarget, VALID_CONFIG_OUTPUT_TARGETS, } from '../../output-targets/output-utils'; +import { validateAngular } from './validate-angular'; import { validateCollection } from './validate-collection'; import { validateCustomElement } from './validate-custom-element'; +import { validateCustomElementBundle } from './validate-custom-element-bundle'; import { validateCustomOutput } from './validate-custom-output'; import { validateDist } from './validate-dist'; import { validateDocs } from './validate-docs'; -import { validateAngular } from './validate-angular'; import { validateHydrateScript } from './validate-hydrate-script'; import { validateLazy } from './validate-lazy'; import { validateStats } from './validate-stats'; import { validateWww } from './validate-www'; -import { validateCustomElementBundle } from './validate-custom-element-bundle'; export const validateOutputTargets = (config: d.ValidatedConfig, diagnostics: d.Diagnostic[]) => { const userOutputs = (config.outputTargets || []).slice(); diff --git a/src/compiler/config/outputs/validate-angular.ts b/src/compiler/config/outputs/validate-angular.ts index 8902a052da8..1c24f91c4c7 100644 --- a/src/compiler/config/outputs/validate-angular.ts +++ b/src/compiler/config/outputs/validate-angular.ts @@ -1,7 +1,8 @@ -import type * as d from '../../../declarations'; -import { isOutputTargetAngular } from '../../output-targets/output-utils'; import { isAbsolute, join } from 'path'; + +import type * as d from '../../../declarations'; import { OutputTargetAngular } from '../../../declarations'; +import { isOutputTargetAngular } from '../../output-targets/output-utils'; export const validateAngular = (config: d.ValidatedConfig, userOutputs: d.OutputTarget[]): OutputTargetAngular[] => { const angularOutputTargets = userOutputs.filter(isOutputTargetAngular); diff --git a/src/compiler/config/outputs/validate-collection.ts b/src/compiler/config/outputs/validate-collection.ts index 6b92d4e34cc..953e733b855 100644 --- a/src/compiler/config/outputs/validate-collection.ts +++ b/src/compiler/config/outputs/validate-collection.ts @@ -1,6 +1,6 @@ import type * as d from '../../../declarations'; -import { getAbsolutePath } from '../config-utils'; import { isOutputTargetDistCollection } from '../../output-targets/output-utils'; +import { getAbsolutePath } from '../config-utils'; /** * Validate and return DIST_COLLECTION output targets, ensuring that the `dir` diff --git a/src/compiler/config/outputs/validate-custom-element-bundle.ts b/src/compiler/config/outputs/validate-custom-element-bundle.ts index 5d2ec35f55d..f37459b32ba 100644 --- a/src/compiler/config/outputs/validate-custom-element-bundle.ts +++ b/src/compiler/config/outputs/validate-custom-element-bundle.ts @@ -1,7 +1,8 @@ +import { isBoolean } from '@utils'; + import type * as d from '../../../declarations'; import { COPY, isOutputTargetDistCustomElementsBundle } from '../../output-targets/output-utils'; import { getAbsolutePath } from '../config-utils'; -import { isBoolean } from '@utils'; import { validateCopy } from '../validate-copy'; export const validateCustomElementBundle = (config: d.ValidatedConfig, userOutputs: d.OutputTarget[]) => { diff --git a/src/compiler/config/outputs/validate-custom-element.ts b/src/compiler/config/outputs/validate-custom-element.ts index 451a827bc5f..48fa5810786 100644 --- a/src/compiler/config/outputs/validate-custom-element.ts +++ b/src/compiler/config/outputs/validate-custom-element.ts @@ -1,15 +1,16 @@ +import { isBoolean } from '@utils'; +import { join } from 'path'; + import type { OutputTarget, + OutputTargetCopy, OutputTargetDistCustomElements, OutputTargetDistTypes, - OutputTargetCopy, ValidatedConfig, } from '../../../declarations'; -import { getAbsolutePath } from '../config-utils'; import { COPY, DIST_TYPES, isOutputTargetDistCustomElements } from '../../output-targets/output-utils'; +import { getAbsolutePath } from '../config-utils'; import { validateCopy } from '../validate-copy'; -import { isBoolean } from '@utils'; -import { join } from 'path'; /** * Validate one or more `dist-custom-elements` output targets. Validation of an output target may involve back-filling diff --git a/src/compiler/config/outputs/validate-custom-output.ts b/src/compiler/config/outputs/validate-custom-output.ts index 3f422d4981d..7b05a7438ac 100644 --- a/src/compiler/config/outputs/validate-custom-output.ts +++ b/src/compiler/config/outputs/validate-custom-output.ts @@ -1,5 +1,6 @@ -import type * as d from '../../../declarations'; import { catchError } from '@utils'; + +import type * as d from '../../../declarations'; import { COPY, isOutputTargetCustom } from '../../output-targets/output-utils'; export const validateCustomOutput = ( diff --git a/src/compiler/config/outputs/validate-dist.ts b/src/compiler/config/outputs/validate-dist.ts index 2fc3853611c..b681bc87e81 100644 --- a/src/compiler/config/outputs/validate-dist.ts +++ b/src/compiler/config/outputs/validate-dist.ts @@ -1,5 +1,7 @@ +import { isBoolean, isString } from '@utils'; +import { isAbsolute, join, resolve } from 'path'; + import type * as d from '../../../declarations'; -import { getAbsolutePath } from '../config-utils'; import { COPY, DIST_COLLECTION, @@ -10,8 +12,7 @@ import { getComponentsDtsTypesFilePath, isOutputTargetDist, } from '../../output-targets/output-utils'; -import { isAbsolute, join, resolve } from 'path'; -import { isBoolean, isString } from '@utils'; +import { getAbsolutePath } from '../config-utils'; import { validateCopy } from '../validate-copy'; /** diff --git a/src/compiler/config/outputs/validate-docs.ts b/src/compiler/config/outputs/validate-docs.ts index a3c1cbd38f7..eb70aaab47a 100644 --- a/src/compiler/config/outputs/validate-docs.ts +++ b/src/compiler/config/outputs/validate-docs.ts @@ -1,13 +1,14 @@ -import type * as d from '../../../declarations'; import { buildError, isFunction, isString } from '@utils'; import { isAbsolute, join } from 'path'; + +import type * as d from '../../../declarations'; +import { NOTE } from '../../docs/constants'; import { isOutputTargetDocsCustom, isOutputTargetDocsJson, isOutputTargetDocsReadme, isOutputTargetDocsVscode, } from '../../output-targets/output-utils'; -import { NOTE } from '../../docs/constants'; export const validateDocs = (config: d.ValidatedConfig, diagnostics: d.Diagnostic[], userOutputs: d.OutputTarget[]) => { const docsOutputs: d.OutputTarget[] = []; diff --git a/src/compiler/config/outputs/validate-hydrate-script.ts b/src/compiler/config/outputs/validate-hydrate-script.ts index 1fe963447ea..baee5bc61c4 100644 --- a/src/compiler/config/outputs/validate-hydrate-script.ts +++ b/src/compiler/config/outputs/validate-hydrate-script.ts @@ -1,3 +1,6 @@ +import { isBoolean, isString } from '@utils'; +import { isAbsolute, join } from 'path'; + import type * as d from '../../../declarations'; import { DIST_HYDRATE_SCRIPT, @@ -5,8 +8,6 @@ import { isOutputTargetHydrate, isOutputTargetWww, } from '../../output-targets/output-utils'; -import { isBoolean, isString } from '@utils'; -import { isAbsolute, join } from 'path'; import { NODE_BUILTINS } from '../../sys/modules'; export const validateHydrateScript = (config: d.ValidatedConfig, userOutputs: d.OutputTarget[]) => { diff --git a/src/compiler/config/outputs/validate-lazy.ts b/src/compiler/config/outputs/validate-lazy.ts index 67d61dc6e3b..a5401c5a5ec 100644 --- a/src/compiler/config/outputs/validate-lazy.ts +++ b/src/compiler/config/outputs/validate-lazy.ts @@ -1,8 +1,9 @@ +import { isBoolean } from '@utils'; +import { join } from 'path'; + import type * as d from '../../../declarations'; import { DIST_LAZY, isOutputTargetDistLazy } from '../../output-targets/output-utils'; import { getAbsolutePath } from '../config-utils'; -import { isBoolean } from '@utils'; -import { join } from 'path'; export const validateLazy = (config: d.ValidatedConfig, userOutputs: d.OutputTarget[]) => { return userOutputs.filter(isOutputTargetDistLazy).map((o) => { diff --git a/src/compiler/config/outputs/validate-stats.ts b/src/compiler/config/outputs/validate-stats.ts index 30f4f9dd23f..722bfc255ad 100644 --- a/src/compiler/config/outputs/validate-stats.ts +++ b/src/compiler/config/outputs/validate-stats.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; import { isAbsolute, join } from 'path'; -import { STATS, isOutputTargetStats } from '../../output-targets/output-utils'; + +import type * as d from '../../../declarations'; +import { isOutputTargetStats, STATS } from '../../output-targets/output-utils'; export const validateStats = (userConfig: d.ValidatedConfig, userOutputs: d.OutputTarget[]) => { const outputTargets: d.OutputTargetStats[] = []; diff --git a/src/compiler/config/outputs/validate-www.ts b/src/compiler/config/outputs/validate-www.ts index 1bb5c9fdc78..1739ff22d38 100644 --- a/src/compiler/config/outputs/validate-www.ts +++ b/src/compiler/config/outputs/validate-www.ts @@ -1,15 +1,16 @@ -import type * as d from '../../../declarations'; import { buildError, isBoolean, isString } from '@utils'; +import { isAbsolute, join } from 'path'; + +import type * as d from '../../../declarations'; import { COPY, DIST_GLOBAL_STYLES, DIST_LAZY, - WWW, - isOutputTargetWww, isOutputTargetDist, + isOutputTargetWww, + WWW, } from '../../output-targets/output-utils'; import { getAbsolutePath } from '../config-utils'; -import { isAbsolute, join } from 'path'; import { validateCopy } from '../validate-copy'; import { validatePrerender } from '../validate-prerender'; import { validateServiceWorker } from '../validate-service-worker'; diff --git a/src/compiler/config/test/load-config.spec.ts b/src/compiler/config/test/load-config.spec.ts index af3328c54fe..40e94a8dd3f 100644 --- a/src/compiler/config/test/load-config.spec.ts +++ b/src/compiler/config/test/load-config.spec.ts @@ -1,9 +1,10 @@ -import type * as d from '../../../declarations'; -import { createSystem } from '../../../compiler/sys/stencil-sys'; -import { loadConfig } from '../load-config'; -import { normalizePath } from '../../../utils'; import path from 'path'; + import { ConfigFlags } from '../../../cli/config-flags'; +import { createSystem } from '../../../compiler/sys/stencil-sys'; +import type * as d from '../../../declarations'; +import { normalizePath } from '../../../utils'; +import { loadConfig } from '../load-config'; describe('load config', () => { const configPath = require.resolve('./fixtures/stencil.config.ts'); diff --git a/src/compiler/config/test/validate-config-sourcemap.spec.ts b/src/compiler/config/test/validate-config-sourcemap.spec.ts index af99e263333..63da72b6695 100644 --- a/src/compiler/config/test/validate-config-sourcemap.spec.ts +++ b/src/compiler/config/test/validate-config-sourcemap.spec.ts @@ -1,8 +1,9 @@ -import type * as d from '../../../declarations'; +import { mockLoadConfigInit } from '@stencil/core/testing'; +import path from 'path'; + import { createSystem } from '../../../compiler/sys/stencil-sys'; +import type * as d from '../../../declarations'; import { loadConfig } from '../load-config'; -import path from 'path'; -import { mockLoadConfigInit } from '@stencil/core/testing'; describe('stencil config - sourceMap option', () => { const configPath = require.resolve('./fixtures/stencil.config.ts'); diff --git a/src/compiler/config/test/validate-config.spec.ts b/src/compiler/config/test/validate-config.spec.ts index f3f11bb89e6..af900315835 100644 --- a/src/compiler/config/test/validate-config.spec.ts +++ b/src/compiler/config/test/validate-config.spec.ts @@ -1,8 +1,9 @@ import type * as d from '@stencil/core/declarations'; -import { mockLogger, mockCompilerSystem, mockLoadConfigInit } from '@stencil/core/testing'; +import { mockCompilerSystem, mockLoadConfigInit, mockLogger } from '@stencil/core/testing'; + import { createConfigFlags } from '../../../cli/config-flags'; import { isWatchIgnorePath } from '../../fs-watch/fs-watch-rebuild'; -import { DOCS_JSON, DOCS_CUSTOM, DOCS_README, DOCS_VSCODE } from '../../output-targets/output-utils'; +import { DOCS_CUSTOM, DOCS_JSON, DOCS_README, DOCS_VSCODE } from '../../output-targets/output-utils'; import { validateConfig } from '../validate-config'; describe('validation', () => { diff --git a/src/compiler/config/test/validate-custom.spec.ts b/src/compiler/config/test/validate-custom.spec.ts index c5d4513dbad..3b64c354e88 100644 --- a/src/compiler/config/test/validate-custom.spec.ts +++ b/src/compiler/config/test/validate-custom.spec.ts @@ -1,8 +1,9 @@ import type * as d from '@stencil/core/declarations'; import { mockConfig, mockLoadConfigInit } from '@stencil/core/testing'; -import { validateConfig } from '../validate-config'; import { buildWarn } from '@utils'; +import { validateConfig } from '../validate-config'; + describe('validateCustom', () => { let userConfig: d.Config; diff --git a/src/compiler/config/test/validate-dev-server.spec.ts b/src/compiler/config/test/validate-dev-server.spec.ts index 811c1cbdda7..9e6ff619cfe 100644 --- a/src/compiler/config/test/validate-dev-server.spec.ts +++ b/src/compiler/config/test/validate-dev-server.spec.ts @@ -1,9 +1,10 @@ +import { mockLoadConfigInit } from '@stencil/core/testing'; +import path from 'path'; + +import { ConfigFlags, createConfigFlags } from '../../../cli/config-flags'; import type * as d from '../../../declarations'; import { normalizePath } from '../../../utils'; import { validateConfig } from '../validate-config'; -import path from 'path'; -import { ConfigFlags, createConfigFlags } from '../../../cli/config-flags'; -import { mockLoadConfigInit } from '@stencil/core/testing'; describe('validateDevServer', () => { const root = path.resolve('/'); diff --git a/src/compiler/config/test/validate-docs.spec.ts b/src/compiler/config/test/validate-docs.spec.ts index 8190eae5270..be273e4fdc0 100644 --- a/src/compiler/config/test/validate-docs.spec.ts +++ b/src/compiler/config/test/validate-docs.spec.ts @@ -1,5 +1,6 @@ import type * as d from '@stencil/core/declarations'; import { mockConfig, mockLoadConfigInit } from '@stencil/core/testing'; + import { validateConfig } from '../validate-config'; describe('validateDocs', () => { diff --git a/src/compiler/config/test/validate-namespace.spec.ts b/src/compiler/config/test/validate-namespace.spec.ts index 6eea9f3bbb1..5d402b60c67 100644 --- a/src/compiler/config/test/validate-namespace.spec.ts +++ b/src/compiler/config/test/validate-namespace.spec.ts @@ -1,4 +1,5 @@ import type * as d from '@stencil/core/declarations'; + import { validateNamespace } from '../validate-namespace'; describe('validateNamespace', () => { diff --git a/src/compiler/config/test/validate-output-dist-collection.spec.ts b/src/compiler/config/test/validate-output-dist-collection.spec.ts index f87a23b4cf4..06911fc810d 100644 --- a/src/compiler/config/test/validate-output-dist-collection.spec.ts +++ b/src/compiler/config/test/validate-output-dist-collection.spec.ts @@ -1,7 +1,8 @@ import type * as d from '@stencil/core/declarations'; -import { validateConfig } from '../validate-config'; import { mockConfig, mockLoadConfigInit } from '@stencil/core/testing'; -import { resolve, join } from 'path'; +import { join, resolve } from 'path'; + +import { validateConfig } from '../validate-config'; describe('validateDistCollectionOutputTarget', () => { let config: d.Config; diff --git a/src/compiler/config/test/validate-output-dist-custom-element.spec.ts b/src/compiler/config/test/validate-output-dist-custom-element.spec.ts index 6926cf00459..546206e5723 100644 --- a/src/compiler/config/test/validate-output-dist-custom-element.spec.ts +++ b/src/compiler/config/test/validate-output-dist-custom-element.spec.ts @@ -1,8 +1,9 @@ import type * as d from '@stencil/core/declarations'; import { mockConfig, mockLoadConfigInit } from '@stencil/core/testing'; +import path from 'path'; + import { COPY, DIST_CUSTOM_ELEMENTS, DIST_TYPES } from '../../output-targets/output-utils'; import { validateConfig } from '../validate-config'; -import path from 'path'; describe('validate-output-dist-custom-element', () => { describe('validateCustomElement', () => { diff --git a/src/compiler/config/test/validate-output-dist.spec.ts b/src/compiler/config/test/validate-output-dist.spec.ts index b5a8417caec..da50a49056e 100644 --- a/src/compiler/config/test/validate-output-dist.spec.ts +++ b/src/compiler/config/test/validate-output-dist.spec.ts @@ -1,8 +1,9 @@ import type * as d from '@stencil/core/declarations'; -import { validateConfig } from '../validate-config'; import { mockConfig, mockLoadConfigInit } from '@stencil/core/testing'; import path from 'path'; +import { validateConfig } from '../validate-config'; + describe('validateDistOutputTarget', () => { const rootDir = path.resolve('/'); diff --git a/src/compiler/config/test/validate-output-www.spec.ts b/src/compiler/config/test/validate-output-www.spec.ts index 0967fcaaafc..ed131b8465c 100644 --- a/src/compiler/config/test/validate-output-www.spec.ts +++ b/src/compiler/config/test/validate-output-www.spec.ts @@ -1,9 +1,10 @@ import type * as d from '@stencil/core/declarations'; -import { isOutputTargetCopy, isOutputTargetHydrate, isOutputTargetWww } from '../../output-targets/output-utils'; -import { validateConfig } from '../validate-config'; +import { mockLoadConfigInit } from '@stencil/core/testing'; import path from 'path'; + import { ConfigFlags, createConfigFlags } from '../../../cli/config-flags'; -import { mockLoadConfigInit } from '@stencil/core/testing'; +import { isOutputTargetCopy, isOutputTargetHydrate, isOutputTargetWww } from '../../output-targets/output-utils'; +import { validateConfig } from '../validate-config'; describe('validateOutputTargetWww', () => { const rootDir = path.resolve('/'); diff --git a/src/compiler/config/test/validate-paths.spec.ts b/src/compiler/config/test/validate-paths.spec.ts index 9e59466d44d..3eb4e28a7f4 100644 --- a/src/compiler/config/test/validate-paths.spec.ts +++ b/src/compiler/config/test/validate-paths.spec.ts @@ -1,8 +1,9 @@ import type * as d from '@stencil/core/declarations'; -import { mockLogger, mockCompilerSystem, mockLoadConfigInit } from '@stencil/core/testing'; -import { validateConfig } from '../validate-config'; +import { mockCompilerSystem, mockLoadConfigInit, mockLogger } from '@stencil/core/testing'; import path from 'path'; +import { validateConfig } from '../validate-config'; + describe('validatePaths', () => { let userConfig: d.Config; const logger = mockLogger(); diff --git a/src/compiler/config/test/validate-rollup-config.spec.ts b/src/compiler/config/test/validate-rollup-config.spec.ts index 35a2054eceb..3040a929f01 100644 --- a/src/compiler/config/test/validate-rollup-config.spec.ts +++ b/src/compiler/config/test/validate-rollup-config.spec.ts @@ -1,4 +1,5 @@ import type * as d from '@stencil/core/declarations'; + import { validateRollupConfig } from '../validate-rollup-config'; describe('validateStats', () => { diff --git a/src/compiler/config/test/validate-service-worker.spec.ts b/src/compiler/config/test/validate-service-worker.spec.ts index eef63779ea5..f6dc7df07cd 100644 --- a/src/compiler/config/test/validate-service-worker.spec.ts +++ b/src/compiler/config/test/validate-service-worker.spec.ts @@ -1,6 +1,7 @@ import type * as d from '@stencil/core/declarations'; import { OutputTargetWww } from '@stencil/core/declarations'; import { mockCompilerSystem, mockLogger } from '@stencil/core/testing'; + import { createConfigFlags } from '../../../cli/config-flags'; import { validateServiceWorker } from '../validate-service-worker'; diff --git a/src/compiler/config/test/validate-stats.spec.ts b/src/compiler/config/test/validate-stats.spec.ts index 704b7740507..f2a95c7513a 100644 --- a/src/compiler/config/test/validate-stats.spec.ts +++ b/src/compiler/config/test/validate-stats.spec.ts @@ -1,5 +1,6 @@ import type * as d from '@stencil/core/declarations'; import { mockConfig, mockLoadConfigInit } from '@stencil/core/testing'; + import { validateConfig } from '../validate-config'; describe('validateStats', () => { diff --git a/src/compiler/config/test/validate-testing.spec.ts b/src/compiler/config/test/validate-testing.spec.ts index 500ec227f2b..129274795c9 100644 --- a/src/compiler/config/test/validate-testing.spec.ts +++ b/src/compiler/config/test/validate-testing.spec.ts @@ -1,8 +1,9 @@ import type * as d from '@stencil/core/declarations'; -import { mockLogger, mockCompilerSystem, mockLoadConfigInit } from '@stencil/core/testing'; -import { validateConfig } from '../validate-config'; +import { mockCompilerSystem, mockLoadConfigInit, mockLogger } from '@stencil/core/testing'; import path from 'path'; + import { ConfigFlags, createConfigFlags } from '../../../cli/config-flags'; +import { validateConfig } from '../validate-config'; describe('validateTesting', () => { const ROOT = path.resolve('/'); diff --git a/src/compiler/config/test/validate-workers.spec.ts b/src/compiler/config/test/validate-workers.spec.ts index 699a57351fe..715a37eb0c1 100644 --- a/src/compiler/config/test/validate-workers.spec.ts +++ b/src/compiler/config/test/validate-workers.spec.ts @@ -1,8 +1,9 @@ import type * as d from '@stencil/core/declarations'; -import { validateConfig } from '../validate-config'; import { mockLoadConfigInit, mockLogger } from '@stencil/core/testing'; import path from 'path'; + import { createConfigFlags } from '../../../cli/config-flags'; +import { validateConfig } from '../validate-config'; describe('validate-workers', () => { let userConfig: d.Config; diff --git a/src/compiler/config/transpile-options.ts b/src/compiler/config/transpile-options.ts index ab9baa921bf..2f81f395d72 100644 --- a/src/compiler/config/transpile-options.ts +++ b/src/compiler/config/transpile-options.ts @@ -1,18 +1,19 @@ +import { isString } from '@utils'; +import type { CompilerOptions } from 'typescript'; + import type { - TranspileOptions, - TranspileResults, + CompilerSystem, Config, - TransformOptions, - TransformCssToEsmInput, ImportData, - CompilerSystem, + TransformCssToEsmInput, + TransformOptions, + TranspileOptions, + TranspileResults, } from '../../declarations'; -import { createSystem } from '../sys/stencil-sys'; +import { STENCIL_INTERNAL_CLIENT_ID } from '../bundle/entry-alias-ids'; import { IS_NODE_ENV, requireFunc } from '../sys/environment'; -import { isString } from '@utils'; +import { createSystem } from '../sys/stencil-sys'; import { parseImportPath } from '../transformers/stencil-import-path'; -import { STENCIL_INTERNAL_CLIENT_ID } from '../bundle/entry-alias-ids'; -import type { CompilerOptions } from 'typescript'; export const getTranspileResults = (code: string, input: TranspileOptions) => { if (!isString(input.file)) { diff --git a/src/compiler/config/validate-config.ts b/src/compiler/config/validate-config.ts index ad45239cf76..6eba8452ccb 100644 --- a/src/compiler/config/validate-config.ts +++ b/src/compiler/config/validate-config.ts @@ -1,18 +1,19 @@ -import { ConfigBundle, Diagnostic, ValidatedConfig, UnvalidatedConfig, LoadConfigInit } from '../../declarations'; import { buildError, isBoolean, isNumber, isString, sortBy } from '@utils'; + +import { ConfigBundle, Diagnostic, LoadConfigInit, UnvalidatedConfig, ValidatedConfig } from '../../declarations'; +import { createLogger } from '../sys/logger/console-logger'; +import { createSystem } from '../sys/stencil-sys'; import { setBooleanConfig } from './config-utils'; +import { validateOutputTargets } from './outputs'; import { validateDevServer } from './validate-dev-server'; -import { validateDistNamespace } from './validate-namespace'; import { validateHydrated } from './validate-hydrated'; +import { validateDistNamespace } from './validate-namespace'; import { validateNamespace } from './validate-namespace'; -import { validateOutputTargets } from './outputs'; import { validatePaths } from './validate-paths'; import { validatePlugins } from './validate-plugins'; import { validateRollupConfig } from './validate-rollup-config'; import { validateTesting } from './validate-testing'; import { validateWorkers } from './validate-workers'; -import { createLogger } from '../sys/logger/console-logger'; -import { createSystem } from '../sys/stencil-sys'; /** * Represents the results of validating a previously unvalidated configuration diff --git a/src/compiler/config/validate-copy.ts b/src/compiler/config/validate-copy.ts index 4597fccf7d3..7dd4a2c1629 100644 --- a/src/compiler/config/validate-copy.ts +++ b/src/compiler/config/validate-copy.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { unique } from '@utils'; +import type * as d from '../../declarations'; + export const validateCopy = (copy: d.CopyTask[] | boolean, defaultCopy: d.CopyTask[] = []): d.CopyTask[] => { if (copy === null || copy === false) { return []; diff --git a/src/compiler/config/validate-dev-server.ts b/src/compiler/config/validate-dev-server.ts index 8b19f896001..e5e406eacb9 100644 --- a/src/compiler/config/validate-dev-server.ts +++ b/src/compiler/config/validate-dev-server.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { buildError, isBoolean, isNumber, isString, normalizePath } from '@utils'; import { isAbsolute, join } from 'path'; + +import type * as d from '../../declarations'; import { isOutputTargetWww } from '../output-targets/output-utils'; export const validateDevServer = ( diff --git a/src/compiler/config/validate-hydrated.ts b/src/compiler/config/validate-hydrated.ts index 0335567a8a1..3ec8954a6bc 100644 --- a/src/compiler/config/validate-hydrated.ts +++ b/src/compiler/config/validate-hydrated.ts @@ -1,6 +1,7 @@ -import { HydratedFlag, UnvalidatedConfig } from '../../declarations'; import { isString } from '@utils'; +import { HydratedFlag, UnvalidatedConfig } from '../../declarations'; + /** * Check the provided `.hydratedFlag` prop and return a properly-validated value. * diff --git a/src/compiler/config/validate-namespace.ts b/src/compiler/config/validate-namespace.ts index d6f98de2a5f..c8b24ffa332 100644 --- a/src/compiler/config/validate-namespace.ts +++ b/src/compiler/config/validate-namespace.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { buildError, dashToPascalCase, isString } from '@utils'; + +import type * as d from '../../declarations'; import { isOutputTargetDist } from '../output-targets/output-utils'; export const validateNamespace = (c: d.UnvalidatedConfig, diagnostics: d.Diagnostic[]) => { diff --git a/src/compiler/config/validate-paths.ts b/src/compiler/config/validate-paths.ts index 0a5f26c0ed6..a14668f218f 100644 --- a/src/compiler/config/validate-paths.ts +++ b/src/compiler/config/validate-paths.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { isAbsolute, join } from 'path'; +import type * as d from '../../declarations'; + /** * Do logical-level validation (as opposed to type-level validation) * for various properties in the user-supplied config which represent diff --git a/src/compiler/config/validate-plugins.ts b/src/compiler/config/validate-plugins.ts index d8822aebe27..55655eb779a 100644 --- a/src/compiler/config/validate-plugins.ts +++ b/src/compiler/config/validate-plugins.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { buildWarn } from '@utils'; +import type * as d from '../../declarations'; + export const validatePlugins = (config: d.UnvalidatedConfig, diagnostics: d.Diagnostic[]) => { const userPlugins = config.plugins; diff --git a/src/compiler/config/validate-prerender.ts b/src/compiler/config/validate-prerender.ts index b46bc86cb46..20f9761ce52 100644 --- a/src/compiler/config/validate-prerender.ts +++ b/src/compiler/config/validate-prerender.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; import { buildError, isString, normalizePath } from '@utils'; import { isAbsolute, join } from 'path'; +import type * as d from '../../declarations'; + export const validatePrerender = ( config: d.ValidatedConfig, diagnostics: d.Diagnostic[], diff --git a/src/compiler/config/validate-rollup-config.ts b/src/compiler/config/validate-rollup-config.ts index 4fb8ff701f0..e0ac9ab361d 100644 --- a/src/compiler/config/validate-rollup-config.ts +++ b/src/compiler/config/validate-rollup-config.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { isObject, pluck } from '@utils'; +import type * as d from '../../declarations'; + export const validateRollupConfig = (config: d.UnvalidatedConfig): void => { const cleanRollupConfig = getCleanRollupConfig(config.rollupConfig); config.rollupConfig = cleanRollupConfig; diff --git a/src/compiler/config/validate-service-worker.ts b/src/compiler/config/validate-service-worker.ts index 9b145e2096c..b3dbcc1842d 100644 --- a/src/compiler/config/validate-service-worker.ts +++ b/src/compiler/config/validate-service-worker.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; -import { isAbsolute, join } from 'path'; import { isString } from '@utils'; +import { isAbsolute, join } from 'path'; + +import type * as d from '../../declarations'; export const validateServiceWorker = (config: d.ValidatedConfig, outputTarget: d.OutputTargetWww) => { if (outputTarget.serviceWorker === false) { diff --git a/src/compiler/config/validate-testing.ts b/src/compiler/config/validate-testing.ts index 30d219cf2f6..d7cc5de350c 100644 --- a/src/compiler/config/validate-testing.ts +++ b/src/compiler/config/validate-testing.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; import { buildError, isString } from '@utils'; -import { isAbsolute, join, basename, dirname } from 'path'; -import { isLocalModule } from '../sys/resolve/resolve-utils'; +import { basename, dirname, isAbsolute, join } from 'path'; + +import type * as d from '../../declarations'; import { isOutputTargetDist, isOutputTargetWww } from '../output-targets/output-utils'; +import { isLocalModule } from '../sys/resolve/resolve-utils'; export const validateTesting = (config: d.ValidatedConfig, diagnostics: d.Diagnostic[]) => { const testing = (config.testing = Object.assign({}, config.testing || {})); diff --git a/src/compiler/docs/generate-doc-data.ts b/src/compiler/docs/generate-doc-data.ts index 89cf9d48dc7..7eb7a33be59 100644 --- a/src/compiler/docs/generate-doc-data.ts +++ b/src/compiler/docs/generate-doc-data.ts @@ -1,10 +1,11 @@ -import type * as d from '../../declarations'; -import { AUTO_GENERATE_COMMENT } from './constants'; -import { basename, dirname, join, relative } from 'path'; import { flatOne, normalizePath, sortBy, unique } from '@utils'; -import { getBuildTimestamp } from '../build/build-ctx'; +import { basename, dirname, join, relative } from 'path'; + +import type * as d from '../../declarations'; import { JsonDocsValue } from '../../declarations'; import { typescriptVersion, version } from '../../version'; +import { getBuildTimestamp } from '../build/build-ctx'; +import { AUTO_GENERATE_COMMENT } from './constants'; export const generateDocData = async ( config: d.ValidatedConfig, diff --git a/src/compiler/docs/json/index.ts b/src/compiler/docs/json/index.ts index 83d326d5948..12d087116aa 100644 --- a/src/compiler/docs/json/index.ts +++ b/src/compiler/docs/json/index.ts @@ -1,6 +1,7 @@ +import { join } from 'path'; + import type * as d from '../../../declarations'; import { isOutputTargetDocsJson } from '../../output-targets/output-utils'; -import { join } from 'path'; export const generateJsonDocs = async ( config: d.ValidatedConfig, diff --git a/src/compiler/docs/readme/index.ts b/src/compiler/docs/readme/index.ts index 35db4dec604..6f1724c02e5 100644 --- a/src/compiler/docs/readme/index.ts +++ b/src/compiler/docs/readme/index.ts @@ -1,6 +1,6 @@ import type * as d from '../../../declarations'; -import { generateReadme } from './output-docs'; import { isOutputTargetDocsReadme } from '../../output-targets/output-utils'; +import { generateReadme } from './output-docs'; export const generateReadmeDocs = async ( config: d.ValidatedConfig, diff --git a/src/compiler/docs/readme/markdown-dependencies.ts b/src/compiler/docs/readme/markdown-dependencies.ts index ce21bb4208f..86f256b55b5 100644 --- a/src/compiler/docs/readme/markdown-dependencies.ts +++ b/src/compiler/docs/readme/markdown-dependencies.ts @@ -1,7 +1,8 @@ -import type * as d from '../../../declarations'; import { normalizePath } from '@utils'; import { relative } from 'path'; +import type * as d from '../../../declarations'; + export const depsToMarkdown = (cmp: d.JsonDocsComponent, cmps: d.JsonDocsComponent[]) => { const content: string[] = []; const deps = Object.entries(cmp.dependencyGraph); diff --git a/src/compiler/docs/readme/markdown-usage.ts b/src/compiler/docs/readme/markdown-usage.ts index 8ed31e3b769..fcfce66bfd1 100644 --- a/src/compiler/docs/readme/markdown-usage.ts +++ b/src/compiler/docs/readme/markdown-usage.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; import { toTitleCase } from '@utils'; +import type * as d from '../../../declarations'; + export const usageToMarkdown = (usages: d.JsonDocsUsage) => { const content: string[] = []; const merged = mergeUsages(usages); diff --git a/src/compiler/docs/readme/output-docs.ts b/src/compiler/docs/readme/output-docs.ts index 0d72304c307..927d8752ab4 100644 --- a/src/compiler/docs/readme/output-docs.ts +++ b/src/compiler/docs/readme/output-docs.ts @@ -1,14 +1,15 @@ +import { join, relative } from 'path'; + import type * as d from '../../../declarations'; -import { propsToMarkdown } from './markdown-props'; +import { AUTO_GENERATE_COMMENT } from '../constants'; +import { stylesToMarkdown } from './markdown-css-props'; +import { depsToMarkdown } from './markdown-dependencies'; import { eventsToMarkdown } from './markdown-events'; -import { join, relative } from 'path'; import { methodsToMarkdown } from './markdown-methods'; -import { usageToMarkdown } from './markdown-usage'; -import { stylesToMarkdown } from './markdown-css-props'; -import { slotsToMarkdown } from './markdown-slots'; import { partsToMarkdown } from './markdown-parts'; -import { depsToMarkdown } from './markdown-dependencies'; -import { AUTO_GENERATE_COMMENT } from '../constants'; +import { propsToMarkdown } from './markdown-props'; +import { slotsToMarkdown } from './markdown-slots'; +import { usageToMarkdown } from './markdown-usage'; export const generateReadme = async ( config: d.ValidatedConfig, diff --git a/src/compiler/docs/test/style-docs.spec.ts b/src/compiler/docs/test/style-docs.spec.ts index 50f99ecd419..524cbb7bce1 100644 --- a/src/compiler/docs/test/style-docs.spec.ts +++ b/src/compiler/docs/test/style-docs.spec.ts @@ -1,4 +1,5 @@ import type * as d from '@stencil/core/declarations'; + import { parseStyleDocs } from '../style-docs'; describe('style-docs', () => { diff --git a/src/compiler/docs/vscode/index.ts b/src/compiler/docs/vscode/index.ts index 11bbc2a867e..b866c482d87 100644 --- a/src/compiler/docs/vscode/index.ts +++ b/src/compiler/docs/vscode/index.ts @@ -1,7 +1,8 @@ +import { join } from 'path'; + import type * as d from '../../../declarations'; -import { getNameText } from '../generate-doc-data'; import { isOutputTargetDocsVscode } from '../../output-targets/output-utils'; -import { join } from 'path'; +import { getNameText } from '../generate-doc-data'; /** * Generate [custom data](https://github.com/microsoft/vscode-custom-data) to augment existing HTML types in VS Code. diff --git a/src/compiler/entries/component-bundles.ts b/src/compiler/entries/component-bundles.ts index 621fd7c904d..d6490694138 100644 --- a/src/compiler/entries/component-bundles.ts +++ b/src/compiler/entries/component-bundles.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { sortBy } from '@utils'; + +import type * as d from '../../declarations'; import { getDefaultBundles } from './default-bundles'; /** diff --git a/src/compiler/entries/default-bundles.ts b/src/compiler/entries/default-bundles.ts index 827f35ea2fb..c28e1b28dfb 100644 --- a/src/compiler/entries/default-bundles.ts +++ b/src/compiler/entries/default-bundles.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { buildError, buildWarn, flatOne, unique, validateComponentTag } from '@utils'; + +import type * as d from '../../declarations'; import { getUsedComponents } from '../html/used-components'; /** diff --git a/src/compiler/entries/resolve-component-dependencies.ts b/src/compiler/entries/resolve-component-dependencies.ts index b374a51357c..43e6815dccb 100644 --- a/src/compiler/entries/resolve-component-dependencies.ts +++ b/src/compiler/entries/resolve-component-dependencies.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { flatOne, unique } from '@utils'; +import type * as d from '../../declarations'; + export function resolveComponentDependencies(cmps: d.ComponentCompilerMeta[]) { computeDependencies(cmps); computeDependents(cmps); diff --git a/src/compiler/fs-watch/fs-watch-rebuild.ts b/src/compiler/fs-watch/fs-watch-rebuild.ts index 8fd73d913e9..eb81950a1ce 100644 --- a/src/compiler/fs-watch/fs-watch-rebuild.ts +++ b/src/compiler/fs-watch/fs-watch-rebuild.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; -import { basename } from 'path'; import { isString, unique } from '@utils'; -import { isOutputTargetDocsJson, isOutputTargetStats, isOutputTargetDocsVscode } from '../output-targets/output-utils'; +import { basename } from 'path'; + +import type * as d from '../../declarations'; +import { isOutputTargetDocsJson, isOutputTargetDocsVscode, isOutputTargetStats } from '../output-targets/output-utils'; export const filesChanged = (buildCtx: d.BuildCtx) => { // files changed include updated, added and deleted diff --git a/src/compiler/html/add-script-attr.ts b/src/compiler/html/add-script-attr.ts index 4d3174240db..53c9c7d249b 100644 --- a/src/compiler/html/add-script-attr.ts +++ b/src/compiler/html/add-script-attr.ts @@ -1,6 +1,7 @@ +import { join } from 'path'; + import type * as d from '../../declarations'; import { getAbsoluteBuildDir } from './html-utils'; -import { join } from 'path'; export const addScriptDataAttribute = (config: d.Config, doc: Document, outputTarget: d.OutputTargetWww) => { const resourcesUrl = getAbsoluteBuildDir(outputTarget); diff --git a/src/compiler/html/html-utils.ts b/src/compiler/html/html-utils.ts index d22ef0025cd..9fc41dbc6c8 100644 --- a/src/compiler/html/html-utils.ts +++ b/src/compiler/html/html-utils.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { join, relative } from 'path'; +import type * as d from '../../declarations'; + export const getAbsoluteBuildDir = (outputTarget: d.OutputTargetWww) => { const relativeBuildDir = relative(outputTarget.dir, outputTarget.buildDir); return join('/', relativeBuildDir) + '/'; diff --git a/src/compiler/html/inject-module-preloads.ts b/src/compiler/html/inject-module-preloads.ts index 9717197864d..0b200a4a51d 100644 --- a/src/compiler/html/inject-module-preloads.ts +++ b/src/compiler/html/inject-module-preloads.ts @@ -1,6 +1,7 @@ +import { join } from 'path'; + import type * as d from '../../declarations'; import { getAbsoluteBuildDir } from './html-utils'; -import { join } from 'path'; export const optimizeCriticalPath = (doc: Document, criticalBundlers: string[], outputTarget: d.OutputTargetWww) => { const buildDir = getAbsoluteBuildDir(outputTarget); diff --git a/src/compiler/html/inject-sw-script.ts b/src/compiler/html/inject-sw-script.ts index 20f5b3c9a6e..bc18c6c2365 100644 --- a/src/compiler/html/inject-sw-script.ts +++ b/src/compiler/html/inject-sw-script.ts @@ -1,6 +1,6 @@ import type * as d from '../../declarations'; +import { getRegisterSW, UNREGISTER_SW } from '../service-worker/generate-sw'; import { generateServiceWorkerUrl } from '../service-worker/service-worker-util'; -import { UNREGISTER_SW, getRegisterSW } from '../service-worker/generate-sw'; export const updateIndexHtmlServiceWorker = async ( config: d.Config, diff --git a/src/compiler/html/inline-esm-import.ts b/src/compiler/html/inline-esm-import.ts index 72097ae5e71..29e3ffd7761 100644 --- a/src/compiler/html/inline-esm-import.ts +++ b/src/compiler/html/inline-esm-import.ts @@ -1,11 +1,12 @@ -import type * as d from '../../declarations'; -import { getAbsoluteBuildDir } from './html-utils'; -import { generateHashedCopy } from '../output-targets/copy/hashed-copy'; -import { injectModulePreloads } from './inject-module-preloads'; import { isString } from '@utils'; import { join } from 'path'; import ts from 'typescript'; +import type * as d from '../../declarations'; +import { generateHashedCopy } from '../output-targets/copy/hashed-copy'; +import { getAbsoluteBuildDir } from './html-utils'; +import { injectModulePreloads } from './inject-module-preloads'; + export const optimizeEsmImport = async ( config: d.Config, compilerCtx: d.CompilerCtx, diff --git a/src/compiler/html/inline-style-sheets.ts b/src/compiler/html/inline-style-sheets.ts index 3ffe53157da..83d0eb32a4b 100644 --- a/src/compiler/html/inline-style-sheets.ts +++ b/src/compiler/html/inline-style-sheets.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { join } from 'path'; +import type * as d from '../../declarations'; + export const inlineStyleSheets = ( compilerCtx: d.CompilerCtx, doc: Document, diff --git a/src/compiler/html/remove-unused-styles.ts b/src/compiler/html/remove-unused-styles.ts index 33b6624ca4e..ff160d31f1c 100644 --- a/src/compiler/html/remove-unused-styles.ts +++ b/src/compiler/html/remove-unused-styles.ts @@ -1,8 +1,9 @@ +import { catchError, hasError } from '@utils'; + import type * as d from '../../declarations'; -import { getUsedSelectors, UsedSelectors } from '../style/css-parser/used-selectors'; -import { hasError, catchError } from '@utils'; import { parseCss } from '../style/css-parser/parse-css'; import { serializeCss } from '../style/css-parser/serialize-css'; +import { getUsedSelectors, UsedSelectors } from '../style/css-parser/used-selectors'; export const removeUnusedStyles = (doc: Document, diagnostics: d.Diagnostic[]) => { try { diff --git a/src/compiler/html/test/remove-unused-styles.spec.ts b/src/compiler/html/test/remove-unused-styles.spec.ts index 3f0f1b7a09a..8936bbcdb55 100644 --- a/src/compiler/html/test/remove-unused-styles.spec.ts +++ b/src/compiler/html/test/remove-unused-styles.spec.ts @@ -1,5 +1,6 @@ import type * as d from '@stencil/core/declarations'; import { mockDocument } from '@stencil/core/testing'; + import { removeUnusedStyles } from '../remove-unused-styles'; describe('removeUnusedStyles', () => { diff --git a/src/compiler/html/update-global-styles-link.ts b/src/compiler/html/update-global-styles-link.ts index 4a040e4eb75..6868b1cdc33 100644 --- a/src/compiler/html/update-global-styles-link.ts +++ b/src/compiler/html/update-global-styles-link.ts @@ -1,6 +1,7 @@ +import { join } from 'path'; + import type * as d from '../../declarations'; import { getAbsoluteBuildDir } from './html-utils'; -import { join } from 'path'; export const updateGlobalStylesLink = ( config: d.Config, diff --git a/src/compiler/html/validate-manifest-json.ts b/src/compiler/html/validate-manifest-json.ts index b82584ec617..2a8a3b9bf63 100644 --- a/src/compiler/html/validate-manifest-json.ts +++ b/src/compiler/html/validate-manifest-json.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { buildError, buildJsonFileError } from '@utils'; import { dirname, join } from 'path'; + +import type * as d from '../../declarations'; import { isOutputTargetWww } from '../output-targets/output-utils'; export const validateManifestJson = (config: d.ValidatedConfig, compilerCtx: d.CompilerCtx, buildCtx: d.BuildCtx) => { diff --git a/src/compiler/index.ts b/src/compiler/index.ts index f17d731c073..feef318e4b4 100644 --- a/src/compiler/index.ts +++ b/src/compiler/index.ts @@ -1,25 +1,26 @@ +import ts from 'typescript'; + +import { IS_WEB_WORKER_ENV } from './sys/environment'; import { createSystem } from './sys/stencil-sys'; -import { createWorkerMessageHandler } from './worker/worker-thread'; import { initWebWorkerThread } from './sys/worker/web-worker-thread'; -import { IS_WEB_WORKER_ENV } from './sys/environment'; -import ts from 'typescript'; +import { createWorkerMessageHandler } from './worker/worker-thread'; export { FsWriteResults } from './sys/in-memory-fs'; if (IS_WEB_WORKER_ENV) { initWebWorkerThread(createWorkerMessageHandler(createSystem())); } +export { buildId, vermoji, version, versions } from '../version'; export { createCompiler } from './compiler'; -export { createPrerenderer } from './prerender/prerender-main'; -export { createSystem } from './sys/stencil-sys'; -export { createWorkerContext } from './worker/worker-thread'; -export { createWorkerMessageHandler } from './worker/worker-thread'; -export { dependencies } from './sys/dependencies.json'; export { loadConfig } from './config/load-config'; -export { nodeRequire } from './sys/node-require'; export { optimizeCss } from './optimize/optimize-css'; export { optimizeJs } from './optimize/optimize-js'; +export { createPrerenderer } from './prerender/prerender-main'; +export { dependencies } from './sys/dependencies.json'; export { path } from './sys/modules/path'; +export { nodeRequire } from './sys/node-require'; +export { createSystem } from './sys/stencil-sys'; export { transpile, transpileSync } from './transpile'; -export { version, versions, vermoji, buildId } from '../version'; +export { createWorkerContext } from './worker/worker-thread'; +export { createWorkerMessageHandler } from './worker/worker-thread'; export { ts }; diff --git a/src/compiler/optimize/autoprefixer.ts b/src/compiler/optimize/autoprefixer.ts index c27f0488c4e..d2301d585bc 100644 --- a/src/compiler/optimize/autoprefixer.ts +++ b/src/compiler/optimize/autoprefixer.ts @@ -1,6 +1,7 @@ +import { Postcss } from 'postcss'; + import type * as d from '../../declarations'; import { IS_NODE_ENV, requireFunc } from '../sys/environment'; -import { Postcss } from 'postcss'; type CssProcessor = ReturnType; let cssProcessor: CssProcessor; diff --git a/src/compiler/optimize/minify-css.ts b/src/compiler/optimize/minify-css.ts index 8e0b1018243..4e44db71dbf 100644 --- a/src/compiler/optimize/minify-css.ts +++ b/src/compiler/optimize/minify-css.ts @@ -1,5 +1,6 @@ -import { CssNode, CssNodeType } from '../style/css-parser/css-parse-declarations'; import { hasError, isFunction, isString } from '@utils'; + +import { CssNode, CssNodeType } from '../style/css-parser/css-parse-declarations'; import { parseCss } from '../style/css-parser/parse-css'; import { serializeCss } from '../style/css-parser/serialize-css'; diff --git a/src/compiler/optimize/minify-js.ts b/src/compiler/optimize/minify-js.ts index 2f3b03214de..0a081ebbf96 100644 --- a/src/compiler/optimize/minify-js.ts +++ b/src/compiler/optimize/minify-js.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { splitLineBreaks } from '@utils'; -import { CompressOptions, MangleOptions, ManglePropertiesOptions, MinifyOptions, minify } from 'terser'; +import { CompressOptions, MangleOptions, ManglePropertiesOptions, minify, MinifyOptions } from 'terser'; + +import type * as d from '../../declarations'; /** * Performs the minification of JavaScript source diff --git a/src/compiler/optimize/optimize-css.ts b/src/compiler/optimize/optimize-css.ts index 2bd948eacd7..dbbf85af62c 100644 --- a/src/compiler/optimize/optimize-css.ts +++ b/src/compiler/optimize/optimize-css.ts @@ -1,6 +1,7 @@ +import { hasError } from '@utils'; + import { OptimizeCssInput, OptimizeCssOutput } from '../../declarations'; import { autoprefixCss } from './autoprefixer'; -import { hasError } from '@utils'; import { minifyCss } from './minify-css'; /** diff --git a/src/compiler/optimize/optimize-js.ts b/src/compiler/optimize/optimize-js.ts index 5d135e628e7..daea7c858af 100644 --- a/src/compiler/optimize/optimize-js.ts +++ b/src/compiler/optimize/optimize-js.ts @@ -1,7 +1,8 @@ -import { Config, OptimizeJsInput, OptimizeJsOutput } from '../../declarations'; import { catchError } from '@utils'; -import { getTerserOptions } from './optimize-module'; + +import { Config, OptimizeJsInput, OptimizeJsOutput } from '../../declarations'; import { minifyJs } from './minify-js'; +import { getTerserOptions } from './optimize-module'; export const optimizeJs = async (inputOpts: OptimizeJsInput) => { const result: OptimizeJsOutput = { diff --git a/src/compiler/optimize/optimize-module.ts b/src/compiler/optimize/optimize-module.ts index 130e365f178..64cff443ef4 100644 --- a/src/compiler/optimize/optimize-module.ts +++ b/src/compiler/optimize/optimize-module.ts @@ -1,10 +1,11 @@ -import { minfyJsId } from '../../version'; -import { minifyJs } from './minify-js'; -import type { CompilerCtx, Config, OptimizeJsResult, SourceTarget, SourceMap } from '../../declarations'; -import type { CompressOptions, MangleOptions, MinifyOptions, SourceMapOptions } from 'terser'; import sourceMapMerge from 'merge-source-map'; +import type { CompressOptions, MangleOptions, MinifyOptions, SourceMapOptions } from 'terser'; import ts from 'typescript'; +import type { CompilerCtx, Config, OptimizeJsResult, SourceMap, SourceTarget } from '../../declarations'; +import { minfyJsId } from '../../version'; +import { minifyJs } from './minify-js'; + interface OptimizeModuleOptions { input: string; sourceMap?: SourceMap; diff --git a/src/compiler/output-targets/copy/assets-copy-tasks.ts b/src/compiler/output-targets/copy/assets-copy-tasks.ts index 632f9548e2a..60831d76bca 100644 --- a/src/compiler/output-targets/copy/assets-copy-tasks.ts +++ b/src/compiler/output-targets/copy/assets-copy-tasks.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; -import { dirname, join, relative } from 'path'; import { normalizePath } from '@utils'; +import { dirname, join, relative } from 'path'; + +import type * as d from '../../../declarations'; export const getComponentAssetsCopyTasks = ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/copy/hashed-copy.ts b/src/compiler/output-targets/copy/hashed-copy.ts index 261388cef2d..5031ca9f451 100644 --- a/src/compiler/output-targets/copy/hashed-copy.ts +++ b/src/compiler/output-targets/copy/hashed-copy.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; import { dirname, extname, join } from 'path'; +import type * as d from '../../../declarations'; + export const generateHashedCopy = async (config: d.Config, compilerCtx: d.CompilerCtx, path: string) => { try { const content = await compilerCtx.fs.readFile(path); diff --git a/src/compiler/output-targets/copy/local-copy-tasks.ts b/src/compiler/output-targets/copy/local-copy-tasks.ts index b1eb949bfff..d87acb81b79 100644 --- a/src/compiler/output-targets/copy/local-copy-tasks.ts +++ b/src/compiler/output-targets/copy/local-copy-tasks.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; import { isAbsolute, join } from 'path'; +import type * as d from '../../../declarations'; + export const getSrcAbsPath = (config: d.ValidatedConfig, src: string) => { if (isAbsolute(src)) { return src; diff --git a/src/compiler/output-targets/copy/output-copy.ts b/src/compiler/output-targets/copy/output-copy.ts index 0aa35e28f44..0f16f612c98 100644 --- a/src/compiler/output-targets/copy/output-copy.ts +++ b/src/compiler/output-targets/copy/output-copy.ts @@ -1,10 +1,11 @@ -import type * as d from '../../../declarations'; import { buildError, isGlob, normalizePath } from '@utils'; +import minimatch from 'minimatch'; +import { join } from 'path'; + +import type * as d from '../../../declarations'; +import { isOutputTargetCopy } from '../output-utils'; import { canSkipAssetsCopy, getComponentAssetsCopyTasks } from './assets-copy-tasks'; import { getDestAbsPath, getSrcAbsPath } from './local-copy-tasks'; -import { isOutputTargetCopy } from '../output-utils'; -import { join } from 'path'; -import minimatch from 'minimatch'; export const outputCopy = async (config: d.ValidatedConfig, compilerCtx: d.CompilerCtx, buildCtx: d.BuildCtx) => { const outputTargets = config.outputTargets.filter(isOutputTargetCopy); diff --git a/src/compiler/output-targets/dist-collection/index.ts b/src/compiler/output-targets/dist-collection/index.ts index 02e30890f3d..3285297a44f 100644 --- a/src/compiler/output-targets/dist-collection/index.ts +++ b/src/compiler/output-targets/dist-collection/index.ts @@ -1,10 +1,11 @@ -import type * as d from '../../../declarations'; import { catchError, COLLECTION_MANIFEST_FILE_NAME, flatOne, generatePreamble, normalizePath, sortBy } from '@utils'; -import { isOutputTargetDistCollection } from '../output-utils'; import { join, relative } from 'path'; -import { typescriptVersion, version } from '../../../version'; import ts from 'typescript'; + +import type * as d from '../../../declarations'; +import { typescriptVersion, version } from '../../../version'; import { mapImportsToPathAliases } from '../../transformers/map-imports-to-path-aliases'; +import { isOutputTargetDistCollection } from '../output-utils'; /** * Main output target function for `dist-collection`. This function takes the compiled output from a @@ -90,9 +91,9 @@ const writeCollectionManifests = async ( }; // this maps the json data to our internal data structure -// apping is so that the internal data structure "could" +// mapping is so that the internal data structure "could" // change, but the external user data will always use the same api -// over the top lame mapping functions is basically so we can loosly +// over the top lame mapping functions is basically so we can loosely // couple core component meta data between specific versions of the compiler const writeCollectionManifest = async ( compilerCtx: d.CompilerCtx, diff --git a/src/compiler/output-targets/dist-custom-elements-bundle/custom-elements-bundle-types.ts b/src/compiler/output-targets/dist-custom-elements-bundle/custom-elements-bundle-types.ts index 10450fea9d4..7a2702b6b60 100644 --- a/src/compiler/output-targets/dist-custom-elements-bundle/custom-elements-bundle-types.ts +++ b/src/compiler/output-targets/dist-custom-elements-bundle/custom-elements-bundle-types.ts @@ -1,7 +1,8 @@ +import { dashToPascalCase, normalizePath } from '@utils'; +import { dirname, join, relative } from 'path'; + import type * as d from '../../../declarations'; import { isOutputTargetDistCustomElementsBundle } from '../output-utils'; -import { dirname, join, relative } from 'path'; -import { normalizePath, dashToPascalCase } from '@utils'; export const generateCustomElementsBundleTypes = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/dist-custom-elements-bundle/index.ts b/src/compiler/output-targets/dist-custom-elements-bundle/index.ts index 948af2b94bb..d6346697853 100644 --- a/src/compiler/output-targets/dist-custom-elements-bundle/index.ts +++ b/src/compiler/output-targets/dist-custom-elements-bundle/index.ts @@ -1,6 +1,3 @@ -import type * as d from '../../../declarations'; -import type { BundleOptions } from '../../bundle/bundle-interface'; -import { bundleOutput } from '../../bundle/bundle-output'; import { catchError, dashToPascalCase, @@ -11,14 +8,18 @@ import { rollupToStencilSourceMap, stringifyRuntimeData, } from '@utils'; -import { getCustomElementsBuildConditionals } from './custom-elements-build-conditionals'; -import { isOutputTargetDistCustomElementsBundle } from '../output-utils'; import { join } from 'path'; -import { nativeComponentTransform } from '../../transformers/component-native/tranform-to-native-component'; + +import type * as d from '../../../declarations'; +import type { BundleOptions } from '../../bundle/bundle-interface'; +import { bundleOutput } from '../../bundle/bundle-output'; +import { STENCIL_APP_GLOBALS_ID, STENCIL_INTERNAL_CLIENT_ID, USER_INDEX_ENTRY_ID } from '../../bundle/entry-alias-ids'; import { optimizeModule } from '../../optimize/optimize-module'; +import { nativeComponentTransform } from '../../transformers/component-native/tranform-to-native-component'; import { removeCollectionImports } from '../../transformers/remove-collection-imports'; -import { STENCIL_INTERNAL_CLIENT_ID, USER_INDEX_ENTRY_ID, STENCIL_APP_GLOBALS_ID } from '../../bundle/entry-alias-ids'; import { updateStencilCoreImports } from '../../transformers/update-stencil-core-import'; +import { isOutputTargetDistCustomElementsBundle } from '../output-utils'; +import { getCustomElementsBuildConditionals } from './custom-elements-build-conditionals'; export const outputCustomElementsBundle = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/dist-custom-elements/custom-elements-types.ts b/src/compiler/output-targets/dist-custom-elements/custom-elements-types.ts index 89a74ca5d90..c4c99d79e94 100644 --- a/src/compiler/output-targets/dist-custom-elements/custom-elements-types.ts +++ b/src/compiler/output-targets/dist-custom-elements/custom-elements-types.ts @@ -1,7 +1,8 @@ +import { dashToPascalCase, normalizePath } from '@utils'; +import { dirname, join, relative } from 'path'; + import type * as d from '../../../declarations'; import { isOutputTargetDistCustomElements } from '../output-utils'; -import { dirname, join, relative } from 'path'; -import { normalizePath, dashToPascalCase } from '@utils'; /** * Entrypoint for generating types for one or more `dist-custom-elements` output targets defined in a Stencil project's diff --git a/src/compiler/output-targets/dist-custom-elements/index.ts b/src/compiler/output-targets/dist-custom-elements/index.ts index 2ac599828ef..a0316f54cd2 100644 --- a/src/compiler/output-targets/dist-custom-elements/index.ts +++ b/src/compiler/output-targets/dist-custom-elements/index.ts @@ -1,6 +1,3 @@ -import type * as d from '../../../declarations'; -import type { BundleOptions } from '../../bundle/bundle-interface'; -import { bundleOutput } from '../../bundle/bundle-output'; import { catchError, dashToPascalCase, @@ -10,17 +7,21 @@ import { isString, rollupToStencilSourceMap, } from '@utils'; -import { getCustomElementsBuildConditionals } from '../dist-custom-elements-bundle/custom-elements-build-conditionals'; -import { isOutputTargetDistCustomElements } from '../output-utils'; import { join } from 'path'; -import { nativeComponentTransform } from '../../transformers/component-native/tranform-to-native-component'; -import { addDefineCustomElementFunctions } from '../../transformers/component-native/add-define-custom-element-function'; +import ts from 'typescript'; + +import type * as d from '../../../declarations'; +import type { BundleOptions } from '../../bundle/bundle-interface'; +import { bundleOutput } from '../../bundle/bundle-output'; +import { STENCIL_APP_GLOBALS_ID, STENCIL_INTERNAL_CLIENT_ID, USER_INDEX_ENTRY_ID } from '../../bundle/entry-alias-ids'; import { optimizeModule } from '../../optimize/optimize-module'; -import { removeCollectionImports } from '../../transformers/remove-collection-imports'; -import { STENCIL_INTERNAL_CLIENT_ID, USER_INDEX_ENTRY_ID, STENCIL_APP_GLOBALS_ID } from '../../bundle/entry-alias-ids'; +import { addDefineCustomElementFunctions } from '../../transformers/component-native/add-define-custom-element-function'; import { proxyCustomElement } from '../../transformers/component-native/proxy-custom-element-function'; +import { nativeComponentTransform } from '../../transformers/component-native/tranform-to-native-component'; +import { removeCollectionImports } from '../../transformers/remove-collection-imports'; import { updateStencilCoreImports } from '../../transformers/update-stencil-core-import'; -import ts from 'typescript'; +import { getCustomElementsBuildConditionals } from '../dist-custom-elements-bundle/custom-elements-build-conditionals'; +import { isOutputTargetDistCustomElements } from '../output-utils'; /** * Main output target function for `dist-custom-elements`. This function just diff --git a/src/compiler/output-targets/dist-hydrate-script/bundle-hydrate-factory.ts b/src/compiler/output-targets/dist-hydrate-script/bundle-hydrate-factory.ts index ac3ae04c1a6..78aa3021179 100644 --- a/src/compiler/output-targets/dist-hydrate-script/bundle-hydrate-factory.ts +++ b/src/compiler/output-targets/dist-hydrate-script/bundle-hydrate-factory.ts @@ -1,12 +1,13 @@ +import { loadRollupDiagnostics } from '@utils'; + import type * as d from '../../../declarations'; import type { BundleOptions } from '../../bundle/bundle-interface'; import { bundleOutput } from '../../bundle/bundle-output'; -import { getHydrateBuildConditionals } from './hydrate-build-conditionals'; +import { STENCIL_INTERNAL_HYDRATE_ID } from '../../bundle/entry-alias-ids'; import { hydrateComponentTransform } from '../../transformers/component-hydrate/tranform-to-hydrate-component'; -import { loadRollupDiagnostics } from '@utils'; import { removeCollectionImports } from '../../transformers/remove-collection-imports'; -import { STENCIL_INTERNAL_HYDRATE_ID } from '../../bundle/entry-alias-ids'; import { updateStencilCoreImports } from '../../transformers/update-stencil-core-import'; +import { getHydrateBuildConditionals } from './hydrate-build-conditionals'; export const bundleHydrateFactory = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/dist-hydrate-script/generate-hydrate-app.ts b/src/compiler/output-targets/dist-hydrate-script/generate-hydrate-app.ts index 51ad3895468..6db3433abfb 100644 --- a/src/compiler/output-targets/dist-hydrate-script/generate-hydrate-app.ts +++ b/src/compiler/output-targets/dist-hydrate-script/generate-hydrate-app.ts @@ -1,19 +1,20 @@ -import type * as d from '../../../declarations'; -import { bundleHydrateFactory } from './bundle-hydrate-factory'; import { catchError, createOnWarnFn, generatePreamble, loadRollupDiagnostics } from '@utils'; -import { getBuildFeatures, updateBuildConditionals } from '../../app-core/app-data'; -import { HYDRATE_FACTORY_INTRO, HYDRATE_FACTORY_OUTRO } from './hydrate-factory-closure'; -import { updateToHydrateComponents } from './update-to-hydrate-components'; -import { writeHydrateOutputs } from './write-hydrate-outputs'; +import MagicString from 'magic-string'; +import { join } from 'path'; import { RollupOptions } from 'rollup'; +import { rollup } from 'rollup'; + +import type * as d from '../../../declarations'; +import { getBuildFeatures, updateBuildConditionals } from '../../app-core/app-data'; import { STENCIL_HYDRATE_FACTORY_ID, STENCIL_INTERNAL_HYDRATE_ID, STENCIL_MOCK_DOC_ID, } from '../../bundle/entry-alias-ids'; -import MagicString from 'magic-string'; -import { rollup } from 'rollup'; -import { join } from 'path'; +import { bundleHydrateFactory } from './bundle-hydrate-factory'; +import { HYDRATE_FACTORY_INTRO, HYDRATE_FACTORY_OUTRO } from './hydrate-factory-closure'; +import { updateToHydrateComponents } from './update-to-hydrate-components'; +import { writeHydrateOutputs } from './write-hydrate-outputs'; export const generateHydrateApp = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/dist-hydrate-script/index.ts b/src/compiler/output-targets/dist-hydrate-script/index.ts index 97e48929616..450dd77fdcb 100644 --- a/src/compiler/output-targets/dist-hydrate-script/index.ts +++ b/src/compiler/output-targets/dist-hydrate-script/index.ts @@ -1,6 +1,6 @@ import type * as d from '../../../declarations'; -import { generateHydrateApp } from './generate-hydrate-app'; import { isOutputTargetHydrate } from '../output-utils'; +import { generateHydrateApp } from './generate-hydrate-app'; export const outputHydrateScript = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/dist-hydrate-script/update-to-hydrate-components.ts b/src/compiler/output-targets/dist-hydrate-script/update-to-hydrate-components.ts index 956b0205351..e6dc7532354 100644 --- a/src/compiler/output-targets/dist-hydrate-script/update-to-hydrate-components.ts +++ b/src/compiler/output-targets/dist-hydrate-script/update-to-hydrate-components.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; import { dashToPascalCase, sortBy, toTitleCase } from '@utils'; +import type * as d from '../../../declarations'; + export const updateToHydrateComponents = async (cmps: d.ComponentCompilerMeta[]) => { const hydrateCmps = await Promise.all(cmps.map(updateToHydrateComponent)); return sortBy(hydrateCmps, (c) => c.cmp.componentClassName); diff --git a/src/compiler/output-targets/dist-hydrate-script/write-hydrate-outputs.ts b/src/compiler/output-targets/dist-hydrate-script/write-hydrate-outputs.ts index fdb3fe1f5dc..3fb5f381eff 100644 --- a/src/compiler/output-targets/dist-hydrate-script/write-hydrate-outputs.ts +++ b/src/compiler/output-targets/dist-hydrate-script/write-hydrate-outputs.ts @@ -1,8 +1,9 @@ -import type * as d from '../../../declarations'; import { basename, join } from 'path'; -import { relocateHydrateContextConst } from './relocate-hydrate-context'; import type { RollupOutput } from 'rollup'; +import type * as d from '../../../declarations'; +import { relocateHydrateContextConst } from './relocate-hydrate-context'; + export const writeHydrateOutputs = ( config: d.ValidatedConfig, compilerCtx: d.CompilerCtx, diff --git a/src/compiler/output-targets/dist-lazy/generate-cjs.ts b/src/compiler/output-targets/dist-lazy/generate-cjs.ts index 73c282fc9af..35b2a72db98 100644 --- a/src/compiler/output-targets/dist-lazy/generate-cjs.ts +++ b/src/compiler/output-targets/dist-lazy/generate-cjs.ts @@ -1,10 +1,11 @@ -import type * as d from '../../../declarations'; -import { generateRollupOutput } from '../../app-core/bundle-app-core'; -import { generateLazyModules } from './generate-lazy-module'; +import { generatePreamble } from '@utils'; import { join } from 'path'; import type { OutputOptions, RollupBuild } from 'rollup'; + +import type * as d from '../../../declarations'; +import { generateRollupOutput } from '../../app-core/bundle-app-core'; import { relativeImport } from '../output-utils'; -import { generatePreamble } from '@utils'; +import { generateLazyModules } from './generate-lazy-module'; export const generateCjs = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/dist-lazy/generate-esm-browser.ts b/src/compiler/output-targets/dist-lazy/generate-esm-browser.ts index 6c751c7698f..cfe1d3e171b 100644 --- a/src/compiler/output-targets/dist-lazy/generate-esm-browser.ts +++ b/src/compiler/output-targets/dist-lazy/generate-esm-browser.ts @@ -1,8 +1,9 @@ +import { generatePreamble, getDynamicImportFunction } from '@utils'; +import type { OutputOptions, RollupBuild } from 'rollup'; + import type * as d from '../../../declarations'; import { generateRollupOutput } from '../../app-core/bundle-app-core'; import { generateLazyModules } from './generate-lazy-module'; -import type { OutputOptions, RollupBuild } from 'rollup'; -import { generatePreamble, getDynamicImportFunction } from '@utils'; export const generateEsmBrowser = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/dist-lazy/generate-esm.ts b/src/compiler/output-targets/dist-lazy/generate-esm.ts index 5d5450abfe2..0061cfdb422 100644 --- a/src/compiler/output-targets/dist-lazy/generate-esm.ts +++ b/src/compiler/output-targets/dist-lazy/generate-esm.ts @@ -1,11 +1,12 @@ -import type * as d from '../../../declarations'; -import { generateLazyModules } from './generate-lazy-module'; -import { generateRollupOutput } from '../../app-core/bundle-app-core'; +import { generatePreamble } from '@utils'; import { join } from 'path'; import type { OutputOptions, RollupBuild } from 'rollup'; -import { relativeImport } from '../output-utils'; + +import type * as d from '../../../declarations'; import type { RollupResult } from '../../../declarations'; -import { generatePreamble } from '@utils'; +import { generateRollupOutput } from '../../app-core/bundle-app-core'; +import { relativeImport } from '../output-utils'; +import { generateLazyModules } from './generate-lazy-module'; export const generateEsm = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/dist-lazy/generate-lazy-module.ts b/src/compiler/output-targets/dist-lazy/generate-lazy-module.ts index 6c0eaa90971..b2ad57cbb1c 100644 --- a/src/compiler/output-targets/dist-lazy/generate-lazy-module.ts +++ b/src/compiler/output-targets/dist-lazy/generate-lazy-module.ts @@ -1,16 +1,17 @@ -import type * as d from '../../../declarations'; -import { writeLazyModule } from './write-lazy-entry-module'; import { formatComponentRuntimeMeta, - stringifyRuntimeData, + getSourceMappingUrlForEndOfFile, hasDependency, rollupToStencilSourceMap, - getSourceMappingUrlForEndOfFile, + stringifyRuntimeData, } from '@utils'; -import { optimizeModule } from '../../optimize/optimize-module'; import { join } from 'path'; import type { SourceMap as RollupSourceMap } from 'rollup'; +import type * as d from '../../../declarations'; +import { optimizeModule } from '../../optimize/optimize-module'; +import { writeLazyModule } from './write-lazy-entry-module'; + export const generateLazyModules = async ( config: d.ValidatedConfig, compilerCtx: d.CompilerCtx, diff --git a/src/compiler/output-targets/dist-lazy/generate-system.ts b/src/compiler/output-targets/dist-lazy/generate-system.ts index 0454dcfd5ca..eda8644aecc 100644 --- a/src/compiler/output-targets/dist-lazy/generate-system.ts +++ b/src/compiler/output-targets/dist-lazy/generate-system.ts @@ -1,11 +1,12 @@ -import type * as d from '../../../declarations'; -import { generateRollupOutput } from '../../app-core/bundle-app-core'; -import { generateLazyModules } from './generate-lazy-module'; -import { getAppBrowserCorePolyfills } from '../../app-core/app-polyfills'; +import { generatePreamble } from '@utils'; import { join } from 'path'; import type { OutputOptions, RollupBuild } from 'rollup'; + +import type * as d from '../../../declarations'; +import { getAppBrowserCorePolyfills } from '../../app-core/app-polyfills'; +import { generateRollupOutput } from '../../app-core/bundle-app-core'; import { relativeImport } from '../output-utils'; -import { generatePreamble } from '@utils'; +import { generateLazyModules } from './generate-lazy-module'; export const generateSystem = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/dist-lazy/lazy-component-plugin.ts b/src/compiler/output-targets/dist-lazy/lazy-component-plugin.ts index e46ad0c08dc..8048f7709d5 100644 --- a/src/compiler/output-targets/dist-lazy/lazy-component-plugin.ts +++ b/src/compiler/output-targets/dist-lazy/lazy-component-plugin.ts @@ -1,7 +1,8 @@ -import type * as d from '../../../declarations'; import { normalizePath } from '@utils'; import type { Plugin } from 'rollup'; +import type * as d from '../../../declarations'; + export const lazyComponentPlugin = (buildCtx: d.BuildCtx): Plugin => { const entrys = new Map(); diff --git a/src/compiler/output-targets/dist-lazy/lazy-output.ts b/src/compiler/output-targets/dist-lazy/lazy-output.ts index 1f31488ae34..4d455aae34d 100644 --- a/src/compiler/output-targets/dist-lazy/lazy-output.ts +++ b/src/compiler/output-targets/dist-lazy/lazy-output.ts @@ -1,9 +1,9 @@ +import { catchError, sortBy } from '@utils'; +import MagicString from 'magic-string'; + import type * as d from '../../../declarations'; import type { BundleOptions } from '../../bundle/bundle-interface'; import { bundleOutput } from '../../bundle/bundle-output'; -import { catchError, sortBy } from '@utils'; -import { getLazyBuildConditionals } from './lazy-build-conditionals'; -import { isOutputTargetDistLazy, isOutputTargetDist } from '../output-utils'; import { LAZY_BROWSER_ENTRY_ID, LAZY_EXTERNAL_ENTRY_ID, @@ -13,16 +13,17 @@ import { STENCIL_INTERNAL_CLIENT_PATCH_ESM_ID, USER_INDEX_ENTRY_ID, } from '../../bundle/entry-alias-ids'; +import { generateComponentBundles } from '../../entries/component-bundles'; +import { generateModuleGraph } from '../../entries/component-graph'; import { lazyComponentTransform } from '../../transformers/component-lazy/transform-lazy-component'; +import { removeCollectionImports } from '../../transformers/remove-collection-imports'; +import { updateStencilCoreImports } from '../../transformers/update-stencil-core-import'; +import { isOutputTargetDist, isOutputTargetDistLazy } from '../output-utils'; import { generateCjs } from './generate-cjs'; -import { generateEsmBrowser } from './generate-esm-browser'; import { generateEsm } from './generate-esm'; +import { generateEsmBrowser } from './generate-esm-browser'; import { generateSystem } from './generate-system'; -import { generateModuleGraph } from '../../entries/component-graph'; -import { removeCollectionImports } from '../../transformers/remove-collection-imports'; -import { updateStencilCoreImports } from '../../transformers/update-stencil-core-import'; -import MagicString from 'magic-string'; -import { generateComponentBundles } from '../../entries/component-bundles'; +import { getLazyBuildConditionals } from './lazy-build-conditionals'; export const outputLazy = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/dist-lazy/write-lazy-entry-module.ts b/src/compiler/output-targets/dist-lazy/write-lazy-entry-module.ts index 127d15b7607..889bee43d37 100644 --- a/src/compiler/output-targets/dist-lazy/write-lazy-entry-module.ts +++ b/src/compiler/output-targets/dist-lazy/write-lazy-entry-module.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; -import { join } from 'path'; import { getSourceMappingUrlForEndOfFile } from '@utils'; +import { join } from 'path'; + +import type * as d from '../../../declarations'; export const writeLazyModule = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/empty-dir.ts b/src/compiler/output-targets/empty-dir.ts index a6e2babbfca..b5badce497b 100644 --- a/src/compiler/output-targets/empty-dir.ts +++ b/src/compiler/output-targets/empty-dir.ts @@ -1,14 +1,15 @@ +import { isString } from '@utils'; + import type * as d from '../../declarations'; import { isOutputTargetDist, - isOutputTargetDistLazyLoader, - isOutputTargetHydrate, - isOutputTargetWww, isOutputTargetDistCustomElements, isOutputTargetDistCustomElementsBundle, isOutputTargetDistLazy, + isOutputTargetDistLazyLoader, + isOutputTargetHydrate, + isOutputTargetWww, } from './output-utils'; -import { isString } from '@utils'; type OutputTargetEmptiable = | d.OutputTargetDist diff --git a/src/compiler/output-targets/index.ts b/src/compiler/output-targets/index.ts index ff166d1be68..5326067c639 100644 --- a/src/compiler/output-targets/index.ts +++ b/src/compiler/output-targets/index.ts @@ -1,16 +1,17 @@ +import type { RollupCache } from 'rollup'; + import type * as d from '../../declarations'; -import { outputAngular } from './output-angular'; import { outputCopy } from './copy/output-copy'; +import { outputCollection } from './dist-collection'; import { outputCustomElements } from './dist-custom-elements'; import { outputCustomElementsBundle } from './dist-custom-elements-bundle'; -import { outputDocs } from './output-docs'; import { outputHydrateScript } from './dist-hydrate-script'; import { outputLazy } from './dist-lazy/lazy-output'; +import { outputAngular } from './output-angular'; +import { outputDocs } from './output-docs'; import { outputLazyLoader } from './output-lazy-loader'; -import { outputWww } from './output-www'; -import { outputCollection } from './dist-collection'; import { outputTypes } from './output-types'; -import type { RollupCache } from 'rollup'; +import { outputWww } from './output-www'; export const generateOutputTargets = async ( config: d.ValidatedConfig, diff --git a/src/compiler/output-targets/output-angular.ts b/src/compiler/output-targets/output-angular.ts index d41d4c5e7c9..0027069ad2c 100644 --- a/src/compiler/output-targets/output-angular.ts +++ b/src/compiler/output-targets/output-angular.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; import { dashToPascalCase, sortBy } from '@utils'; import { dirname, join } from 'path'; import ts from 'typescript'; + +import type * as d from '../../declarations'; import { isOutputTargetAngular, relativeImport } from './output-utils'; export const outputAngular = async (config: d.ValidatedConfig, compilerCtx: d.CompilerCtx, buildCtx: d.BuildCtx) => { diff --git a/src/compiler/output-targets/output-custom.ts b/src/compiler/output-targets/output-custom.ts index aab711d395b..b91eeac6a1f 100644 --- a/src/compiler/output-targets/output-custom.ts +++ b/src/compiler/output-targets/output-custom.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { catchError } from '@utils'; + +import type * as d from '../../declarations'; import { isOutputTargetCustom } from './output-utils'; export const outputCustom = async ( diff --git a/src/compiler/output-targets/output-docs.ts b/src/compiler/output-targets/output-docs.ts index 245c0be6c98..26b0d3060ce 100644 --- a/src/compiler/output-targets/output-docs.ts +++ b/src/compiler/output-targets/output-docs.ts @@ -1,9 +1,10 @@ import type * as d from '../../declarations'; -import { generateDocData } from '../docs/generate-doc-data'; import { generateCustomDocs } from '../docs/custom'; +import { generateDocData } from '../docs/generate-doc-data'; import { generateJsonDocs } from '../docs/json'; import { generateReadmeDocs } from '../docs/readme'; import { generateVscodeDocs } from '../docs/vscode'; +import { outputCustom } from './output-custom'; import { isOutputTargetCustom, isOutputTargetDocsCustom, @@ -11,7 +12,6 @@ import { isOutputTargetDocsReadme, isOutputTargetDocsVscode, } from './output-utils'; -import { outputCustom } from './output-custom'; export const outputDocs = async (config: d.ValidatedConfig, compilerCtx: d.CompilerCtx, buildCtx: d.BuildCtx) => { if (!config.buildDocs) { diff --git a/src/compiler/output-targets/output-lazy-loader.ts b/src/compiler/output-targets/output-lazy-loader.ts index 69fe2f974fa..5ba541a549f 100644 --- a/src/compiler/output-targets/output-lazy-loader.ts +++ b/src/compiler/output-targets/output-lazy-loader.ts @@ -1,8 +1,9 @@ +import { generatePreamble, normalizePath } from '@utils'; +import { join, relative } from 'path'; + import type * as d from '../../declarations'; import { getClientPolyfill } from '../app-core/app-polyfills'; import { isOutputTargetDistLazyLoader, relativeImport } from './output-utils'; -import { join, relative } from 'path'; -import { generatePreamble, normalizePath } from '@utils'; export const outputLazyLoader = async (config: d.ValidatedConfig, compilerCtx: d.CompilerCtx) => { const outputTargets = config.outputTargets.filter(isOutputTargetDistLazyLoader); diff --git a/src/compiler/output-targets/output-utils.ts b/src/compiler/output-targets/output-utils.ts index eb1c13fed48..3f62a0256ae 100644 --- a/src/compiler/output-targets/output-utils.ts +++ b/src/compiler/output-targets/output-utils.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; -import { basename, dirname, join, relative } from 'path'; import { flatOne, normalizePath, sortBy } from '@utils'; +import { basename, dirname, join, relative } from 'path'; + +import type * as d from '../../declarations'; export const relativeImport = (pathFrom: string, pathTo: string, ext?: string, addPrefix = true) => { let relativePath = relative(dirname(pathFrom), dirname(pathTo)); diff --git a/src/compiler/output-targets/output-www.ts b/src/compiler/output-targets/output-www.ts index a78411010df..6cacab407f9 100644 --- a/src/compiler/output-targets/output-www.ts +++ b/src/compiler/output-targets/output-www.ts @@ -1,20 +1,21 @@ -import type * as d from '../../declarations'; -import { addScriptDataAttribute } from '../html/add-script-attr'; -import { catchError, flatOne, unique } from '@utils'; import { cloneDocument, serializeNodeToHtml } from '@stencil/core/mock-doc'; +import { catchError, flatOne, unique } from '@utils'; +import { join, relative } from 'path'; + +import type * as d from '../../declarations'; import { generateEs5DisabledMessage } from '../app-core/app-es5-disabled'; -import { generateHashedCopy } from '../output-targets/copy/hashed-copy'; +import { addScriptDataAttribute } from '../html/add-script-attr'; import { getAbsoluteBuildDir } from '../html/html-utils'; -import { getScopeId } from '../style/scope-css'; -import { getUsedComponents } from '../html/used-components'; -import { INDEX_ORG } from '../service-worker/generate-sw'; -import { inlineStyleSheets } from '../html/inline-style-sheets'; -import { isOutputTargetWww } from './output-utils'; -import { join, relative } from 'path'; import { optimizeCriticalPath } from '../html/inject-module-preloads'; +import { updateIndexHtmlServiceWorker } from '../html/inject-sw-script'; import { optimizeEsmImport } from '../html/inline-esm-import'; +import { inlineStyleSheets } from '../html/inline-style-sheets'; import { updateGlobalStylesLink } from '../html/update-global-styles-link'; -import { updateIndexHtmlServiceWorker } from '../html/inject-sw-script'; +import { getUsedComponents } from '../html/used-components'; +import { generateHashedCopy } from '../output-targets/copy/hashed-copy'; +import { INDEX_ORG } from '../service-worker/generate-sw'; +import { getScopeId } from '../style/scope-css'; +import { isOutputTargetWww } from './output-utils'; export const outputWww = async (config: d.ValidatedConfig, compilerCtx: d.CompilerCtx, buildCtx: d.BuildCtx) => { const outputTargets = config.outputTargets.filter(isOutputTargetWww); diff --git a/src/compiler/output-targets/test/build-conditionals.spec.ts b/src/compiler/output-targets/test/build-conditionals.spec.ts index 3f5bf503208..2a3a4cdfe5e 100644 --- a/src/compiler/output-targets/test/build-conditionals.spec.ts +++ b/src/compiler/output-targets/test/build-conditionals.spec.ts @@ -1,8 +1,9 @@ -import type * as d from '../../../declarations'; -import { getLazyBuildConditionals } from '../dist-lazy/lazy-build-conditionals'; -import { getCustomElementsBuildConditionals } from '../dist-custom-elements-bundle/custom-elements-build-conditionals'; import { mockConfig, mockLoadConfigInit } from '@stencil/core/testing'; + +import type * as d from '../../../declarations'; import { validateConfig } from '../../config/validate-config'; +import { getCustomElementsBuildConditionals } from '../dist-custom-elements-bundle/custom-elements-build-conditionals'; +import { getLazyBuildConditionals } from '../dist-lazy/lazy-build-conditionals'; describe('build-conditionals', () => { let userConfig: d.Config; diff --git a/src/compiler/output-targets/test/custom-elements-types.spec.ts b/src/compiler/output-targets/test/custom-elements-types.spec.ts index b6c15c7cd71..ec2eea63f07 100644 --- a/src/compiler/output-targets/test/custom-elements-types.spec.ts +++ b/src/compiler/output-targets/test/custom-elements-types.spec.ts @@ -1,17 +1,18 @@ import { path } from '@stencil/core/compiler'; import { - mockCompilerSystem, mockBuildCtx, mockCompilerCtx, + mockCompilerSystem, mockModule, mockValidatedConfig, } from '@stencil/core/testing'; +import { join, relative } from 'path'; + import type * as d from '../../../declarations'; -import * as outputCustomElementsMod from '../dist-custom-elements'; import { stubComponentCompilerMeta } from '../../types/tests/ComponentCompilerMeta.stub'; +import * as outputCustomElementsMod from '../dist-custom-elements'; import { generateCustomElementsTypes } from '../dist-custom-elements/custom-elements-types'; import { DIST_CUSTOM_ELEMENTS } from '../output-utils'; -import { join, relative } from 'path'; const setup = () => { const sys = mockCompilerSystem(); diff --git a/src/compiler/output-targets/test/output-targets-collection.spec.ts b/src/compiler/output-targets/test/output-targets-collection.spec.ts index 73358d264ff..7c78f03254b 100644 --- a/src/compiler/output-targets/test/output-targets-collection.spec.ts +++ b/src/compiler/output-targets/test/output-targets-collection.spec.ts @@ -1,8 +1,9 @@ -import { outputCollection } from '../dist-collection'; +import { mockBuildCtx, mockCompilerCtx, mockModule, mockValidatedConfig } from '@stencil/core/testing'; +import { normalize } from 'path'; + import type * as d from '../../../declarations'; -import { mockValidatedConfig, mockBuildCtx, mockCompilerCtx, mockModule } from '@stencil/core/testing'; import * as test from '../../transformers/map-imports-to-path-aliases'; -import { normalize } from 'path'; +import { outputCollection } from '../dist-collection'; describe('Dist Collection output target', () => { let mockConfig: d.ValidatedConfig; diff --git a/src/compiler/output-targets/test/output-targets-dist-custom-elements.spec.ts b/src/compiler/output-targets/test/output-targets-dist-custom-elements.spec.ts index 0f4f8353b19..d24defebe8d 100644 --- a/src/compiler/output-targets/test/output-targets-dist-custom-elements.spec.ts +++ b/src/compiler/output-targets/test/output-targets-dist-custom-elements.spec.ts @@ -1,12 +1,16 @@ import { path } from '@stencil/core/compiler'; import { - mockCompilerSystem, mockBuildCtx, mockCompilerCtx, + mockCompilerSystem, mockModule, mockValidatedConfig, } from '@stencil/core/testing'; + import type * as d from '../../../declarations'; +import { OutputTargetDistCustomElements } from '../../../declarations'; +import { STENCIL_APP_GLOBALS_ID, STENCIL_INTERNAL_CLIENT_ID, USER_INDEX_ENTRY_ID } from '../../bundle/entry-alias-ids'; +import { stubComponentCompilerMeta } from '../../types/tests/ComponentCompilerMeta.stub'; import { addCustomElementInputs, bundleCustomElements, @@ -15,9 +19,6 @@ import { outputCustomElements, } from '../dist-custom-elements'; import * as outputCustomElementsMod from '../dist-custom-elements'; -import { OutputTargetDistCustomElements } from '../../../declarations'; -import { stubComponentCompilerMeta } from '../../types/tests/ComponentCompilerMeta.stub'; -import { STENCIL_APP_GLOBALS_ID, STENCIL_INTERNAL_CLIENT_ID, USER_INDEX_ENTRY_ID } from '../../bundle/entry-alias-ids'; import { DIST_CUSTOM_ELEMENTS, DIST_CUSTOM_ELEMENTS_BUNDLE } from '../output-utils'; const setup = () => { diff --git a/src/compiler/output-targets/test/output-targets-dist.spec.ts b/src/compiler/output-targets/test/output-targets-dist.spec.ts index d38058b64e0..9b1bf6ce3dc 100644 --- a/src/compiler/output-targets/test/output-targets-dist.spec.ts +++ b/src/compiler/output-targets/test/output-targets-dist.spec.ts @@ -1,9 +1,10 @@ // @ts-nocheck -import { expectFilesDoNotExist, expectFilesExist } from '../../../testing/testing-utils'; import { Compiler, Config } from '@stencil/core/compiler'; import { mockConfig } from '@stencil/core/testing'; import path from 'path'; +import { expectFilesDoNotExist, expectFilesExist } from '../../../testing/testing-utils'; + describe.skip('outputTarget, dist', () => { jest.setTimeout(20000); let compiler: Compiler; diff --git a/src/compiler/output-targets/test/output-targets-www-dist.spec.ts b/src/compiler/output-targets/test/output-targets-www-dist.spec.ts index 85dc79d7512..f54da155e41 100644 --- a/src/compiler/output-targets/test/output-targets-www-dist.spec.ts +++ b/src/compiler/output-targets/test/output-targets-www-dist.spec.ts @@ -1,10 +1,11 @@ // @ts-nocheck -import type * as d from '@stencil/core/declarations'; -import { expectFilesDoNotExist, expectFilesExist } from '../../../testing/testing-utils'; import { Compiler, Config } from '@stencil/core/compiler'; +import type * as d from '@stencil/core/declarations'; import { mockConfig } from '@stencil/core/testing'; import path from 'path'; +import { expectFilesDoNotExist, expectFilesExist } from '../../../testing/testing-utils'; + describe.skip('outputTarget, www / dist / docs', () => { jest.setTimeout(20000); let compiler: Compiler; diff --git a/src/compiler/output-targets/test/output-targets-www.spec.ts b/src/compiler/output-targets/test/output-targets-www.spec.ts index cfd2a0d93c0..daba3a1e43f 100644 --- a/src/compiler/output-targets/test/output-targets-www.spec.ts +++ b/src/compiler/output-targets/test/output-targets-www.spec.ts @@ -1,9 +1,10 @@ // @ts-nocheck -import { expectFilesDoNotExist, expectFilesExist } from '../../../testing/testing-utils'; import { Compiler, Config } from '@stencil/core/compiler'; import { mockConfig } from '@stencil/core/testing'; import path from 'path'; +import { expectFilesDoNotExist, expectFilesExist } from '../../../testing/testing-utils'; + describe.skip('outputTarget, www', () => { jest.setTimeout(20000); let compiler: Compiler; diff --git a/src/compiler/plugin/plugin.ts b/src/compiler/plugin/plugin.ts index c1a2d51db58..f26c1b70843 100644 --- a/src/compiler/plugin/plugin.ts +++ b/src/compiler/plugin/plugin.ts @@ -1,9 +1,10 @@ -import type * as d from '../../declarations'; -import { basename, relative } from 'path'; import { buildError, catchError, isFunction, isString } from '@utils'; +import { basename, relative } from 'path'; + +import type * as d from '../../declarations'; +import { PluginCtx, PluginTransformResults } from '../../declarations'; import { isOutputTargetDocs } from '../output-targets/output-utils'; import { parseCssImports } from '../style/css-imports'; -import { PluginCtx, PluginTransformResults } from '../../declarations'; export const runPluginResolveId = async (pluginCtx: PluginCtx, importee: string) => { for (const plugin of pluginCtx.config.plugins) { diff --git a/src/compiler/plugin/test/plugin.spec.ts b/src/compiler/plugin/test/plugin.spec.ts index 577ba46102a..e27c01fa1a2 100644 --- a/src/compiler/plugin/test/plugin.spec.ts +++ b/src/compiler/plugin/test/plugin.spec.ts @@ -1,10 +1,11 @@ // @ts-nocheck -import type * as d from '../../../declarations'; import { createCompiler } from '@stencil/core/compiler'; import { mockConfig } from '@stencil/core/testing'; import { normalizePath } from '@utils'; import path from 'path'; +import type * as d from '../../../declarations'; + describe.skip('plugin', () => { jest.setTimeout(20000); let compiler: d.Compiler; diff --git a/src/compiler/prerender/crawl-urls.ts b/src/compiler/prerender/crawl-urls.ts index a276a40ee59..30361ef5df9 100644 --- a/src/compiler/prerender/crawl-urls.ts +++ b/src/compiler/prerender/crawl-urls.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { catchError } from '@utils'; +import type * as d from '../../declarations'; + export const crawlAnchorsForNextUrls = ( prerenderConfig: d.PrerenderConfig, diagnostics: d.Diagnostic[], diff --git a/src/compiler/prerender/prerender-config.ts b/src/compiler/prerender/prerender-config.ts index d13c7ce4f39..f0ff1b37a6d 100644 --- a/src/compiler/prerender/prerender-config.ts +++ b/src/compiler/prerender/prerender-config.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { isString } from '@utils'; + +import type * as d from '../../declarations'; import { nodeRequire } from '../sys/node-require'; export const getPrerenderConfig = (diagnostics: d.Diagnostic[], prerenderConfigPath: string) => { diff --git a/src/compiler/prerender/prerender-hydrate-options.ts b/src/compiler/prerender/prerender-hydrate-options.ts index e46eebc169c..990cc6fdbc1 100644 --- a/src/compiler/prerender/prerender-hydrate-options.ts +++ b/src/compiler/prerender/prerender-hydrate-options.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { catchError } from '@utils'; +import type * as d from '../../declarations'; + export const getHydrateOptions = (prerenderConfig: d.PrerenderConfig, url: URL, diagnostics: d.Diagnostic[]) => { const prerenderUrl = url.href; diff --git a/src/compiler/prerender/prerender-main.ts b/src/compiler/prerender/prerender-main.ts index 666a2764816..e091144308d 100644 --- a/src/compiler/prerender/prerender-main.ts +++ b/src/compiler/prerender/prerender-main.ts @@ -1,17 +1,18 @@ -import type * as d from '../../declarations'; import { buildError, catchError, hasError, isString } from '@utils'; +import { isAbsolute, join } from 'path'; + +import type * as d from '../../declarations'; import { createHydrateBuildId } from '../../hydrate/runner/render-utils'; -import { createWorkerContext } from '../worker/worker-thread'; +import { getAbsoluteBuildDir } from '../html/html-utils'; +import { isOutputTargetWww } from '../output-targets/output-utils'; import { createWorkerMainContext } from '../worker/main-thread'; +import { createWorkerContext } from '../worker/worker-thread'; +import { getPrerenderConfig } from './prerender-config'; +import { getHydrateOptions } from './prerender-hydrate-options'; import { drainPrerenderQueue, initializePrerenderEntryUrls } from './prerender-queue'; +import { generateTemplateHtml } from './prerender-template-html'; import { generateRobotsTxt } from './robots-txt'; import { generateSitemapXml } from './sitemap-xml'; -import { generateTemplateHtml } from './prerender-template-html'; -import { getAbsoluteBuildDir } from '../html/html-utils'; -import { getHydrateOptions } from './prerender-hydrate-options'; -import { getPrerenderConfig } from './prerender-config'; -import { isAbsolute, join } from 'path'; -import { isOutputTargetWww } from '../output-targets/output-utils'; export const createPrerenderer = async (config: d.ValidatedConfig) => { const start = (opts: d.PrerenderStartOptions) => { diff --git a/src/compiler/prerender/prerender-optimize.ts b/src/compiler/prerender/prerender-optimize.ts index a66b45dc186..609aa6883e6 100644 --- a/src/compiler/prerender/prerender-optimize.ts +++ b/src/compiler/prerender/prerender-optimize.ts @@ -1,11 +1,12 @@ -import type * as d from '../../declarations'; import { catchError, flatOne, isString, unique } from '@utils'; -import { getScopeId } from '../style/scope-css'; +import { join } from 'path'; + +import type * as d from '../../declarations'; import { injectModulePreloads } from '../html/inject-module-preloads'; +import { minifyCss } from '../optimize/minify-css'; import { optimizeCss } from '../optimize/optimize-css'; import { optimizeJs } from '../optimize/optimize-js'; -import { join } from 'path'; -import { minifyCss } from '../optimize/minify-css'; +import { getScopeId } from '../style/scope-css'; import { PrerenderContext } from './prerender-worker-ctx'; export const inlineExternalStyleSheets = async (sys: d.CompilerSystem, appDir: string, doc: Document) => { diff --git a/src/compiler/prerender/prerender-queue.ts b/src/compiler/prerender/prerender-queue.ts index dc7e9bb568d..3d6bb053363 100644 --- a/src/compiler/prerender/prerender-queue.ts +++ b/src/compiler/prerender/prerender-queue.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; import { buildError, catchError, isFunction, isString } from '@utils'; +import { relative } from 'path'; + +import type * as d from '../../declarations'; import { crawlAnchorsForNextUrls } from './crawl-urls'; import { getWriteFilePathFromUrlPath } from './prerendered-write-path'; -import { relative } from 'path'; export const initializePrerenderEntryUrls = (results: d.PrerenderResults, manager: d.PrerenderManager) => { const entryAnchors: d.HydrateAnchorElement[] = []; diff --git a/src/compiler/prerender/prerender-template-html.ts b/src/compiler/prerender/prerender-template-html.ts index adfa91d4b9a..8709fa754a5 100644 --- a/src/compiler/prerender/prerender-template-html.ts +++ b/src/compiler/prerender/prerender-template-html.ts @@ -1,5 +1,7 @@ +import { createDocument, serializeNodeToHtml } from '@stencil/core/mock-doc'; +import { catchError, isFunction, isPromise, isString } from '@utils'; + import type * as d from '../../declarations'; -import { catchError, isPromise, isFunction, isString } from '@utils'; import { hasStencilScript, inlineExternalStyleSheets, @@ -7,7 +9,6 @@ import { minifyStyleElements, removeStencilScripts, } from './prerender-optimize'; -import { createDocument, serializeNodeToHtml } from '@stencil/core/mock-doc'; export const generateTemplateHtml = async ( config: d.Config, diff --git a/src/compiler/prerender/prerender-worker.ts b/src/compiler/prerender/prerender-worker.ts index 1cb44ab1234..b74185d365c 100644 --- a/src/compiler/prerender/prerender-worker.ts +++ b/src/compiler/prerender/prerender-worker.ts @@ -1,4 +1,11 @@ +import { catchError, isFunction, isPromise, isRootPath, normalizePath } from '@utils'; +import { dirname, join } from 'path'; + import type * as d from '../../declarations'; +import { requireFunc } from '../sys/environment'; +import { crawlAnchorsForNextUrls } from './crawl-urls'; +import { getPrerenderConfig } from './prerender-config'; +import { getHydrateOptions } from './prerender-hydrate-options'; import { addModulePreloads, excludeStaticComponents, @@ -8,13 +15,7 @@ import { removeModulePreloads, removeStencilScripts, } from './prerender-optimize'; -import { catchError, isPromise, isRootPath, normalizePath, isFunction } from '@utils'; -import { crawlAnchorsForNextUrls } from './crawl-urls'; import { getPrerenderCtx, PrerenderContext } from './prerender-worker-ctx'; -import { getHydrateOptions } from './prerender-hydrate-options'; -import { getPrerenderConfig } from './prerender-config'; -import { requireFunc } from '../sys/environment'; -import { dirname, join } from 'path'; export const prerenderWorker = async (sys: d.CompilerSystem, prerenderRequest: d.PrerenderUrlRequest) => { // worker thread! diff --git a/src/compiler/prerender/prerendered-write-path.ts b/src/compiler/prerender/prerendered-write-path.ts index b092c581493..d82a6352e89 100644 --- a/src/compiler/prerender/prerendered-write-path.ts +++ b/src/compiler/prerender/prerendered-write-path.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import path from 'path'; +import type * as d from '../../declarations'; + export const getWriteFilePathFromUrlPath = (manager: d.PrerenderManager, inputHref: string) => { const baseUrl = new URL(manager.outputTarget.baseUrl, manager.devServerHostUrl); const basePathname = baseUrl.pathname.toLowerCase(); diff --git a/src/compiler/prerender/robots-txt.ts b/src/compiler/prerender/robots-txt.ts index bf5f797c87a..70a2e08374a 100644 --- a/src/compiler/prerender/robots-txt.ts +++ b/src/compiler/prerender/robots-txt.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; import { catchError } from '@utils'; -import { getSitemapUrls } from './sitemap-xml'; import { join } from 'path'; +import type * as d from '../../declarations'; +import { getSitemapUrls } from './sitemap-xml'; + export const generateRobotsTxt = async (manager: d.PrerenderManager, sitemapResults: d.SitemapXmpResults) => { if (manager.prerenderConfig.robotsTxt === null) { // if it's set to null then let's not create a robots.txt file diff --git a/src/compiler/prerender/sitemap-xml.ts b/src/compiler/prerender/sitemap-xml.ts index 9d939c288d3..899e00fc640 100644 --- a/src/compiler/prerender/sitemap-xml.ts +++ b/src/compiler/prerender/sitemap-xml.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; import { catchError } from '@utils'; import { join } from 'path'; +import type * as d from '../../declarations'; + export const generateSitemapXml = async (manager: d.PrerenderManager) => { if (manager.prerenderConfig.sitemapXml === null) { // if it's set to null then let's not create a sitemap.xml file diff --git a/src/compiler/prerender/test/prerendered-write-path.spec.ts b/src/compiler/prerender/test/prerendered-write-path.spec.ts index cb47a0d2376..34e0a7d2b94 100644 --- a/src/compiler/prerender/test/prerendered-write-path.spec.ts +++ b/src/compiler/prerender/test/prerendered-write-path.spec.ts @@ -1,9 +1,10 @@ -import type * as d from '../../../declarations'; -import { getWriteFilePathFromUrlPath } from '../prerendered-write-path'; import { mockValidatedConfig } from '@stencil/core/testing'; -import { validateWww } from '../../config/outputs/validate-www'; import { join, resolve } from 'path'; +import type * as d from '../../../declarations'; +import { validateWww } from '../../config/outputs/validate-www'; +import { getWriteFilePathFromUrlPath } from '../prerendered-write-path'; + describe('prerender-utils', () => { const rootDir = resolve('/'); diff --git a/src/compiler/public.ts b/src/compiler/public.ts index e7a30a68c8c..4ec8b32e51a 100644 --- a/src/compiler/public.ts +++ b/src/compiler/public.ts @@ -1,9 +1,9 @@ import { - CompileScriptMinifyOptions, - CompilerBuildResults, Compiler, + CompilerBuildResults, CompilerSystem, CompilerWatcher, + CompileScriptMinifyOptions, Config, Diagnostic, LoadConfigInit, @@ -13,10 +13,10 @@ import { OptimizeJsInput, OptimizeJsOutput, PlatformPath, + PrerenderResults, + PrerenderStartOptions, TranspileOptions, TranspileResults, - PrerenderStartOptions, - PrerenderResults, } from '@stencil/core/internal'; /** @@ -127,11 +127,11 @@ export declare const vermoji: string; export declare const buildId: string; export { - CompileScriptMinifyOptions, - CompilerBuildResults, - CompilerWatcher, Compiler, + CompilerBuildResults, CompilerSystem, + CompilerWatcher, + CompileScriptMinifyOptions, Config, Diagnostic, LoadConfigInit, diff --git a/src/compiler/service-worker/generate-sw.ts b/src/compiler/service-worker/generate-sw.ts index 4779ac85a72..2441c1b7bcc 100644 --- a/src/compiler/service-worker/generate-sw.ts +++ b/src/compiler/service-worker/generate-sw.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; -import { basename } from 'path'; import { buildWarn, catchError } from '@utils'; +import { basename } from 'path'; + +import type * as d from '../../declarations'; import { isOutputTargetWww } from '../output-targets/output-utils'; export const generateServiceWorker = async ( diff --git a/src/compiler/service-worker/service-worker-util.ts b/src/compiler/service-worker/service-worker-util.ts index 34757ada673..44a72fc8ddf 100644 --- a/src/compiler/service-worker/service-worker-util.ts +++ b/src/compiler/service-worker/service-worker-util.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; import { normalizePath } from '@utils'; import { relative } from 'path'; +import type * as d from '../../declarations'; + export const generateServiceWorkerUrl = (outputTarget: d.OutputTargetWww, serviceWorker: d.ServiceWorkerConfig) => { let swUrl = normalizePath(relative(outputTarget.appDir, serviceWorker.swDest)); diff --git a/src/compiler/service-worker/test/service-worker-util.spec.ts b/src/compiler/service-worker/test/service-worker-util.spec.ts index 27a726d6229..b4102bcea3c 100644 --- a/src/compiler/service-worker/test/service-worker-util.spec.ts +++ b/src/compiler/service-worker/test/service-worker-util.spec.ts @@ -1,8 +1,9 @@ import type * as d from '@stencil/core/declarations'; -import { generateServiceWorkerUrl } from '../service-worker-util'; -import { validateConfig } from '../../config/validate-config'; import { mockConfig, mockLoadConfigInit } from '@stencil/core/testing'; +import { validateConfig } from '../../config/validate-config'; +import { generateServiceWorkerUrl } from '../service-worker-util'; + describe('generateServiceWorkerUrl', () => { let userConfig: d.Config; let outputTarget: d.OutputTargetWww; diff --git a/src/compiler/service-worker/test/service-worker.spec.ts b/src/compiler/service-worker/test/service-worker.spec.ts index 4debd729fb0..bac63dc8af8 100644 --- a/src/compiler/service-worker/test/service-worker.spec.ts +++ b/src/compiler/service-worker/test/service-worker.spec.ts @@ -1,7 +1,7 @@ // @ts-nocheck // TODO(STENCIL-462): investigate getting this file to pass (remove ts-nocheck) -import type * as d from '@stencil/core/declarations'; import { Compiler, Config } from '@stencil/core/compiler'; +import type * as d from '@stencil/core/declarations'; import { mockConfig } from '@stencil/core/testing'; import path from 'path'; diff --git a/src/compiler/style/css-imports.ts b/src/compiler/style/css-imports.ts index 79593a78956..82978097cee 100644 --- a/src/compiler/style/css-imports.ts +++ b/src/compiler/style/css-imports.ts @@ -1,9 +1,10 @@ -import type * as d from '../../declarations'; -import { basename, dirname, isAbsolute, join } from 'path'; import { buildError, normalizePath } from '@utils'; -import { getModuleId } from '../sys/resolve/resolve-utils'; +import { basename, dirname, isAbsolute, join } from 'path'; + +import type * as d from '../../declarations'; import { parseStyleDocs } from '../docs/style-docs'; import { resolveModuleIdAsync } from '../sys/resolve/resolve-module-async'; +import { getModuleId } from '../sys/resolve/resolve-utils'; import { stripCssComments } from './style-utils'; /** diff --git a/src/compiler/style/css-parser/parse-css.ts b/src/compiler/style/css-parser/parse-css.ts index 757cb6adce8..6a7fce65c1f 100644 --- a/src/compiler/style/css-parser/parse-css.ts +++ b/src/compiler/style/css-parser/parse-css.ts @@ -1,5 +1,5 @@ import type * as d from '../../../declarations'; -import { ParseCssResults, CssNode, CssParsePosition, CssNodeType } from './css-parse-declarations'; +import { CssNode, CssNodeType, CssParsePosition, ParseCssResults } from './css-parse-declarations'; export const parseCss = (css: string, filePath?: string): ParseCssResults => { let lineno = 1; diff --git a/src/compiler/style/css-to-esm.ts b/src/compiler/style/css-to-esm.ts index 93c2ea12168..c48247d031a 100644 --- a/src/compiler/style/css-to-esm.ts +++ b/src/compiler/style/css-to-esm.ts @@ -1,12 +1,13 @@ -import type * as d from '../../declarations'; -import { DEFAULT_STYLE_MODE, catchError, createJsVarName, normalizePath, hasError, isString } from '@utils'; -import { getScopeId } from './scope-css'; +import { catchError, createJsVarName, DEFAULT_STYLE_MODE, hasError, isString, normalizePath } from '@utils'; import MagicString from 'magic-string'; -import { optimizeCss } from '../optimize/optimize-css'; import path from 'path'; -import { parseStyleDocs } from '../docs/style-docs'; + +import type * as d from '../../declarations'; import { scopeCss } from '../../utils/shadow-css'; +import { parseStyleDocs } from '../docs/style-docs'; +import { optimizeCss } from '../optimize/optimize-css'; import { serializeImportPath } from '../transformers/stencil-import-path'; +import { getScopeId } from './scope-css'; import { stripCssComments } from './style-utils'; /** diff --git a/src/compiler/style/global-styles.ts b/src/compiler/style/global-styles.ts index 7e5de320b68..17af067efa0 100644 --- a/src/compiler/style/global-styles.ts +++ b/src/compiler/style/global-styles.ts @@ -1,9 +1,10 @@ -import type * as d from '../../declarations'; import { catchError, normalizePath } from '@utils'; -import { getCssImports } from './css-imports'; + +import type * as d from '../../declarations'; import { isOutputTargetDistGlobalStyles } from '../output-targets/output-utils'; -import { optimizeCss } from './optimize-css'; import { runPluginTransforms } from '../plugin/plugin'; +import { getCssImports } from './css-imports'; +import { optimizeCss } from './optimize-css'; export const generateGlobalStyles = async ( config: d.ValidatedConfig, diff --git a/src/compiler/style/normalize-styles.ts b/src/compiler/style/normalize-styles.ts index 8bfc458e832..e84269329fb 100644 --- a/src/compiler/style/normalize-styles.ts +++ b/src/compiler/style/normalize-styles.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; import { DEFAULT_STYLE_MODE, normalizePath } from '@utils'; import { dirname, isAbsolute, join, relative } from 'path'; +import type * as d from '../../declarations'; + export const normalizeStyles = (tagName: string, componentFilePath: string, styles: d.StyleCompiler[]) => { styles.forEach((style) => { if (style.modeName === DEFAULT_STYLE_MODE) { diff --git a/src/compiler/style/optimize-css.ts b/src/compiler/style/optimize-css.ts index 7da9d4aa3c6..3f6f6e42cb8 100644 --- a/src/compiler/style/optimize-css.ts +++ b/src/compiler/style/optimize-css.ts @@ -1,6 +1,7 @@ +import { hasError, normalizePath } from '@utils'; + import type * as d from '../../declarations'; import { optimizeCssId } from '../../version'; -import { hasError, normalizePath } from '@utils'; export const optimizeCss = async ( config: d.Config, diff --git a/src/compiler/style/test/css-imports.spec.ts b/src/compiler/style/test/css-imports.spec.ts index 4581ffbad28..bc8bb611297 100644 --- a/src/compiler/style/test/css-imports.spec.ts +++ b/src/compiler/style/test/css-imports.spec.ts @@ -1,4 +1,9 @@ import type * as d from '@stencil/core/declarations'; +import { mockBuildCtx, mockCompilerCtx, mockConfig } from '@stencil/core/testing'; +import { buildError, normalizePath } from '@utils'; +import path from 'path'; + +import { FsReadOptions } from '../../sys/in-memory-fs'; import { getCssImports, isCssNodeModule, @@ -6,10 +11,6 @@ import { parseCssImports, replaceImportDeclarations, } from '../css-imports'; -import { mockBuildCtx, mockConfig, mockCompilerCtx } from '@stencil/core/testing'; -import { buildError, normalizePath } from '@utils'; -import path from 'path'; -import { FsReadOptions } from '../../sys/in-memory-fs'; describe('css-imports', () => { const root = path.resolve('/'); diff --git a/src/compiler/style/test/optimize-css.spec.ts b/src/compiler/style/test/optimize-css.spec.ts index e05ead98d03..419d23b7e41 100644 --- a/src/compiler/style/test/optimize-css.spec.ts +++ b/src/compiler/style/test/optimize-css.spec.ts @@ -1,8 +1,9 @@ import type * as d from '@stencil/core/declarations'; -import { optimizeCss } from '../optimize-css'; import { mockCompilerCtx, mockConfig } from '@stencil/core/testing'; -import path from 'path'; import os from 'os'; +import path from 'path'; + +import { optimizeCss } from '../optimize-css'; describe('optimizeCss', () => { let config: d.Config; diff --git a/src/compiler/style/test/style-rebuild.spec.ts b/src/compiler/style/test/style-rebuild.spec.ts index 172b649c52f..b22c1382037 100644 --- a/src/compiler/style/test/style-rebuild.spec.ts +++ b/src/compiler/style/test/style-rebuild.spec.ts @@ -1,9 +1,10 @@ /* eslint-disable jest/no-test-prefixes, jest/no-commented-out-tests, jest/expect-expect -- this file needs to be brought up to date at some point */ // TODO(STENCIL-487): Investigate reviving this test file -import type * as d from '@stencil/core/declarations'; import { createCompiler } from '@stencil/core/compiler'; +import type * as d from '@stencil/core/declarations'; import { mockCompilerSystem, mockLoadConfigInit } from '@stencil/core/testing'; import path from 'path'; + import { validateConfig } from '../../config/validate-config'; xdescribe('component-styles', () => { diff --git a/src/compiler/sys/config.ts b/src/compiler/sys/config.ts index ab8ee528bc7..fd343253d08 100644 --- a/src/compiler/sys/config.ts +++ b/src/compiler/sys/config.ts @@ -1,8 +1,8 @@ +import { createConfigFlags } from '../../cli/config-flags'; import type * as d from '../../declarations'; +import { setPlatformPath } from '../sys/modules/path'; import { createLogger } from './logger/console-logger'; import { createSystem } from './stencil-sys'; -import { setPlatformPath } from '../sys/modules/path'; -import { createConfigFlags } from '../../cli/config-flags'; export const getConfig = (userConfig: d.Config): d.ValidatedConfig => { const logger = userConfig.logger ?? createLogger(); diff --git a/src/compiler/sys/fetch/fetch-module-async.ts b/src/compiler/sys/fetch/fetch-module-async.ts index f872d171b34..10cdb4924fe 100644 --- a/src/compiler/sys/fetch/fetch-module-async.ts +++ b/src/compiler/sys/fetch/fetch-module-async.ts @@ -1,6 +1,6 @@ import type * as d from '../../../declarations'; import { InMemoryFileSystem } from '../in-memory-fs'; -import { known404Urls, httpFetch } from './fetch-utils'; +import { httpFetch, known404Urls } from './fetch-utils'; import { skipFilePathFetch, skipUrlFetch } from './fetch-utils'; import { writeFetchSuccessAsync } from './write-fetch-success'; diff --git a/src/compiler/sys/fetch/fetch-module-sync.ts b/src/compiler/sys/fetch/fetch-module-sync.ts index 84217a0d4c7..6695d7e51c0 100644 --- a/src/compiler/sys/fetch/fetch-module-sync.ts +++ b/src/compiler/sys/fetch/fetch-module-sync.ts @@ -1,9 +1,10 @@ +import { isString } from '@utils'; + import type * as d from '../../../declarations'; +import { InMemoryFileSystem } from '../in-memory-fs'; import { known404Urls } from './fetch-utils'; -import { isString } from '@utils'; import { skipFilePathFetch, skipUrlFetch } from './fetch-utils'; import { writeFetchSuccessSync } from './write-fetch-success'; -import { InMemoryFileSystem } from '../in-memory-fs'; export const fetchModuleSync = ( sys: d.CompilerSystem, diff --git a/src/compiler/sys/fetch/fetch-utils.ts b/src/compiler/sys/fetch/fetch-utils.ts index fef1fbfdf87..cd54d7e35bd 100644 --- a/src/compiler/sys/fetch/fetch-utils.ts +++ b/src/compiler/sys/fetch/fetch-utils.ts @@ -1,6 +1,7 @@ +import { isFunction, normalizePath } from '@utils'; + import type * as d from '../../../declarations'; import { isCommonDirModuleFile, isTsFile, isTsxFile } from '../resolve/resolve-utils'; -import { isFunction, normalizePath } from '@utils'; /** * A fetch wrapper which dispatches to `sys.fetch` if present, and otherwise diff --git a/src/compiler/sys/fetch/tests/fetch-module.spec.ts b/src/compiler/sys/fetch/tests/fetch-module.spec.ts index 980d5bcfe99..2d7f3d6816b 100644 --- a/src/compiler/sys/fetch/tests/fetch-module.spec.ts +++ b/src/compiler/sys/fetch/tests/fetch-module.spec.ts @@ -1,6 +1,6 @@ import type * as d from '../../../../declarations'; -import { getNodeModuleFetchUrl, getStencilModuleUrl, skipFilePathFetch } from '../fetch-utils'; import { createSystem } from '../../stencil-sys'; +import { getNodeModuleFetchUrl, getStencilModuleUrl, skipFilePathFetch } from '../fetch-utils'; describe('fetch module', () => { let compilerExe: string; diff --git a/src/compiler/sys/fetch/write-fetch-success.ts b/src/compiler/sys/fetch/write-fetch-success.ts index df245451a49..e761eab1fbc 100644 --- a/src/compiler/sys/fetch/write-fetch-success.ts +++ b/src/compiler/sys/fetch/write-fetch-success.ts @@ -1,7 +1,8 @@ -import type * as d from '../../../declarations'; import { dirname } from 'path'; -import { setPackageVersionByContent } from '../resolve/resolve-utils'; + +import type * as d from '../../../declarations'; import { InMemoryFileSystem } from '../in-memory-fs'; +import { setPackageVersionByContent } from '../resolve/resolve-utils'; export const writeFetchSuccessSync = ( sys: d.CompilerSystem, diff --git a/src/compiler/sys/fs-patch.ts b/src/compiler/sys/fs-patch.ts index e4edab14b1a..aec1b278976 100644 --- a/src/compiler/sys/fs-patch.ts +++ b/src/compiler/sys/fs-patch.ts @@ -1,6 +1,7 @@ +import fs from 'fs'; + import type * as d from '../../declarations'; import { FsObj } from './modules/fs'; -import fs from 'fs'; export const patchFs = (userSys: d.CompilerSystem) => { const fsObj = fs as any as FsObj; diff --git a/src/compiler/sys/in-memory-fs.ts b/src/compiler/sys/in-memory-fs.ts index e547f5962a1..2b5f0065caf 100644 --- a/src/compiler/sys/in-memory-fs.ts +++ b/src/compiler/sys/in-memory-fs.ts @@ -1,6 +1,6 @@ import type * as d from '@stencil/core/internal'; +import { isIterable, isString, normalizePath } from '@utils'; import { basename, dirname, relative } from 'path'; -import { isIterable, normalizePath, isString } from '@utils'; /** * An in-memory FS which proxies the underlying OS filesystem using a simple diff --git a/src/compiler/sys/logger/terminal-logger.ts b/src/compiler/sys/logger/terminal-logger.ts index 5d9a84016c0..662346db513 100644 --- a/src/compiler/sys/logger/terminal-logger.ts +++ b/src/compiler/sys/logger/terminal-logger.ts @@ -1,13 +1,14 @@ +import ansiColor, { bgRed, blue, bold, cyan, dim, gray, green, magenta, red, yellow } from 'ansi-colors'; + import { Diagnostic, - Logger, - LogLevel, LOG_LEVELS, + Logger, + LoggerLineUpdater, LoggerTimeSpan, + LogLevel, PrintLine, - LoggerLineUpdater, } from '../../../declarations'; -import ansiColor, { bgRed, blue, bold, cyan, dim, gray, green, magenta, red, yellow } from 'ansi-colors'; /** * A type to capture the range of functions exported by the ansi-colors module diff --git a/src/compiler/sys/logger/test/terminal-logger.spec.ts b/src/compiler/sys/logger/test/terminal-logger.spec.ts index 6775c80dce9..52652bd25a8 100644 --- a/src/compiler/sys/logger/test/terminal-logger.spec.ts +++ b/src/compiler/sys/logger/test/terminal-logger.spec.ts @@ -1,8 +1,9 @@ -import { LogLevel, LOG_LEVELS } from '../../../../declarations'; -import { createNodeLoggerSys } from '../../../../sys/node/node-logger'; -import { createTerminalLogger, shouldLog } from '../terminal-logger'; import { bgRed, blue, bold, cyan, dim, gray, green, magenta, red, yellow } from 'ansi-colors'; + +import { LOG_LEVELS, LogLevel } from '../../../../declarations'; +import { createNodeLoggerSys } from '../../../../sys/node/node-logger'; import { setupConsoleMocker } from '../../../../testing/testing-utils'; +import { createTerminalLogger, shouldLog } from '../terminal-logger'; describe('terminal-logger', () => { describe('shouldLog helper', () => { diff --git a/src/compiler/sys/modules/compiler-deps.ts b/src/compiler/sys/modules/compiler-deps.ts index ed631265f6d..849bf602ba2 100644 --- a/src/compiler/sys/modules/compiler-deps.ts +++ b/src/compiler/sys/modules/compiler-deps.ts @@ -1,8 +1,8 @@ import rollupCommonjsPlugin from '@rollup/plugin-commonjs'; import rollupJsonPlugin from '@rollup/plugin-json'; import rollupNodeResolvePlugin from '@rollup/plugin-node-resolve'; -import rollupPluginUtils from '@rollup/pluginutils'; import rollupReplacePlugin from '@rollup/plugin-replace'; +import rollupPluginUtils from '@rollup/pluginutils'; export { rollupCommonjsPlugin }; export { rollupJsonPlugin }; diff --git a/src/compiler/sys/modules/fs.ts b/src/compiler/sys/modules/fs.ts index 335afd6c14e..fc903f0c4f0 100644 --- a/src/compiler/sys/modules/fs.ts +++ b/src/compiler/sys/modules/fs.ts @@ -1,7 +1,8 @@ -import type * as d from '../../../declarations'; +import { normalizePath } from '@utils'; import { basename } from 'path'; + +import type * as d from '../../../declarations'; import { promisify } from './util'; -import { normalizePath } from '@utils'; export interface FsObj { __sys: d.CompilerSystem; diff --git a/src/compiler/sys/modules/index.ts b/src/compiler/sys/modules/index.ts index da19246cd7f..870c9a20118 100644 --- a/src/compiler/sys/modules/index.ts +++ b/src/compiler/sys/modules/index.ts @@ -1,7 +1,7 @@ -export * from './dts-core'; -export * from './dts-internal'; export * from './compiler-deps'; export * from './crypto'; +export * from './dts-core'; +export * from './dts-internal'; export * from './events'; export * from './fs'; export * from './module'; diff --git a/src/compiler/sys/modules/path.ts b/src/compiler/sys/modules/path.ts index e676deb33fa..e6a623f888e 100644 --- a/src/compiler/sys/modules/path.ts +++ b/src/compiler/sys/modules/path.ts @@ -1,8 +1,9 @@ -import type * as d from '../../../declarations'; -import { IS_NODE_ENV, requireFunc } from '../environment'; import { normalizePath } from '@utils'; import pathBrowserify from 'path-browserify'; +import type * as d from '../../../declarations'; +import { IS_NODE_ENV, requireFunc } from '../environment'; + export let basename: any; export let dirname: any; export let extname: any; diff --git a/src/compiler/sys/node-require.ts b/src/compiler/sys/node-require.ts index f0fc5e4d45e..0d830a0c339 100644 --- a/src/compiler/sys/node-require.ts +++ b/src/compiler/sys/node-require.ts @@ -1,7 +1,8 @@ +import { catchError, loadTypeScriptDiagnostic } from '@utils'; +import ts from 'typescript'; + import type { Diagnostic } from '../../declarations'; import { IS_NODE_ENV } from './environment'; -import { loadTypeScriptDiagnostic, catchError } from '@utils'; -import ts from 'typescript'; export const nodeRequire = (id: string) => { const results = { diff --git a/src/compiler/sys/resolve/resolve-module-async.ts b/src/compiler/sys/resolve/resolve-module-async.ts index a4033f9152e..91d38c1915a 100644 --- a/src/compiler/sys/resolve/resolve-module-async.ts +++ b/src/compiler/sys/resolve/resolve-module-async.ts @@ -1,4 +1,11 @@ +import { isString, normalizeFsPath, normalizePath } from '@utils'; +import { basename, dirname } from 'path'; +import resolve, { AsyncOpts } from 'resolve'; + import type * as d from '../../../declarations'; +import { fetchModuleAsync } from '../fetch/fetch-module-async'; +import { getCommonDirUrl, getNodeModuleFetchUrl, packageVersions } from '../fetch/fetch-utils'; +import { InMemoryFileSystem } from '../in-memory-fs'; import { COMMON_DIR_FILENAMES, getCommonDirName, @@ -6,12 +13,6 @@ import { isCommonDirModuleFile, shouldFetchModule, } from './resolve-utils'; -import { basename, dirname } from 'path'; -import { fetchModuleAsync } from '../fetch/fetch-module-async'; -import { getCommonDirUrl, getNodeModuleFetchUrl, packageVersions } from '../fetch/fetch-utils'; -import { isString, normalizeFsPath, normalizePath } from '@utils'; -import resolve, { AsyncOpts } from 'resolve'; -import { InMemoryFileSystem } from '../in-memory-fs'; export const resolveModuleIdAsync = ( sys: d.CompilerSystem, diff --git a/src/compiler/sys/resolve/resolve-module-sync.ts b/src/compiler/sys/resolve/resolve-module-sync.ts index 2f6072848f1..b5cc04f7dde 100644 --- a/src/compiler/sys/resolve/resolve-module-sync.ts +++ b/src/compiler/sys/resolve/resolve-module-sync.ts @@ -1,12 +1,13 @@ -import type * as d from '../../../declarations'; -import { COMMON_DIR_FILENAMES, getCommonDirName, isCommonDirModuleFile, shouldFetchModule } from './resolve-utils'; -import { fetchModuleSync } from '../fetch/fetch-module-sync'; -import { getCommonDirUrl, getNodeModuleFetchUrl, packageVersions } from '../fetch/fetch-utils'; import { isString, normalizeFsPath, normalizePath } from '@utils'; -import { IS_WEB_WORKER_ENV } from '../environment'; import { basename, dirname } from 'path'; import resolve, { SyncOpts } from 'resolve'; + +import type * as d from '../../../declarations'; +import { IS_WEB_WORKER_ENV } from '../environment'; +import { fetchModuleSync } from '../fetch/fetch-module-sync'; +import { getCommonDirUrl, getNodeModuleFetchUrl, packageVersions } from '../fetch/fetch-utils'; import { InMemoryFileSystem } from '../in-memory-fs'; +import { COMMON_DIR_FILENAMES, getCommonDirName, isCommonDirModuleFile, shouldFetchModule } from './resolve-utils'; export const resolveRemoteModuleIdSync = ( config: d.Config, diff --git a/src/compiler/sys/resolve/resolve-utils.ts b/src/compiler/sys/resolve/resolve-utils.ts index 9082a9bd5e3..f6a90b8e6df 100644 --- a/src/compiler/sys/resolve/resolve-utils.ts +++ b/src/compiler/sys/resolve/resolve-utils.ts @@ -1,6 +1,7 @@ +import { normalizePath } from '@utils'; + import type * as d from '../../../declarations'; import { IS_BROWSER_ENV, IS_FETCH_ENV } from '../environment'; -import { normalizePath } from '@utils'; const COMMON_DIR_MODULE_EXTS = ['.tsx', '.ts', '.mjs', '.js', '.jsx', '.json', '.md']; diff --git a/src/compiler/sys/resolve/tests/resolve-module.spec.ts b/src/compiler/sys/resolve/tests/resolve-module.spec.ts index 8db95fa86ad..1e546a74685 100644 --- a/src/compiler/sys/resolve/tests/resolve-module.spec.ts +++ b/src/compiler/sys/resolve/tests/resolve-module.spec.ts @@ -2,8 +2,8 @@ import { getModuleId, getPackageDirPath, isLocalModule, - isStencilCoreImport, isNodeModulePath, + isStencilCoreImport, setPackageVersionByContent, } from '../resolve-utils'; diff --git a/src/compiler/sys/stencil-sys.ts b/src/compiler/sys/stencil-sys.ts index e9123df9457..826afd50466 100644 --- a/src/compiler/sys/stencil-sys.ts +++ b/src/compiler/sys/stencil-sys.ts @@ -1,3 +1,9 @@ +import { isRootPath, normalizePath } from '@utils'; +import * as os from 'os'; +import { basename, dirname, join } from 'path'; +import platformPath from 'path-browserify'; +import * as process from 'process'; + import type { CompilerFileWatcherCallback, CompilerFsStats, @@ -14,17 +20,12 @@ import type { CopyTask, Logger, } from '../../declarations'; -import platformPath from 'path-browserify'; -import { basename, dirname, join } from 'path'; -import * as process from 'process'; -import * as os from 'os'; +import { version } from '../../version'; import { buildEvents } from '../events'; -import { createLogger } from './logger/console-logger'; -import { createWebWorkerMainController } from './worker/web-worker-main'; import { HAS_WEB_WORKER, IS_BROWSER_ENV, IS_WEB_WORKER_ENV } from './environment'; -import { isRootPath, normalizePath } from '@utils'; +import { createLogger } from './logger/console-logger'; import { resolveModuleIdAsync } from './resolve/resolve-module-async'; -import { version } from '../../version'; +import { createWebWorkerMainController } from './worker/web-worker-main'; export const createSystem = (c?: { logger?: Logger }) => { const logger = c && c.logger ? c.logger : createLogger(); diff --git a/src/compiler/sys/tests/in-memory-fs.spec.ts b/src/compiler/sys/tests/in-memory-fs.spec.ts index 78507490a46..d275e77d522 100644 --- a/src/compiler/sys/tests/in-memory-fs.spec.ts +++ b/src/compiler/sys/tests/in-memory-fs.spec.ts @@ -1,7 +1,7 @@ import { createTestingSystem } from '../../../testing/testing-sys'; -import { getCommitInstructions, createInMemoryFs, shouldIgnore, InMemoryFileSystem } from '../in-memory-fs'; import { normalizePath } from '../../../utils'; -import { FsItems, FsItem } from '../in-memory-fs'; +import { createInMemoryFs, getCommitInstructions, InMemoryFileSystem, shouldIgnore } from '../in-memory-fs'; +import { FsItem, FsItems } from '../in-memory-fs'; describe(`in-memory-fs, getCommitInstructions`, () => { let items: FsItems; diff --git a/src/compiler/sys/typescript/tests/typescript-resolve-module.spec.ts b/src/compiler/sys/typescript/tests/typescript-resolve-module.spec.ts index b2c6a140c1f..2080af7abeb 100644 --- a/src/compiler/sys/typescript/tests/typescript-resolve-module.spec.ts +++ b/src/compiler/sys/typescript/tests/typescript-resolve-module.spec.ts @@ -1,10 +1,11 @@ +import ts from 'typescript'; + import type * as d from '../../../../declarations'; +import { normalizePath } from '../../../../utils'; import { createInMemoryFs, InMemoryFileSystem } from '../../../sys/in-memory-fs'; import { createSystem } from '../../../sys/stencil-sys'; import { ensureExtension } from '../typescript-resolve-module'; -import { normalizePath } from '../../../../utils'; import { patchedTsResolveModule } from '../typescript-resolve-module'; -import ts from 'typescript'; describe('typescript resolve module', () => { const config: d.Config = { rootDir: '/some/path' }; diff --git a/src/compiler/sys/typescript/tests/typescript-sys.spec.ts b/src/compiler/sys/typescript/tests/typescript-sys.spec.ts index 4af10e98ad3..eb42f0387f6 100644 --- a/src/compiler/sys/typescript/tests/typescript-sys.spec.ts +++ b/src/compiler/sys/typescript/tests/typescript-sys.spec.ts @@ -1,5 +1,5 @@ -import type * as d from '../../../../declarations'; import { createSystem } from '../../../../compiler/sys/stencil-sys'; +import type * as d from '../../../../declarations'; import { getTypescriptPathFromUrl } from '../typescript-sys'; describe('getTypescriptPathFromUrl', () => { diff --git a/src/compiler/sys/typescript/typescript-config.ts b/src/compiler/sys/typescript/typescript-config.ts index cf4f38cdd56..b4eefea8cdb 100644 --- a/src/compiler/sys/typescript/typescript-config.ts +++ b/src/compiler/sys/typescript/typescript-config.ts @@ -1,8 +1,9 @@ -import type * as d from '../../../declarations'; import { buildError, buildWarn, catchError, isString, loadTypeScriptDiagnostic, normalizePath } from '@utils'; import { isAbsolute, join, relative } from 'path'; import ts from 'typescript'; +import type * as d from '../../../declarations'; + export const validateTsConfig = async (config: d.Config, sys: d.CompilerSystem, init: d.LoadConfigInit) => { const tsconfig = { path: null as string, diff --git a/src/compiler/sys/typescript/typescript-resolve-module.ts b/src/compiler/sys/typescript/typescript-resolve-module.ts index bb3de3321ed..594b7bbd769 100644 --- a/src/compiler/sys/typescript/typescript-resolve-module.ts +++ b/src/compiler/sys/typescript/typescript-resolve-module.ts @@ -1,22 +1,23 @@ -import type * as d from '../../../declarations'; +import { isRemoteUrl, isString, normalizePath } from '@utils'; import { basename, dirname, isAbsolute, join, resolve } from 'path'; +import ts from 'typescript'; + +import type * as d from '../../../declarations'; +import { version } from '../../../version'; +import { IS_BROWSER_ENV, IS_NODE_ENV } from '../environment'; +import { InMemoryFileSystem } from '../in-memory-fs'; +import { resolveRemoteModuleIdSync } from '../resolve/resolve-module-sync'; import { isDtsFile, isJsFile, + isJsonFile, isJsxFile, isLocalModule, isStencilCoreImport, - isTsxFile, isTsFile, - isJsonFile, + isTsxFile, } from '../resolve/resolve-utils'; -import { IS_BROWSER_ENV, IS_NODE_ENV } from '../environment'; -import { isRemoteUrl, isString, normalizePath } from '@utils'; import { patchTsSystemFileSystem } from './typescript-sys'; -import { resolveRemoteModuleIdSync } from '../resolve/resolve-module-sync'; -import { version } from '../../../version'; -import ts from 'typescript'; -import { InMemoryFileSystem } from '../in-memory-fs'; export const patchTypeScriptResolveModule = (config: d.Config, inMemoryFs: InMemoryFileSystem) => { let compilerExe: string; diff --git a/src/compiler/sys/typescript/typescript-sys.ts b/src/compiler/sys/typescript/typescript-sys.ts index d078512a93c..0b1b4e5c09d 100644 --- a/src/compiler/sys/typescript/typescript-sys.ts +++ b/src/compiler/sys/typescript/typescript-sys.ts @@ -1,11 +1,12 @@ -import type * as d from '../../../declarations'; +import { isRemoteUrl, isString, noop, normalizePath } from '@utils'; import { basename, resolve } from 'path'; -import { isRemoteUrl, isString, normalizePath, noop } from '@utils'; -import { fetchUrlSync } from '../fetch/fetch-module-sync'; -import { getCurrentDirectory, IS_CASE_SENSITIVE_FILE_NAMES, IS_WEB_WORKER_ENV } from '../environment'; -import { patchTypeScriptResolveModule } from './typescript-resolve-module'; import ts from 'typescript'; + +import type * as d from '../../../declarations'; +import { getCurrentDirectory, IS_CASE_SENSITIVE_FILE_NAMES, IS_WEB_WORKER_ENV } from '../environment'; +import { fetchUrlSync } from '../fetch/fetch-module-sync'; import { InMemoryFileSystem } from '../in-memory-fs'; +import { patchTypeScriptResolveModule } from './typescript-resolve-module'; export const patchTsSystemFileSystem = ( config: d.Config, diff --git a/src/compiler/sys/worker/sys-worker.ts b/src/compiler/sys/worker/sys-worker.ts index 545e6071ca7..1413cba4da4 100644 --- a/src/compiler/sys/worker/sys-worker.ts +++ b/src/compiler/sys/worker/sys-worker.ts @@ -1,7 +1,8 @@ +import { isFunction } from '@utils'; + import type { ValidatedConfig } from '../../../declarations'; -import { createWorkerContext } from '../../worker/worker-thread'; import { createWorkerMainContext } from '../../worker/main-thread'; -import { isFunction } from '@utils'; +import { createWorkerContext } from '../../worker/worker-thread'; export const createSysWorker = (config: ValidatedConfig) => { if ( diff --git a/src/compiler/sys/worker/web-worker-main.ts b/src/compiler/sys/worker/web-worker-main.ts index 056220bbf23..a17144498ec 100644 --- a/src/compiler/sys/worker/web-worker-main.ts +++ b/src/compiler/sys/worker/web-worker-main.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; import { TASK_CANCELED_MSG } from '@utils'; +import type * as d from '../../../declarations'; + export const createWebWorkerMainController = ( sys: d.CompilerSystem, maxConcurrentWorkers: number diff --git a/src/compiler/sys/worker/web-worker-thread.ts b/src/compiler/sys/worker/web-worker-thread.ts index ef714afa040..5287a1667f3 100644 --- a/src/compiler/sys/worker/web-worker-thread.ts +++ b/src/compiler/sys/worker/web-worker-thread.ts @@ -1,4 +1,5 @@ import { isNumber, isString } from '@utils'; + import { MsgFromWorker, MsgToWorker, WorkerMsgHandler } from '../../../declarations'; export const initWebWorkerThread = (msgHandler: WorkerMsgHandler) => { diff --git a/src/compiler/transformers/add-component-meta-proxy.ts b/src/compiler/transformers/add-component-meta-proxy.ts index 8b18100bf84..c0b3b091fd3 100644 --- a/src/compiler/transformers/add-component-meta-proxy.ts +++ b/src/compiler/transformers/add-component-meta-proxy.ts @@ -1,9 +1,10 @@ -import type * as d from '../../declarations'; -import { convertValueToLiteral } from './transform-utils'; import { formatComponentRuntimeMeta } from '@utils'; -import { PROXY_CUSTOM_ELEMENT, RUNTIME_APIS, addCoreRuntimeApi } from './core-runtime-apis'; import ts from 'typescript'; +import type * as d from '../../declarations'; +import { addCoreRuntimeApi, PROXY_CUSTOM_ELEMENT, RUNTIME_APIS } from './core-runtime-apis'; +import { convertValueToLiteral } from './transform-utils'; + export const addModuleMetadataProxies = (tsSourceFile: ts.SourceFile, moduleFile: d.Module) => { const statements = tsSourceFile.statements.slice(); diff --git a/src/compiler/transformers/add-component-meta-static.ts b/src/compiler/transformers/add-component-meta-static.ts index 616dddb694b..5b0206a7d9b 100644 --- a/src/compiler/transformers/add-component-meta-static.ts +++ b/src/compiler/transformers/add-component-meta-static.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../declarations'; import { convertValueToLiteral, createStaticGetter } from './transform-utils'; -import ts from 'typescript'; /** * Update an instance of TypeScript's Intermediate Representation (IR) for a diff --git a/src/compiler/transformers/add-imports.ts b/src/compiler/transformers/add-imports.ts index 1bd7c7e808b..40200f2ab4b 100644 --- a/src/compiler/transformers/add-imports.ts +++ b/src/compiler/transformers/add-imports.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import ts from 'typescript'; -import { createRequireStatement, createImportStatement } from './transform-utils'; + +import type * as d from '../../declarations'; +import { createImportStatement, createRequireStatement } from './transform-utils'; export const addImports = ( transformOpts: d.TransformOptions, diff --git a/src/compiler/transformers/add-static-style.ts b/src/compiler/transformers/add-static-style.ts index 2208d961a43..ffd4ee76a7f 100644 --- a/src/compiler/transformers/add-static-style.ts +++ b/src/compiler/transformers/add-static-style.ts @@ -1,9 +1,10 @@ +import { dashToPascalCase, DEFAULT_STYLE_MODE } from '@utils'; +import ts from 'typescript'; + import type * as d from '../../declarations'; -import { createStaticGetter } from './transform-utils'; -import { DEFAULT_STYLE_MODE, dashToPascalCase } from '@utils'; -import { getScopeId } from '../style/scope-css'; import { scopeCss } from '../../utils/shadow-css'; -import ts from 'typescript'; +import { getScopeId } from '../style/scope-css'; +import { createStaticGetter } from './transform-utils'; /** * Adds static "style" getter within the class diff --git a/src/compiler/transformers/collections/add-external-import.ts b/src/compiler/transformers/collections/add-external-import.ts index e536ad50200..eff7d3da3c0 100644 --- a/src/compiler/transformers/collections/add-external-import.ts +++ b/src/compiler/transformers/collections/add-external-import.ts @@ -1,8 +1,9 @@ -import type * as d from '../../../declarations'; -import { dirname } from 'path'; import { isString, parsePackageJson } from '@utils'; -import { parseCollection } from './parse-collection-module'; +import { dirname } from 'path'; + +import type * as d from '../../../declarations'; import { tsResolveModuleNamePackageJsonPath } from '../../sys/typescript/typescript-resolve-module'; +import { parseCollection } from './parse-collection-module'; export const addExternalImport = ( config: d.Config, diff --git a/src/compiler/transformers/collections/parse-collection-components.ts b/src/compiler/transformers/collections/parse-collection-components.ts index d3083399fce..b61a31bd55f 100644 --- a/src/compiler/transformers/collections/parse-collection-components.ts +++ b/src/compiler/transformers/collections/parse-collection-components.ts @@ -1,8 +1,9 @@ -import type * as d from '../../../declarations'; import { join } from 'path'; -import { updateModule } from '../static-to-meta/parse-static'; import ts from 'typescript'; +import type * as d from '../../../declarations'; +import { updateModule } from '../static-to-meta/parse-static'; + export const parseCollectionComponents = ( config: d.Config, compilerCtx: d.CompilerCtx, diff --git a/src/compiler/transformers/collections/parse-collection-manifest.ts b/src/compiler/transformers/collections/parse-collection-manifest.ts index dbe6424b9a0..0e902227d4c 100644 --- a/src/compiler/transformers/collections/parse-collection-manifest.ts +++ b/src/compiler/transformers/collections/parse-collection-manifest.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; -import { join } from 'path'; import { normalizePath } from '@utils'; +import { join } from 'path'; + +import type * as d from '../../../declarations'; import { parseCollectionComponents, transpileCollectionModule } from './parse-collection-components'; export const parseCollectionManifest = ( diff --git a/src/compiler/transformers/collections/parse-collection-module.ts b/src/compiler/transformers/collections/parse-collection-module.ts index 501aa8d47d2..040db22e26e 100644 --- a/src/compiler/transformers/collections/parse-collection-module.ts +++ b/src/compiler/transformers/collections/parse-collection-module.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; -import { dirname, join, relative } from 'path'; import { normalizePath } from '@utils'; +import { dirname, join, relative } from 'path'; + +import type * as d from '../../../declarations'; import { parseCollectionManifest } from './parse-collection-manifest'; export const parseCollection = ( diff --git a/src/compiler/transformers/component-build-conditionals.ts b/src/compiler/transformers/component-build-conditionals.ts index f71dfabb731..2bc371d0e54 100644 --- a/src/compiler/transformers/component-build-conditionals.ts +++ b/src/compiler/transformers/component-build-conditionals.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { DEFAULT_STYLE_MODE } from '@utils'; +import type * as d from '../../declarations'; + export const setComponentBuildConditionals = (cmpMeta: d.ComponentCompilerMeta) => { if (cmpMeta.properties.length > 0) { cmpMeta.hasProp = true; diff --git a/src/compiler/transformers/component-hydrate/hydrate-component.ts b/src/compiler/transformers/component-hydrate/hydrate-component.ts index aeee3a54b54..1b73d448e03 100644 --- a/src/compiler/transformers/component-hydrate/hydrate-component.ts +++ b/src/compiler/transformers/component-hydrate/hydrate-component.ts @@ -1,11 +1,12 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; +import { updateLazyComponentConstructor } from '../component-lazy/lazy-constructor'; import { addLazyElementGetter } from '../component-lazy/lazy-element-getter'; -import { addHydrateRuntimeCmpMeta } from './hydrate-runtime-cmp-meta'; -import { addWatchers } from '../watcher-meta-transform'; -import { removeStaticMetaProperties } from '../remove-static-meta-properties'; import { transformHostData } from '../host-data-transform'; -import { updateLazyComponentConstructor } from '../component-lazy/lazy-constructor'; -import ts from 'typescript'; +import { removeStaticMetaProperties } from '../remove-static-meta-properties'; +import { addWatchers } from '../watcher-meta-transform'; +import { addHydrateRuntimeCmpMeta } from './hydrate-runtime-cmp-meta'; export const updateHydrateComponentClass = ( classNode: ts.ClassDeclaration, diff --git a/src/compiler/transformers/component-hydrate/hydrate-runtime-cmp-meta.ts b/src/compiler/transformers/component-hydrate/hydrate-runtime-cmp-meta.ts index f3701867997..4a75f1d99ee 100644 --- a/src/compiler/transformers/component-hydrate/hydrate-runtime-cmp-meta.ts +++ b/src/compiler/transformers/component-hydrate/hydrate-runtime-cmp-meta.ts @@ -1,8 +1,9 @@ +import { CMP_FLAGS, formatComponentRuntimeMeta } from '@utils'; +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { addStaticStyleGetterWithinClass } from '../add-static-style'; -import { CMP_FLAGS, formatComponentRuntimeMeta } from '@utils'; import { convertValueToLiteral, createStaticGetter } from '../transform-utils'; -import ts from 'typescript'; export const addHydrateRuntimeCmpMeta = (classMembers: ts.ClassElement[], cmp: d.ComponentCompilerMeta) => { const compactMeta: d.ComponentRuntimeMetaCompact = formatComponentRuntimeMeta(cmp, true); diff --git a/src/compiler/transformers/component-hydrate/tranform-to-hydrate-component.ts b/src/compiler/transformers/component-hydrate/tranform-to-hydrate-component.ts index 4f7dcc3a664..1f8fcd673aa 100644 --- a/src/compiler/transformers/component-hydrate/tranform-to-hydrate-component.ts +++ b/src/compiler/transformers/component-hydrate/tranform-to-hydrate-component.ts @@ -1,10 +1,11 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { addImports } from '../add-imports'; import { addLegacyApis } from '../core-runtime-apis'; +import { updateStyleImports } from '../style-imports'; import { getComponentMeta, getModuleFromSourceFile } from '../transform-utils'; import { updateHydrateComponentClass } from './hydrate-component'; -import { updateStyleImports } from '../style-imports'; -import ts from 'typescript'; export const hydrateComponentTransform = ( compilerCtx: d.CompilerCtx, diff --git a/src/compiler/transformers/component-lazy/lazy-component.ts b/src/compiler/transformers/component-lazy/lazy-component.ts index bbdaf1076fe..54d46734937 100644 --- a/src/compiler/transformers/component-lazy/lazy-component.ts +++ b/src/compiler/transformers/component-lazy/lazy-component.ts @@ -1,12 +1,13 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; -import { addLazyElementGetter } from './lazy-element-getter'; import { addStaticStylePropertyToClass } from '../add-static-style'; -import { addWatchers } from '../watcher-meta-transform'; -import { removeStaticMetaProperties } from '../remove-static-meta-properties'; import { transformHostData } from '../host-data-transform'; +import { removeStaticMetaProperties } from '../remove-static-meta-properties'; import { updateComponentClass } from '../update-component-class'; +import { addWatchers } from '../watcher-meta-transform'; import { updateLazyComponentConstructor } from './lazy-constructor'; -import ts from 'typescript'; +import { addLazyElementGetter } from './lazy-element-getter'; export const updateLazyComponentClass = ( transformOpts: d.TransformOptions, diff --git a/src/compiler/transformers/component-lazy/lazy-constructor.ts b/src/compiler/transformers/component-lazy/lazy-constructor.ts index a6a7a45bdb0..a37d53ee373 100644 --- a/src/compiler/transformers/component-lazy/lazy-constructor.ts +++ b/src/compiler/transformers/component-lazy/lazy-constructor.ts @@ -1,8 +1,9 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; +import { addCoreRuntimeApi, REGISTER_INSTANCE, RUNTIME_APIS } from '../core-runtime-apis'; import { addCreateEvents } from '../create-event'; import { addLegacyProps } from '../legacy-props'; -import { REGISTER_INSTANCE, RUNTIME_APIS, addCoreRuntimeApi } from '../core-runtime-apis'; -import ts from 'typescript'; export const updateLazyComponentConstructor = ( classMembers: ts.ClassElement[], diff --git a/src/compiler/transformers/component-lazy/lazy-element-getter.ts b/src/compiler/transformers/component-lazy/lazy-element-getter.ts index 56d25f0f0d7..d5fec00f07f 100644 --- a/src/compiler/transformers/component-lazy/lazy-element-getter.ts +++ b/src/compiler/transformers/component-lazy/lazy-element-getter.ts @@ -1,7 +1,8 @@ -import type * as d from '../../../declarations'; -import { GET_ELEMENT, RUNTIME_APIS, addCoreRuntimeApi } from '../core-runtime-apis'; import ts from 'typescript'; +import type * as d from '../../../declarations'; +import { addCoreRuntimeApi, GET_ELEMENT, RUNTIME_APIS } from '../core-runtime-apis'; + export const addLazyElementGetter = ( classMembers: ts.ClassElement[], moduleFile: d.Module, diff --git a/src/compiler/transformers/component-lazy/transform-lazy-component.ts b/src/compiler/transformers/component-lazy/transform-lazy-component.ts index 4fc12232a48..bbf36b3de17 100644 --- a/src/compiler/transformers/component-lazy/transform-lazy-component.ts +++ b/src/compiler/transformers/component-lazy/transform-lazy-component.ts @@ -1,10 +1,11 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { addImports } from '../add-imports'; import { addLegacyApis } from '../core-runtime-apis'; +import { updateStyleImports } from '../style-imports'; import { getComponentMeta, getModuleFromSourceFile } from '../transform-utils'; import { updateLazyComponentClass } from './lazy-component'; -import { updateStyleImports } from '../style-imports'; -import ts from 'typescript'; export const lazyComponentTransform = ( compilerCtx: d.CompilerCtx, diff --git a/src/compiler/transformers/component-native/add-define-custom-element-function.ts b/src/compiler/transformers/component-native/add-define-custom-element-function.ts index 1cab0fe88ab..506b856c128 100644 --- a/src/compiler/transformers/component-native/add-define-custom-element-function.ts +++ b/src/compiler/transformers/component-native/add-define-custom-element-function.ts @@ -1,8 +1,9 @@ -import type * as d from '../../../declarations'; -import { createImportStatement, getModuleFromSourceFile } from '../transform-utils'; import { dashToPascalCase } from '@utils'; import ts from 'typescript'; +import type * as d from '../../../declarations'; +import { createImportStatement, getModuleFromSourceFile } from '../transform-utils'; + /** * Import and define components along with any component dependents within the `dist-custom-elements` output. * Adds `defineCustomElement()` function for all components. diff --git a/src/compiler/transformers/component-native/native-component.ts b/src/compiler/transformers/component-native/native-component.ts index c92b5679c11..311f9ab21d0 100644 --- a/src/compiler/transformers/component-native/native-component.ts +++ b/src/compiler/transformers/component-native/native-component.ts @@ -1,15 +1,16 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; -import { addNativeComponentMeta } from './native-meta'; -import { addNativeConnectedCallback } from './native-connected-callback'; -import { addNativeElementGetter } from './native-element-getter'; -import { addNativeStaticStyle } from './native-static-style'; -import { addWatchers } from '../watcher-meta-transform'; -import { HTML_ELEMENT, RUNTIME_APIS, addCoreRuntimeApi } from '../core-runtime-apis'; -import { removeStaticMetaProperties } from '../remove-static-meta-properties'; +import { addCoreRuntimeApi, HTML_ELEMENT, RUNTIME_APIS } from '../core-runtime-apis'; import { transformHostData } from '../host-data-transform'; +import { removeStaticMetaProperties } from '../remove-static-meta-properties'; import { updateComponentClass } from '../update-component-class'; +import { addWatchers } from '../watcher-meta-transform'; +import { addNativeConnectedCallback } from './native-connected-callback'; import { updateNativeConstructor } from './native-constructor'; -import ts from 'typescript'; +import { addNativeElementGetter } from './native-element-getter'; +import { addNativeComponentMeta } from './native-meta'; +import { addNativeStaticStyle } from './native-static-style'; export const updateNativeComponentClass = ( transformOpts: d.TransformOptions, diff --git a/src/compiler/transformers/component-native/native-connected-callback.ts b/src/compiler/transformers/component-native/native-connected-callback.ts index 8f2547f488d..7ffc005f4dc 100644 --- a/src/compiler/transformers/component-native/native-connected-callback.ts +++ b/src/compiler/transformers/component-native/native-connected-callback.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; import ts from 'typescript'; +import type * as d from '../../../declarations'; + export const addNativeConnectedCallback = (classMembers: ts.ClassElement[], cmp: d.ComponentCompilerMeta) => { // function call to stencil's exported connectedCallback(elm, plt) diff --git a/src/compiler/transformers/component-native/native-constructor.ts b/src/compiler/transformers/component-native/native-constructor.ts index 713c3ff4622..4e14fe414a0 100644 --- a/src/compiler/transformers/component-native/native-constructor.ts +++ b/src/compiler/transformers/component-native/native-constructor.ts @@ -1,8 +1,9 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; +import { addCoreRuntimeApi, RUNTIME_APIS } from '../core-runtime-apis'; import { addCreateEvents } from '../create-event'; import { addLegacyProps } from '../legacy-props'; -import { RUNTIME_APIS, addCoreRuntimeApi } from '../core-runtime-apis'; -import ts from 'typescript'; export const updateNativeConstructor = ( classMembers: ts.ClassElement[], diff --git a/src/compiler/transformers/component-native/native-element-getter.ts b/src/compiler/transformers/component-native/native-element-getter.ts index 574648f65e3..b3deaea09fb 100644 --- a/src/compiler/transformers/component-native/native-element-getter.ts +++ b/src/compiler/transformers/component-native/native-element-getter.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; import ts from 'typescript'; +import type * as d from '../../../declarations'; + export const addNativeElementGetter = (classMembers: ts.ClassElement[], cmp: d.ComponentCompilerMeta) => { // @Element() element; // is transformed into: diff --git a/src/compiler/transformers/component-native/native-meta.ts b/src/compiler/transformers/component-native/native-meta.ts index f78cb19d3ba..aebf6f43664 100644 --- a/src/compiler/transformers/component-native/native-meta.ts +++ b/src/compiler/transformers/component-native/native-meta.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { convertValueToLiteral, createStaticGetter } from '../transform-utils'; -import ts from 'typescript'; export const addNativeComponentMeta = (classMembers: ts.ClassElement[], cmp: d.ComponentCompilerMeta) => { classMembers.push(createStaticGetter('is', convertValueToLiteral(cmp.tagName))); diff --git a/src/compiler/transformers/component-native/native-static-style.ts b/src/compiler/transformers/component-native/native-static-style.ts index 23a0fd73706..3e3dc4f356d 100644 --- a/src/compiler/transformers/component-native/native-static-style.ts +++ b/src/compiler/transformers/component-native/native-static-style.ts @@ -1,9 +1,10 @@ +import { dashToPascalCase, DEFAULT_STYLE_MODE } from '@utils'; +import ts from 'typescript'; + import type * as d from '../../../declarations'; -import { createStaticGetter } from '../transform-utils'; -import { DEFAULT_STYLE_MODE, dashToPascalCase } from '@utils'; -import { getScopeId } from '../../style/scope-css'; import { scopeCss } from '../../../utils/shadow-css'; -import ts from 'typescript'; +import { getScopeId } from '../../style/scope-css'; +import { createStaticGetter } from '../transform-utils'; export const addNativeStaticStyle = (classMembers: ts.ClassElement[], cmp: d.ComponentCompilerMeta) => { if (Array.isArray(cmp.styles) && cmp.styles.length > 0) { diff --git a/src/compiler/transformers/component-native/proxy-custom-element-function.ts b/src/compiler/transformers/component-native/proxy-custom-element-function.ts index b3a1d72a107..e97a187a9ec 100644 --- a/src/compiler/transformers/component-native/proxy-custom-element-function.ts +++ b/src/compiler/transformers/component-native/proxy-custom-element-function.ts @@ -1,4 +1,5 @@ import ts from 'typescript'; + import type * as d from '../../../declarations'; import { createAnonymousClassMetadataProxy } from '../add-component-meta-proxy'; import { addImports } from '../add-imports'; diff --git a/src/compiler/transformers/component-native/tranform-to-native-component.ts b/src/compiler/transformers/component-native/tranform-to-native-component.ts index 96a7827dad1..0ca35621526 100644 --- a/src/compiler/transformers/component-native/tranform-to-native-component.ts +++ b/src/compiler/transformers/component-native/tranform-to-native-component.ts @@ -1,12 +1,13 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; +import { addModuleMetadataProxies } from '../add-component-meta-proxy'; import { addImports } from '../add-imports'; import { addLegacyApis } from '../core-runtime-apis'; -import { addModuleMetadataProxies } from '../add-component-meta-proxy'; -import { getComponentMeta, getModuleFromSourceFile } from '../transform-utils'; import { defineCustomElement } from '../define-custom-element'; -import { updateNativeComponentClass } from './native-component'; import { updateStyleImports } from '../style-imports'; -import ts from 'typescript'; +import { getComponentMeta, getModuleFromSourceFile } from '../transform-utils'; +import { updateNativeComponentClass } from './native-component'; export const nativeComponentTransform = ( compilerCtx: d.CompilerCtx, diff --git a/src/compiler/transformers/create-event.ts b/src/compiler/transformers/create-event.ts index 48f26cef38d..79737f87a09 100644 --- a/src/compiler/transformers/create-event.ts +++ b/src/compiler/transformers/create-event.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; -import { CREATE_EVENT, RUNTIME_APIS, addCoreRuntimeApi } from './core-runtime-apis'; import { EVENT_FLAGS } from '@utils'; import ts from 'typescript'; +import type * as d from '../../declarations'; +import { addCoreRuntimeApi, CREATE_EVENT, RUNTIME_APIS } from './core-runtime-apis'; + export const addCreateEvents = (moduleFile: d.Module, cmp: d.ComponentCompilerMeta) => { return cmp.events.map((ev) => { addCoreRuntimeApi(moduleFile, RUNTIME_APIS.createEvent); diff --git a/src/compiler/transformers/decorators-to-static/component-decorator.ts b/src/compiler/transformers/decorators-to-static/component-decorator.ts index dfbf516bc1b..6ee38bd541e 100644 --- a/src/compiler/transformers/decorators-to-static/component-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/component-decorator.ts @@ -1,9 +1,10 @@ +import { augmentDiagnosticWithNode, buildError, buildWarn, isString, validateComponentTag } from '@utils'; +import ts from 'typescript'; + import type * as d from '../../../declarations'; -import { augmentDiagnosticWithNode, buildError, validateComponentTag, isString, buildWarn } from '@utils'; -import { getDeclarationParameters } from './decorator-utils'; import { convertValueToLiteral, createStaticGetter } from '../transform-utils'; +import { getDeclarationParameters } from './decorator-utils'; import { styleToStatic } from './style-to-static'; -import ts from 'typescript'; export const componentDecoratorToStatic = ( config: d.Config, diff --git a/src/compiler/transformers/decorators-to-static/convert-decorators.ts b/src/compiler/transformers/decorators-to-static/convert-decorators.ts index 2f6b9a5b105..94c9070070f 100644 --- a/src/compiler/transformers/decorators-to-static/convert-decorators.ts +++ b/src/compiler/transformers/decorators-to-static/convert-decorators.ts @@ -1,15 +1,16 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; -import { CLASS_DECORATORS_TO_REMOVE, MEMBER_DECORATORS_TO_REMOVE } from './decorators-constants'; import { componentDecoratorToStatic } from './component-decorator'; +import { isDecoratorNamed } from './decorator-utils'; +import { CLASS_DECORATORS_TO_REMOVE, MEMBER_DECORATORS_TO_REMOVE } from './decorators-constants'; import { elementDecoratorsToStatic } from './element-decorator'; import { eventDecoratorsToStatic } from './event-decorator'; import { listenDecoratorsToStatic } from './listen-decorator'; -import { isDecoratorNamed } from './decorator-utils'; import { methodDecoratorsToStatic, validateMethods } from './method-decorator'; import { propDecoratorsToStatic } from './prop-decorator'; import { stateDecoratorsToStatic } from './state-decorator'; import { watchDecoratorsToStatic } from './watch-decorator'; -import ts from 'typescript'; export const convertDecoratorsToStatic = ( config: d.Config, diff --git a/src/compiler/transformers/decorators-to-static/decorator-utils.ts b/src/compiler/transformers/decorators-to-static/decorator-utils.ts index d9258553560..f6bbb31ba06 100644 --- a/src/compiler/transformers/decorators-to-static/decorator-utils.ts +++ b/src/compiler/transformers/decorators-to-static/decorator-utils.ts @@ -1,6 +1,7 @@ -import { objectLiteralToObjectMap } from '../transform-utils'; import ts from 'typescript'; +import { objectLiteralToObjectMap } from '../transform-utils'; + export const getDeclarationParameters: GetDeclarationParameters = (decorator: ts.Decorator): any => { if (!ts.isCallExpression(decorator.expression)) { return []; diff --git a/src/compiler/transformers/decorators-to-static/element-decorator.ts b/src/compiler/transformers/decorators-to-static/element-decorator.ts index dfed09c4fa4..699313ce8a2 100644 --- a/src/compiler/transformers/decorators-to-static/element-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/element-decorator.ts @@ -1,8 +1,9 @@ -import type * as d from '../../../declarations'; import { buildError } from '@utils'; +import ts from 'typescript'; + +import type * as d from '../../../declarations'; import { createStaticGetter } from '../transform-utils'; import { isDecoratorNamed } from './decorator-utils'; -import ts from 'typescript'; export const elementDecoratorsToStatic = ( diagnostics: d.Diagnostic[], diff --git a/src/compiler/transformers/decorators-to-static/event-decorator.ts b/src/compiler/transformers/decorators-to-static/event-decorator.ts index 9a9c46693f3..2648ee28de4 100644 --- a/src/compiler/transformers/decorators-to-static/event-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/event-decorator.ts @@ -1,5 +1,7 @@ -import type * as d from '../../../declarations'; import { augmentDiagnosticWithNode, buildWarn } from '@utils'; +import ts from 'typescript'; + +import type * as d from '../../../declarations'; import { convertValueToLiteral, createStaticGetter, @@ -9,7 +11,6 @@ import { validateReferences, } from '../transform-utils'; import { getDeclarationParameters, isDecoratorNamed } from './decorator-utils'; -import ts from 'typescript'; export const eventDecoratorsToStatic = ( diagnostics: d.Diagnostic[], diff --git a/src/compiler/transformers/decorators-to-static/listen-decorator.ts b/src/compiler/transformers/decorators-to-static/listen-decorator.ts index ca53086d944..659e5570e7b 100644 --- a/src/compiler/transformers/decorators-to-static/listen-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/listen-decorator.ts @@ -1,8 +1,9 @@ -import type * as d from '../../../declarations'; import { augmentDiagnosticWithNode, buildError, flatOne } from '@utils'; +import ts from 'typescript'; + +import type * as d from '../../../declarations'; import { convertValueToLiteral, createStaticGetter } from '../transform-utils'; import { getDeclarationParameters, isDecoratorNamed } from './decorator-utils'; -import ts from 'typescript'; export const listenDecoratorsToStatic = ( diagnostics: d.Diagnostic[], diff --git a/src/compiler/transformers/decorators-to-static/method-decorator.ts b/src/compiler/transformers/decorators-to-static/method-decorator.ts index 3b71b65fda2..a3d89579b30 100644 --- a/src/compiler/transformers/decorators-to-static/method-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/method-decorator.ts @@ -1,5 +1,8 @@ -import type * as d from '../../../declarations'; import { augmentDiagnosticWithNode, buildError, buildWarn } from '@utils'; +import ts from 'typescript'; + +import type * as d from '../../../declarations'; +import { validatePublicName } from '../reserved-public-members'; import { convertValueToLiteral, createStaticGetter, @@ -11,8 +14,6 @@ import { validateReferences, } from '../transform-utils'; import { isDecoratorNamed } from './decorator-utils'; -import { validatePublicName } from '../reserved-public-members'; -import ts from 'typescript'; export const methodDecoratorsToStatic = ( config: d.Config, diff --git a/src/compiler/transformers/decorators-to-static/prop-decorator.ts b/src/compiler/transformers/decorators-to-static/prop-decorator.ts index 3e70622d574..bc3cc5efd69 100644 --- a/src/compiler/transformers/decorators-to-static/prop-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/prop-decorator.ts @@ -1,5 +1,8 @@ -import type * as d from '../../../declarations'; import { augmentDiagnosticWithNode, buildError, buildWarn, toDashCase } from '@utils'; +import ts from 'typescript'; + +import type * as d from '../../../declarations'; +import { validatePublicName } from '../reserved-public-members'; import { convertValueToLiteral, createStaticGetter, @@ -10,9 +13,7 @@ import { typeToString, validateReferences, } from '../transform-utils'; -import { isDecoratorNamed, getDeclarationParameters } from './decorator-utils'; -import { validatePublicName } from '../reserved-public-members'; -import ts from 'typescript'; +import { getDeclarationParameters, isDecoratorNamed } from './decorator-utils'; /** * Parse a collection of class members decorated with `@Prop()` diff --git a/src/compiler/transformers/decorators-to-static/state-decorator.ts b/src/compiler/transformers/decorators-to-static/state-decorator.ts index c235c093886..64ae16442c1 100644 --- a/src/compiler/transformers/decorators-to-static/state-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/state-decorator.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import { createStaticGetter } from '../transform-utils'; import { isDecoratorNamed } from './decorator-utils'; -import ts from 'typescript'; export const stateDecoratorsToStatic = ( decoratedProps: ts.ClassElement[], diff --git a/src/compiler/transformers/decorators-to-static/style-to-static.ts b/src/compiler/transformers/decorators-to-static/style-to-static.ts index 3900c45d269..8075346d41f 100644 --- a/src/compiler/transformers/decorators-to-static/style-to-static.ts +++ b/src/compiler/transformers/decorators-to-static/style-to-static.ts @@ -1,9 +1,10 @@ -import type * as d from '../../../declarations'; -import { basename, dirname, extname, join } from 'path'; -import { ConvertIdentifier, convertValueToLiteral, createStaticGetter } from '../transform-utils'; import { DEFAULT_STYLE_MODE } from '@utils'; +import { basename, dirname, extname, join } from 'path'; import ts from 'typescript'; +import type * as d from '../../../declarations'; +import { ConvertIdentifier, convertValueToLiteral, createStaticGetter } from '../transform-utils'; + export const styleToStatic = (newMembers: ts.ClassElement[], componentOptions: d.ComponentOptions) => { const defaultModeStyles = []; diff --git a/src/compiler/transformers/decorators-to-static/watch-decorator.ts b/src/compiler/transformers/decorators-to-static/watch-decorator.ts index 8efc3243ac3..3300c0ea369 100644 --- a/src/compiler/transformers/decorators-to-static/watch-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/watch-decorator.ts @@ -1,8 +1,9 @@ +import { augmentDiagnosticWithNode, buildError, buildWarn, flatOne } from '@utils'; +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { convertValueToLiteral, createStaticGetter } from '../transform-utils'; -import { flatOne, buildError, augmentDiagnosticWithNode, buildWarn } from '@utils'; import { getDeclarationParameters, isDecoratorNamed } from './decorator-utils'; -import ts from 'typescript'; export const watchDecoratorsToStatic = ( config: d.Config, diff --git a/src/compiler/transformers/define-custom-element.ts b/src/compiler/transformers/define-custom-element.ts index 2c35002f3bb..5f28b70678e 100644 --- a/src/compiler/transformers/define-custom-element.ts +++ b/src/compiler/transformers/define-custom-element.ts @@ -1,9 +1,10 @@ -import type * as d from '../../declarations'; -import { convertValueToLiteral } from './transform-utils'; -import { DEFINE_CUSTOM_ELEMENT, RUNTIME_APIS, addCoreRuntimeApi } from './core-runtime-apis'; import { formatComponentRuntimeMeta } from '@utils'; import ts from 'typescript'; +import type * as d from '../../declarations'; +import { addCoreRuntimeApi, DEFINE_CUSTOM_ELEMENT, RUNTIME_APIS } from './core-runtime-apis'; +import { convertValueToLiteral } from './transform-utils'; + export const defineCustomElement = ( tsSourceFile: ts.SourceFile, moduleFile: d.Module, diff --git a/src/compiler/transformers/host-data-transform.ts b/src/compiler/transformers/host-data-transform.ts index 30102349287..0eae7a0819b 100644 --- a/src/compiler/transformers/host-data-transform.ts +++ b/src/compiler/transformers/host-data-transform.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; -import { H, HOST, RUNTIME_APIS, addCoreRuntimeApi } from './core-runtime-apis'; import ts from 'typescript'; +import type * as d from '../../declarations'; +import { addCoreRuntimeApi, H, HOST, RUNTIME_APIS } from './core-runtime-apis'; + export const transformHostData = (classElements: ts.ClassElement[], moduleFile: d.Module) => { const hasHostData = classElements.some( (e) => ts.isMethodDeclaration(e) && (e.name as any).escapedText === 'hostData' diff --git a/src/compiler/transformers/legacy-props.ts b/src/compiler/transformers/legacy-props.ts index 0444e568c26..3f9c81e53c3 100644 --- a/src/compiler/transformers/legacy-props.ts +++ b/src/compiler/transformers/legacy-props.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; -import { GET_CONNECT, GET_CONTEXT, RUNTIME_APIS, addCoreRuntimeApi } from './core-runtime-apis'; import ts from 'typescript'; +import type * as d from '../../declarations'; +import { addCoreRuntimeApi, GET_CONNECT, GET_CONTEXT, RUNTIME_APIS } from './core-runtime-apis'; + export const addLegacyProps = (moduleFile: d.Module, cmp: d.ComponentCompilerMeta) => { if (cmp.legacyConnect.length > 0) { addCoreRuntimeApi(moduleFile, RUNTIME_APIS.getConnect); diff --git a/src/compiler/transformers/map-imports-to-path-aliases.ts b/src/compiler/transformers/map-imports-to-path-aliases.ts index ce3df3e8e50..3d948064eec 100644 --- a/src/compiler/transformers/map-imports-to-path-aliases.ts +++ b/src/compiler/transformers/map-imports-to-path-aliases.ts @@ -1,6 +1,7 @@ import { normalizePath } from '@utils'; import { dirname, relative } from 'path'; import ts from 'typescript'; + import type * as d from '../../declarations'; /** diff --git a/src/compiler/transformers/remove-collection-imports.ts b/src/compiler/transformers/remove-collection-imports.ts index b7383b99a06..005d5c3ef4a 100644 --- a/src/compiler/transformers/remove-collection-imports.ts +++ b/src/compiler/transformers/remove-collection-imports.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import ts from 'typescript'; +import type * as d from '../../declarations'; + export const removeCollectionImports = (compilerCtx: d.CompilerCtx): ts.TransformerFactory => { /* // remove side effect collection imports like: diff --git a/src/compiler/transformers/reserved-public-members.ts b/src/compiler/transformers/reserved-public-members.ts index c0c27dc4218..858af0157f0 100644 --- a/src/compiler/transformers/reserved-public-members.ts +++ b/src/compiler/transformers/reserved-public-members.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; import { augmentDiagnosticWithNode, buildWarn } from '@utils'; import ts from 'typescript'; +import type * as d from '../../declarations'; + /** * Determine if a public class member collides with a reserved name for HTML elements, nodes, or JSX * @param diagnostics a collection of compiler diagnostics. If a naming collision is found, a diagnostic detected must diff --git a/src/compiler/transformers/static-to-meta/call-expression.ts b/src/compiler/transformers/static-to-meta/call-expression.ts index acf26463124..20fd4a6d6eb 100644 --- a/src/compiler/transformers/static-to-meta/call-expression.ts +++ b/src/compiler/transformers/static-to-meta/call-expression.ts @@ -1,7 +1,8 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; -import { gatherVdomMeta } from './vdom'; import { H } from '../core-runtime-apis'; -import ts from 'typescript'; +import { gatherVdomMeta } from './vdom'; export const parseCallExpression = (m: d.Module | d.ComponentCompilerMeta, node: ts.CallExpression) => { if (node.arguments != null && node.arguments.length > 0) { diff --git a/src/compiler/transformers/static-to-meta/class-methods.ts b/src/compiler/transformers/static-to-meta/class-methods.ts index 459d552f302..786fc845b5d 100644 --- a/src/compiler/transformers/static-to-meta/class-methods.ts +++ b/src/compiler/transformers/static-to-meta/class-methods.ts @@ -1,5 +1,6 @@ -import type * as d from '../../../declarations'; import ts from 'typescript'; + +import type * as d from '../../../declarations'; import { isMethod } from '../transform-utils'; export const parseClassMethods = (cmpNode: ts.ClassDeclaration, cmpMeta: d.ComponentCompilerMeta) => { diff --git a/src/compiler/transformers/static-to-meta/component.ts b/src/compiler/transformers/static-to-meta/component.ts index 8bad85b8f37..84018298bd8 100644 --- a/src/compiler/transformers/static-to-meta/component.ts +++ b/src/compiler/transformers/static-to-meta/component.ts @@ -1,22 +1,23 @@ +import { normalizePath, unique } from '@utils'; +import { dirname, isAbsolute, join, relative } from 'path'; +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { addComponentMetaStatic } from '../add-component-meta-static'; -import { dirname, isAbsolute, join, relative } from 'path'; -import { normalizePath, unique } from '@utils'; -import { parseStaticMethods } from './methods'; -import { parseStaticListeners } from './listeners'; +import { setComponentBuildConditionals } from '../component-build-conditionals'; +import { getComponentTagName, getStaticValue, isInternal, isStaticGetter, serializeSymbol } from '../transform-utils'; +import { parseCallExpression } from './call-expression'; import { parseClassMethods } from './class-methods'; import { parseStaticElementRef } from './element-ref'; import { parseStaticEncapsulation, parseStaticShadowDelegatesFocus } from './encapsulation'; import { parseStaticEvents } from './events'; -import { getComponentTagName, getStaticValue, isInternal, isStaticGetter, serializeSymbol } from '../transform-utils'; +import { parseStaticListeners } from './listeners'; +import { parseStaticMethods } from './methods'; import { parseStaticProps } from './props'; import { parseStaticStates } from './states'; -import { parseStaticWatchers } from './watchers'; -import { parseStaticStyles } from './styles'; -import { parseCallExpression } from './call-expression'; import { parseStringLiteral } from './string-literal'; -import { setComponentBuildConditionals } from '../component-build-conditionals'; -import ts from 'typescript'; +import { parseStaticStyles } from './styles'; +import { parseStaticWatchers } from './watchers'; /** * Given an instance of TypeScript's Intermediate Representation (IR) for a diff --git a/src/compiler/transformers/static-to-meta/element-ref.ts b/src/compiler/transformers/static-to-meta/element-ref.ts index d7cb7f6b96f..ac36ca1aaa1 100644 --- a/src/compiler/transformers/static-to-meta/element-ref.ts +++ b/src/compiler/transformers/static-to-meta/element-ref.ts @@ -1,6 +1,7 @@ -import { getStaticValue } from '../transform-utils'; import ts from 'typescript'; +import { getStaticValue } from '../transform-utils'; + export const parseStaticElementRef = (staticMembers: ts.ClassElement[]) => { const parsedElementRef = getStaticValue(staticMembers, 'elementRef'); diff --git a/src/compiler/transformers/static-to-meta/encapsulation.ts b/src/compiler/transformers/static-to-meta/encapsulation.ts index 951857d04ee..398265ad0cb 100644 --- a/src/compiler/transformers/static-to-meta/encapsulation.ts +++ b/src/compiler/transformers/static-to-meta/encapsulation.ts @@ -1,6 +1,7 @@ -import { getStaticValue } from '../transform-utils'; import ts from 'typescript'; +import { getStaticValue } from '../transform-utils'; + export const parseStaticEncapsulation = (staticMembers: ts.ClassElement[]) => { let encapsulation: string = getStaticValue(staticMembers, 'encapsulation'); diff --git a/src/compiler/transformers/static-to-meta/events.ts b/src/compiler/transformers/static-to-meta/events.ts index 516ebb00a49..bbdb985aaf2 100644 --- a/src/compiler/transformers/static-to-meta/events.ts +++ b/src/compiler/transformers/static-to-meta/events.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { getStaticValue, isInternal } from '../transform-utils'; -import ts from 'typescript'; export const parseStaticEvents = (staticMembers: ts.ClassElement[]): d.ComponentCompilerEvent[] => { const parsedEvents: d.ComponentCompilerEvent[] = getStaticValue(staticMembers, 'events'); diff --git a/src/compiler/transformers/static-to-meta/import.ts b/src/compiler/transformers/static-to-meta/import.ts index 743f17d5261..919930af973 100644 --- a/src/compiler/transformers/static-to-meta/import.ts +++ b/src/compiler/transformers/static-to-meta/import.ts @@ -1,9 +1,10 @@ -import type * as d from '../../../declarations'; -import { addExternalImport } from '../collections/add-external-import'; -import { isAbsolute, resolve } from 'path'; import { normalizePath } from '@utils'; +import { isAbsolute, resolve } from 'path'; import ts from 'typescript'; +import type * as d from '../../../declarations'; +import { addExternalImport } from '../collections/add-external-import'; + export const parseModuleImport = ( config: d.Config, compilerCtx: d.CompilerCtx, diff --git a/src/compiler/transformers/static-to-meta/listeners.ts b/src/compiler/transformers/static-to-meta/listeners.ts index cfd96d9bf12..da2a0bd8f5f 100644 --- a/src/compiler/transformers/static-to-meta/listeners.ts +++ b/src/compiler/transformers/static-to-meta/listeners.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { getStaticValue } from '../transform-utils'; -import ts from 'typescript'; export const parseStaticListeners = (staticMembers: ts.ClassElement[]): d.ComponentCompilerListener[] => { const parsedListeners: d.ComponentCompilerListener[] = getStaticValue(staticMembers, 'listeners'); diff --git a/src/compiler/transformers/static-to-meta/methods.ts b/src/compiler/transformers/static-to-meta/methods.ts index 6a69e08ce07..67be9286771 100644 --- a/src/compiler/transformers/static-to-meta/methods.ts +++ b/src/compiler/transformers/static-to-meta/methods.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { getStaticValue, isInternal } from '../transform-utils'; -import ts from 'typescript'; export const parseStaticMethods = (staticMembers: ts.ClassElement[]): d.ComponentCompilerMethod[] => { const parsedMethods: { [key: string]: d.ComponentCompilerStaticMethod } = getStaticValue(staticMembers, 'methods'); diff --git a/src/compiler/transformers/static-to-meta/parse-static.ts b/src/compiler/transformers/static-to-meta/parse-static.ts index 27c7888b105..3c1ef6346ed 100644 --- a/src/compiler/transformers/static-to-meta/parse-static.ts +++ b/src/compiler/transformers/static-to-meta/parse-static.ts @@ -1,12 +1,13 @@ +import { normalizePath } from '@utils'; +import { basename, dirname, join } from 'path'; +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { createModule, getModule } from '../../transpile/transpiled-module'; -import { dirname, basename, join } from 'path'; -import { normalizePath } from '@utils'; import { parseCallExpression } from './call-expression'; -import { parseModuleImport } from './import'; import { parseStaticComponentMeta } from './component'; +import { parseModuleImport } from './import'; import { parseStringLiteral } from './string-literal'; -import ts from 'typescript'; export const updateModule = ( config: d.Config, diff --git a/src/compiler/transformers/static-to-meta/props.ts b/src/compiler/transformers/static-to-meta/props.ts index 0f96ab2d339..1788324b8b4 100644 --- a/src/compiler/transformers/static-to-meta/props.ts +++ b/src/compiler/transformers/static-to-meta/props.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { getStaticValue, isInternal } from '../transform-utils'; -import ts from 'typescript'; /** * Parse a list of {@link ts.ClassElement} objects representing static props diff --git a/src/compiler/transformers/static-to-meta/states.ts b/src/compiler/transformers/static-to-meta/states.ts index 4780422fbee..1fc68ffcea1 100644 --- a/src/compiler/transformers/static-to-meta/states.ts +++ b/src/compiler/transformers/static-to-meta/states.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { getStaticValue } from '../transform-utils'; -import ts from 'typescript'; export const parseStaticStates = (staticMembers: ts.ClassElement[]): d.ComponentCompilerState[] => { const parsedStates = getStaticValue(staticMembers, 'states'); diff --git a/src/compiler/transformers/static-to-meta/string-literal.ts b/src/compiler/transformers/static-to-meta/string-literal.ts index 1de677b4e86..9d6a56c7761 100644 --- a/src/compiler/transformers/static-to-meta/string-literal.ts +++ b/src/compiler/transformers/static-to-meta/string-literal.ts @@ -1,6 +1,7 @@ -import type * as d from '../../../declarations'; import ts from 'typescript'; +import type * as d from '../../../declarations'; + export const parseStringLiteral = (m: d.Module | d.ComponentCompilerMeta, node: ts.StringLiteral) => { if (typeof node.text === 'string' && node.text.includes(') => { m.hasVdomRender = true; diff --git a/src/compiler/transformers/static-to-meta/visitor.ts b/src/compiler/transformers/static-to-meta/visitor.ts index 86e08ebd92f..f439c7e66d2 100644 --- a/src/compiler/transformers/static-to-meta/visitor.ts +++ b/src/compiler/transformers/static-to-meta/visitor.ts @@ -1,11 +1,12 @@ -import type * as d from '../../../declarations'; import { dirname } from 'path'; +import ts from 'typescript'; + +import type * as d from '../../../declarations'; import { getModuleLegacy, resetModuleLegacy } from '../../build/compiler-ctx'; import { parseCallExpression } from './call-expression'; -import { parseModuleImport } from './import'; import { parseStaticComponentMeta } from './component'; +import { parseModuleImport } from './import'; import { parseStringLiteral } from './string-literal'; -import ts from 'typescript'; export const convertStaticToMeta = ( config: d.Config, diff --git a/src/compiler/transformers/static-to-meta/watchers.ts b/src/compiler/transformers/static-to-meta/watchers.ts index cafdafcfa0f..2378dfb7a35 100644 --- a/src/compiler/transformers/static-to-meta/watchers.ts +++ b/src/compiler/transformers/static-to-meta/watchers.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../../declarations'; import { getStaticValue } from '../transform-utils'; -import ts from 'typescript'; export const parseStaticWatchers = (staticMembers: ts.ClassElement[]): d.ComponentCompilerWatch[] => { const parsedWatchers: d.ComponentCompilerWatch[] = getStaticValue(staticMembers, 'watchers'); diff --git a/src/compiler/transformers/stencil-import-path.ts b/src/compiler/transformers/stencil-import-path.ts index be37e6c88b6..9323999cece 100644 --- a/src/compiler/transformers/stencil-import-path.ts +++ b/src/compiler/transformers/stencil-import-path.ts @@ -1,6 +1,7 @@ -import type { ImportData, ParsedImport, SerializeImportData } from '../../declarations'; -import { basename, dirname, isAbsolute, relative } from 'path'; import { DEFAULT_STYLE_MODE, isString, normalizePath } from '@utils'; +import { basename, dirname, isAbsolute, relative } from 'path'; + +import type { ImportData, ParsedImport, SerializeImportData } from '../../declarations'; /** * Serialize data about a style import to an annotated path, where diff --git a/src/compiler/transformers/style-imports.ts b/src/compiler/transformers/style-imports.ts index 86db4ba2b8f..d699391ed44 100644 --- a/src/compiler/transformers/style-imports.ts +++ b/src/compiler/transformers/style-imports.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../declarations'; import { serializeImportPath } from './stencil-import-path'; -import ts from 'typescript'; export const updateStyleImports = ( transformOpts: d.TransformOptions, diff --git a/src/compiler/transformers/test/add-component-meta-proxy.spec.ts b/src/compiler/transformers/test/add-component-meta-proxy.spec.ts index 01fbadfea60..8f5eb6cdf93 100644 --- a/src/compiler/transformers/test/add-component-meta-proxy.spec.ts +++ b/src/compiler/transformers/test/add-component-meta-proxy.spec.ts @@ -1,10 +1,11 @@ +import ts from 'typescript'; + +import { stubComponentCompilerMeta } from '../../../compiler/types/tests/ComponentCompilerMeta.stub'; import type * as d from '../../../declarations'; -import { createAnonymousClassMetadataProxy } from '../add-component-meta-proxy'; -import * as TransformUtils from '../transform-utils'; import * as FormatComponentRuntimeMeta from '../../../utils/format-component-runtime-meta'; -import ts from 'typescript'; +import { createAnonymousClassMetadataProxy } from '../add-component-meta-proxy'; import { HTML_ELEMENT } from '../core-runtime-apis'; -import { stubComponentCompilerMeta } from '../../../compiler/types/tests/ComponentCompilerMeta.stub'; +import * as TransformUtils from '../transform-utils'; describe('add-component-meta-proxy', () => { describe('createAnonymousClassMetadataProxy()', () => { diff --git a/src/compiler/transformers/test/lazy-component.spec.ts b/src/compiler/transformers/test/lazy-component.spec.ts index 2e288b96910..73053c4a5c8 100644 --- a/src/compiler/transformers/test/lazy-component.spec.ts +++ b/src/compiler/transformers/test/lazy-component.spec.ts @@ -1,7 +1,8 @@ +import { mockCompilerCtx } from '@stencil/core/testing'; + import type * as d from '../../../declarations'; -import { transpileModule } from './transpile'; import { lazyComponentTransform } from '../component-lazy/transform-lazy-component'; -import { mockCompilerCtx } from '@stencil/core/testing'; +import { transpileModule } from './transpile'; describe('lazy-component', () => { it('add registerInstance() to constructor w/ decorator on class', () => { diff --git a/src/compiler/transformers/test/map-imports-to-path-aliases.spec.ts b/src/compiler/transformers/test/map-imports-to-path-aliases.spec.ts index 23c1cc8dc4d..2dac82973bc 100644 --- a/src/compiler/transformers/test/map-imports-to-path-aliases.spec.ts +++ b/src/compiler/transformers/test/map-imports-to-path-aliases.spec.ts @@ -1,9 +1,10 @@ -import { mockValidatedConfig } from '@stencil/core/testing'; import type { OutputTargetDistCollection } from '@stencil/core/declarations'; -import { ValidatedConfig } from '../../../internal'; -import { transpileModule } from './transpile'; +import { mockValidatedConfig } from '@stencil/core/testing'; import ts, { Extension } from 'typescript'; + +import { ValidatedConfig } from '../../../internal'; import { mapImportsToPathAliases } from '../map-imports-to-path-aliases'; +import { transpileModule } from './transpile'; describe('mapImportsToPathAliases', () => { let module: ReturnType; diff --git a/src/compiler/transformers/test/native-constructor.spec.ts b/src/compiler/transformers/test/native-constructor.spec.ts index 5347d72ed94..145843884bc 100644 --- a/src/compiler/transformers/test/native-constructor.spec.ts +++ b/src/compiler/transformers/test/native-constructor.spec.ts @@ -1,7 +1,8 @@ -import { mockCompilerCtx } from '@stencil/core/testing'; import * as d from '@stencil/core/declarations'; -import { transpileModule } from './transpile'; +import { mockCompilerCtx } from '@stencil/core/testing'; + import { nativeComponentTransform } from '../component-native/tranform-to-native-component'; +import { transpileModule } from './transpile'; describe('nativeComponentTransform', () => { let compilerCtx: d.CompilerCtx; diff --git a/src/compiler/transformers/test/proxy-custom-element-function.spec.ts b/src/compiler/transformers/test/proxy-custom-element-function.spec.ts index aaccd1092eb..62681482a2b 100644 --- a/src/compiler/transformers/test/proxy-custom-element-function.spec.ts +++ b/src/compiler/transformers/test/proxy-custom-element-function.spec.ts @@ -1,11 +1,12 @@ -import { mockCompilerCtx } from '@stencil/core/testing'; import * as d from '@stencil/core/declarations'; -import { transpileModule } from './transpile'; -import { proxyCustomElement } from '../component-native/proxy-custom-element-function'; +import { mockCompilerCtx } from '@stencil/core/testing'; +import * as ts from 'typescript'; + import * as AddComponentMetaProxy from '../add-component-meta-proxy'; -import * as TransformUtils from '../transform-utils'; +import { proxyCustomElement } from '../component-native/proxy-custom-element-function'; import { PROXY_CUSTOM_ELEMENT } from '../core-runtime-apis'; -import * as ts from 'typescript'; +import * as TransformUtils from '../transform-utils'; +import { transpileModule } from './transpile'; describe('proxy-custom-element-function', () => { const componentClassName = 'MyComponent'; diff --git a/src/compiler/transformers/test/transpile.ts b/src/compiler/transformers/test/transpile.ts index 11b53e876f0..9c52f8f2f35 100644 --- a/src/compiler/transformers/test/transpile.ts +++ b/src/compiler/transformers/test/transpile.ts @@ -1,9 +1,10 @@ import type * as d from '@stencil/core/declarations'; -import { convertDecoratorsToStatic } from '../decorators-to-static/convert-decorators'; -import { convertStaticToMeta } from '../static-to-meta/visitor'; import { mockBuildCtx, mockCompilerCtx, mockConfig } from '@stencil/core/testing'; import ts from 'typescript'; + +import { convertDecoratorsToStatic } from '../decorators-to-static/convert-decorators'; import { updateModule } from '../static-to-meta/parse-static'; +import { convertStaticToMeta } from '../static-to-meta/visitor'; import { getScriptTarget } from '../transform-utils'; /** diff --git a/src/compiler/transformers/transform-utils.ts b/src/compiler/transformers/transform-utils.ts index 0ab374f2a0a..cd5f0b7c9e0 100644 --- a/src/compiler/transformers/transform-utils.ts +++ b/src/compiler/transformers/transform-utils.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; import { augmentDiagnosticWithNode, buildError, normalizePath } from '@utils'; -import { MEMBER_DECORATORS_TO_REMOVE } from './decorators-to-static/decorators-constants'; import ts from 'typescript'; +import type * as d from '../../declarations'; +import { MEMBER_DECORATORS_TO_REMOVE } from './decorators-to-static/decorators-constants'; + export const getScriptTarget = () => { // using a fn so the browser compiler doesn't require the global ts for startup return ts.ScriptTarget.ES2017; diff --git a/src/compiler/transformers/update-component-class.ts b/src/compiler/transformers/update-component-class.ts index c512074fa07..7f338fd7b50 100644 --- a/src/compiler/transformers/update-component-class.ts +++ b/src/compiler/transformers/update-component-class.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import ts from 'typescript'; +import type * as d from '../../declarations'; + export const updateComponentClass = ( transformOpts: d.TransformOptions, classNode: ts.ClassDeclaration, diff --git a/src/compiler/transformers/update-stencil-core-import.ts b/src/compiler/transformers/update-stencil-core-import.ts index 3a1a218e56a..1a6a0ec7b44 100644 --- a/src/compiler/transformers/update-stencil-core-import.ts +++ b/src/compiler/transformers/update-stencil-core-import.ts @@ -1,4 +1,5 @@ import ts from 'typescript'; + import { STENCIL_CORE_ID } from '../bundle/entry-alias-ids'; export const updateStencilCoreImports = (updatedCoreImportPath: string): ts.TransformerFactory => { diff --git a/src/compiler/transformers/watcher-meta-transform.ts b/src/compiler/transformers/watcher-meta-transform.ts index c6e33a2201d..7923d0f99da 100644 --- a/src/compiler/transformers/watcher-meta-transform.ts +++ b/src/compiler/transformers/watcher-meta-transform.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../declarations'; import { convertValueToLiteral, createStaticGetter } from './transform-utils'; -import ts from 'typescript'; export const addWatchers = (classMembers: ts.ClassElement[], cmp: d.ComponentCompilerMeta) => { if (cmp.watchers.length > 0) { diff --git a/src/compiler/transpile.ts b/src/compiler/transpile.ts index bdf7845e159..9fd12c6e35a 100644 --- a/src/compiler/transpile.ts +++ b/src/compiler/transpile.ts @@ -1,10 +1,11 @@ -import { TranspileOptions, TranspileResults, Config, TransformOptions, TransformCssToEsmInput } from '../declarations'; -import { catchError, getInlineSourceMappingUrlLinker, isString } from '@utils'; -import { getPublicCompilerMeta } from './transformers/add-component-meta-static'; -import { getTranspileCssConfig, getTranspileConfig, getTranspileResults } from './config/transpile-options'; -import { patchTypescript } from './sys/typescript/typescript-sys'; import { rollupPluginUtils } from '@compiler-deps'; +import { catchError, getInlineSourceMappingUrlLinker, isString } from '@utils'; + +import { Config, TransformCssToEsmInput, TransformOptions, TranspileOptions, TranspileResults } from '../declarations'; +import { getTranspileConfig, getTranspileCssConfig, getTranspileResults } from './config/transpile-options'; import { transformCssToEsm, transformCssToEsmSync } from './style/css-to-esm'; +import { patchTypescript } from './sys/typescript/typescript-sys'; +import { getPublicCompilerMeta } from './transformers/add-component-meta-static'; import { transpileModule } from './transpile/transpile-module'; export const transpile = async (code: string, opts: TranspileOptions = {}) => { diff --git a/src/compiler/transpile/create-build-program.ts b/src/compiler/transpile/create-build-program.ts index afbff451e7d..71632963086 100644 --- a/src/compiler/transpile/create-build-program.ts +++ b/src/compiler/transpile/create-build-program.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../declarations'; import { getTsOptionsToExtend } from './ts-config'; -import ts from 'typescript'; /** * Create a TypeScript Program ({@link ts.Program}) to perform builds of a Stencil project using the provided diff --git a/src/compiler/transpile/create-watch-program.ts b/src/compiler/transpile/create-watch-program.ts index 57227190cdc..a7d54e77f3e 100644 --- a/src/compiler/transpile/create-watch-program.ts +++ b/src/compiler/transpile/create-watch-program.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../declarations'; import { getTsOptionsToExtend } from './ts-config'; -import ts from 'typescript'; export const createTsWatchProgram = async ( config: d.ValidatedConfig, diff --git a/src/compiler/transpile/run-program.ts b/src/compiler/transpile/run-program.ts index 65ce3f429fc..899f87397dd 100644 --- a/src/compiler/transpile/run-program.ts +++ b/src/compiler/transpile/run-program.ts @@ -1,13 +1,14 @@ -import type * as d from '../../declarations'; -import { basename, join, relative } from 'path'; -import { convertDecoratorsToStatic } from '../transformers/decorators-to-static/convert-decorators'; -import { generateAppTypes } from '../types/generate-app-types'; -import { getComponentsFromModules, isOutputTargetDistTypes } from '../output-targets/output-utils'; import { loadTypeScriptDiagnostics, normalizePath } from '@utils'; -import { resolveComponentDependencies } from '../entries/resolve-component-dependencies'; +import { basename, join, relative } from 'path'; import type ts from 'typescript'; + +import type * as d from '../../declarations'; import { updateComponentBuildConditionals } from '../app-core/app-data'; +import { resolveComponentDependencies } from '../entries/resolve-component-dependencies'; +import { getComponentsFromModules, isOutputTargetDistTypes } from '../output-targets/output-utils'; +import { convertDecoratorsToStatic } from '../transformers/decorators-to-static/convert-decorators'; import { updateModule } from '../transformers/static-to-meta/parse-static'; +import { generateAppTypes } from '../types/generate-app-types'; import { updateStencilTypesImports } from '../types/stencil-types'; import { validateTranspiledComponents } from './validate-components'; diff --git a/src/compiler/transpile/transpile-module.ts b/src/compiler/transpile/transpile-module.ts index 282de8ac1e7..83edf35f046 100644 --- a/src/compiler/transpile/transpile-module.ts +++ b/src/compiler/transpile/transpile-module.ts @@ -1,15 +1,16 @@ +import { isNumber, isString, loadTypeScriptDiagnostics, normalizePath } from '@utils'; +import ts from 'typescript'; + import type * as d from '../../declarations'; import { BuildContext } from '../build/build-ctx'; import { CompilerContext } from '../build/compiler-ctx'; -import { convertDecoratorsToStatic } from '../transformers/decorators-to-static/convert-decorators'; -import { convertStaticToMeta } from '../transformers/static-to-meta/visitor'; -import { createLogger } from '../sys/logger/console-logger'; import { getCurrentDirectory } from '../sys/environment'; -import { isNumber, isString, loadTypeScriptDiagnostics, normalizePath } from '@utils'; +import { createLogger } from '../sys/logger/console-logger'; import { lazyComponentTransform } from '../transformers/component-lazy/transform-lazy-component'; import { nativeComponentTransform } from '../transformers/component-native/tranform-to-native-component'; +import { convertDecoratorsToStatic } from '../transformers/decorators-to-static/convert-decorators'; +import { convertStaticToMeta } from '../transformers/static-to-meta/visitor'; import { updateStencilCoreImports } from '../transformers/update-stencil-core-import'; -import ts from 'typescript'; /** * Stand-alone compiling of a single string diff --git a/src/compiler/transpile/transpiled-module.ts b/src/compiler/transpile/transpiled-module.ts index f7b6d84c8b2..26d90a9ca3a 100644 --- a/src/compiler/transpile/transpiled-module.ts +++ b/src/compiler/transpile/transpiled-module.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; import { normalizePath } from '@utils'; import ts from 'typescript'; +import type * as d from '../../declarations'; + export const getModule = (compilerCtx: d.CompilerCtx, filePath: string) => compilerCtx.moduleMap.get(normalizePath(filePath)); diff --git a/src/compiler/transpile/ts-config.ts b/src/compiler/transpile/ts-config.ts index 2fc8f16e764..bcebfe2f73c 100644 --- a/src/compiler/transpile/ts-config.ts +++ b/src/compiler/transpile/ts-config.ts @@ -1,6 +1,7 @@ +import ts from 'typescript'; + import type * as d from '../../declarations'; import { isOutputTargetDistTypes } from '../output-targets/output-utils'; -import ts from 'typescript'; export const getTsOptionsToExtend = (config: d.ValidatedConfig) => { const tsOptions: ts.CompilerOptions = { diff --git a/src/compiler/transpile/validate-components.ts b/src/compiler/transpile/validate-components.ts index fe42d97864b..2dbf304509c 100644 --- a/src/compiler/transpile/validate-components.ts +++ b/src/compiler/transpile/validate-components.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; import { buildError } from '@utils'; import { relative } from 'path'; +import type * as d from '../../declarations'; + export const validateTranspiledComponents = (config: d.Config, buildCtx: d.BuildCtx) => { for (const cmp of buildCtx.components) { validateUniqueTagNames(config, buildCtx, cmp); diff --git a/src/compiler/types/generate-app-types.ts b/src/compiler/types/generate-app-types.ts index c1c43bb87f0..f45f86804c1 100644 --- a/src/compiler/types/generate-app-types.ts +++ b/src/compiler/types/generate-app-types.ts @@ -1,12 +1,13 @@ +import { normalizePath } from '@utils'; +import { isAbsolute, relative, resolve } from 'path'; + import type * as d from '../../declarations'; -import { COMPONENTS_DTS_HEADER, sortImportNames } from './types-utils'; +import { GENERATED_DTS, getComponentsDtsSrcFilePath } from '../output-targets/output-utils'; import { generateComponentTypes } from './generate-component-types'; import { generateEventDetailTypes } from './generate-event-detail-types'; -import { GENERATED_DTS, getComponentsDtsSrcFilePath } from '../output-targets/output-utils'; -import { isAbsolute, relative, resolve } from 'path'; -import { normalizePath } from '@utils'; -import { updateReferenceTypeImports } from './update-import-refs'; import { updateStencilTypesImports } from './stencil-types'; +import { COMPONENTS_DTS_HEADER, sortImportNames } from './types-utils'; +import { updateReferenceTypeImports } from './update-import-refs'; /** * Generates and writes a `components.d.ts` file to disk. This file may be written to the `src` directory of a project, diff --git a/src/compiler/types/generate-component-types.ts b/src/compiler/types/generate-component-types.ts index 205f06b6719..1f39ad44913 100644 --- a/src/compiler/types/generate-component-types.ts +++ b/src/compiler/types/generate-component-types.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { dashToPascalCase, sortBy } from '@utils'; + +import type * as d from '../../declarations'; import { generateEventTypes } from './generate-event-types'; import { generateMethodTypes } from './generate-method-types'; import { generatePropTypes } from './generate-prop-types'; diff --git a/src/compiler/types/generate-event-detail-types.ts b/src/compiler/types/generate-event-detail-types.ts index bdfbfb06dea..2228ab8bcfe 100644 --- a/src/compiler/types/generate-event-detail-types.ts +++ b/src/compiler/types/generate-event-detail-types.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { dashToPascalCase } from '@utils'; +import type * as d from '../../declarations'; + /** * Generates the custom event interface for each component that combines the `CustomEvent` interface with * the HTMLElement target. This is used to allow implementers to use strict typings on event handlers. diff --git a/src/compiler/types/generate-event-types.ts b/src/compiler/types/generate-event-types.ts index 1c692c97406..a8e537afd6d 100644 --- a/src/compiler/types/generate-event-types.ts +++ b/src/compiler/types/generate-event-types.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { getTextDocs, toTitleCase } from '@utils'; + +import type * as d from '../../declarations'; import { updateTypeIdentifierNames } from './stencil-types'; /** diff --git a/src/compiler/types/generate-method-types.ts b/src/compiler/types/generate-method-types.ts index b62cd36b9b9..796437fec59 100644 --- a/src/compiler/types/generate-method-types.ts +++ b/src/compiler/types/generate-method-types.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { getTextDocs } from '@utils'; + +import type * as d from '../../declarations'; import { updateTypeIdentifierNames } from './stencil-types'; /** diff --git a/src/compiler/types/generate-prop-types.ts b/src/compiler/types/generate-prop-types.ts index 4a9fc290851..f169462ce32 100644 --- a/src/compiler/types/generate-prop-types.ts +++ b/src/compiler/types/generate-prop-types.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { getTextDocs } from '@utils'; + +import type * as d from '../../declarations'; import { updateTypeIdentifierNames } from './stencil-types'; /** diff --git a/src/compiler/types/generate-types.ts b/src/compiler/types/generate-types.ts index ae8552f5421..66527bc5512 100644 --- a/src/compiler/types/generate-types.ts +++ b/src/compiler/types/generate-types.ts @@ -1,10 +1,11 @@ -import type * as d from '../../declarations'; -import { copyStencilCoreDts, updateStencilTypesImports } from './stencil-types'; +import { isDtsFile } from '@utils'; import { join, relative } from 'path'; -import { generateAppTypes } from './generate-app-types'; -import { generateCustomElementsBundleTypes } from '../output-targets/dist-custom-elements-bundle/custom-elements-bundle-types'; + +import type * as d from '../../declarations'; import { generateCustomElementsTypes } from '../output-targets/dist-custom-elements/custom-elements-types'; -import { isDtsFile } from '@utils'; +import { generateCustomElementsBundleTypes } from '../output-targets/dist-custom-elements-bundle/custom-elements-bundle-types'; +import { generateAppTypes } from './generate-app-types'; +import { copyStencilCoreDts, updateStencilTypesImports } from './stencil-types'; /** * For a single output target, generate types, then copy the Stencil core type declaration file diff --git a/src/compiler/types/stencil-types.ts b/src/compiler/types/stencil-types.ts index 808fd866b53..39b4bfec510 100644 --- a/src/compiler/types/stencil-types.ts +++ b/src/compiler/types/stencil-types.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; +import { normalizePath } from '@utils'; import { dirname, join, relative, resolve } from 'path'; + +import type * as d from '../../declarations'; import { isOutputTargetDistTypes } from '../output-targets/output-utils'; -import { normalizePath } from '@utils'; import { FsWriteResults } from '../sys/in-memory-fs'; /** diff --git a/src/compiler/types/tests/generate-event-detail-types.spec.ts b/src/compiler/types/tests/generate-event-detail-types.spec.ts index ab055a8e2c3..ea36a627a52 100644 --- a/src/compiler/types/tests/generate-event-detail-types.spec.ts +++ b/src/compiler/types/tests/generate-event-detail-types.spec.ts @@ -1,6 +1,6 @@ import type * as d from '../../../declarations'; -import { stubComponentCompilerMeta } from './ComponentCompilerMeta.stub'; import { generateEventDetailTypes } from '../generate-event-detail-types'; +import { stubComponentCompilerMeta } from './ComponentCompilerMeta.stub'; describe('generate-event-detail-types', () => { describe('generateEventDetailTypes', () => { diff --git a/src/compiler/types/tests/generate-event-types.spec.ts b/src/compiler/types/tests/generate-event-types.spec.ts index 46db8fbc6db..9b3ca5980df 100644 --- a/src/compiler/types/tests/generate-event-types.spec.ts +++ b/src/compiler/types/tests/generate-event-types.spec.ts @@ -1,10 +1,10 @@ import type * as d from '../../../declarations'; -import { generateEventTypes } from '../generate-event-types'; -import * as StencilTypes from '../stencil-types'; import * as UtilHelpers from '../../../utils/helpers'; import * as Util from '../../../utils/util'; -import { stubComponentCompilerMeta } from './ComponentCompilerMeta.stub'; +import { generateEventTypes } from '../generate-event-types'; +import * as StencilTypes from '../stencil-types'; import { stubComponentCompilerEvent } from './ComponentCompilerEvent.stub'; +import { stubComponentCompilerMeta } from './ComponentCompilerMeta.stub'; import { stubTypesImportData } from './TypesImportData.stub'; describe('generate-event-types', () => { diff --git a/src/compiler/types/tests/generate-method-types.spec.ts b/src/compiler/types/tests/generate-method-types.spec.ts index 057b89a8baf..a847e79a6d5 100644 --- a/src/compiler/types/tests/generate-method-types.spec.ts +++ b/src/compiler/types/tests/generate-method-types.spec.ts @@ -1,7 +1,7 @@ import type * as d from '../../../declarations'; +import * as Util from '../../../utils/util'; import { generateMethodTypes } from '../generate-method-types'; import * as StencilTypes from '../stencil-types'; -import * as Util from '../../../utils/util'; import { stubComponentCompilerMeta } from './ComponentCompilerMeta.stub'; import { stubComponentCompilerMethod } from './ComponentCompilerMethod.stub'; import { stubTypesImportData } from './TypesImportData.stub'; diff --git a/src/compiler/types/tests/generate-prop-types.spec.ts b/src/compiler/types/tests/generate-prop-types.spec.ts index a757452e463..5a86d333a4c 100644 --- a/src/compiler/types/tests/generate-prop-types.spec.ts +++ b/src/compiler/types/tests/generate-prop-types.spec.ts @@ -1,7 +1,7 @@ import type * as d from '../../../declarations'; +import * as Util from '../../../utils/util'; import { generatePropTypes } from '../generate-prop-types'; import * as StencilTypes from '../stencil-types'; -import * as Util from '../../../utils/util'; import { stubComponentCompilerMeta } from './ComponentCompilerMeta.stub'; import { stubComponentCompilerProperty } from './ComponentCompilerProperty.stub'; import { stubComponentCompilerVirtualProperty } from './ComponentCompilerVirtualProperty.stub'; diff --git a/src/compiler/types/tests/stencil-types.spec.ts b/src/compiler/types/tests/stencil-types.spec.ts index fa92b22edf9..5f9ce02de4c 100644 --- a/src/compiler/types/tests/stencil-types.spec.ts +++ b/src/compiler/types/tests/stencil-types.spec.ts @@ -1,9 +1,10 @@ import * as d from '@stencil/core/declarations'; import path from 'path'; + +import { updateTypeIdentifierNames } from '../stencil-types'; import { stubComponentCompilerMeta } from './ComponentCompilerMeta.stub'; import { stubComponentCompilerTypeReference } from './ComponentCompilerTypeReference.stub'; import { stubTypesImportData } from './TypesImportData.stub'; -import { updateTypeIdentifierNames } from '../stencil-types'; describe('stencil-types', () => { describe('updateTypeMemberNames', () => { diff --git a/src/compiler/types/tests/validate-package-json.spec.ts b/src/compiler/types/tests/validate-package-json.spec.ts index 703a5be3b5e..2ef92656258 100644 --- a/src/compiler/types/tests/validate-package-json.spec.ts +++ b/src/compiler/types/tests/validate-package-json.spec.ts @@ -1,9 +1,10 @@ import type * as d from '@stencil/core/declarations'; import { mockBuildCtx, mockCompilerCtx, mockValidatedConfig } from '@stencil/core/testing'; -import * as v from '../validate-build-package-json'; import path from 'path'; -import { DIST_COLLECTION, DIST_CUSTOM_ELEMENTS, DIST_CUSTOM_ELEMENTS_BUNDLE } from '../../output-targets/output-utils'; + import { normalizePath } from '../../../utils/normalize-path'; +import { DIST_COLLECTION, DIST_CUSTOM_ELEMENTS, DIST_CUSTOM_ELEMENTS_BUNDLE } from '../../output-targets/output-utils'; +import * as v from '../validate-build-package-json'; describe('validate-package-json', () => { let config: d.ValidatedConfig; diff --git a/src/compiler/types/update-import-refs.ts b/src/compiler/types/update-import-refs.ts index 32c86e951ff..0c0d101bafc 100644 --- a/src/compiler/types/update-import-refs.ts +++ b/src/compiler/types/update-import-refs.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { dirname, resolve } from 'path'; +import type * as d from '../../declarations'; + /** * Find all referenced types by a component and add them to the `importDataObj` parameter * @param importDataObj an output parameter that contains the imported types seen thus far by the compiler diff --git a/src/compiler/types/validate-build-package-json.ts b/src/compiler/types/validate-build-package-json.ts index 887d5034ac4..a6af76d00c0 100644 --- a/src/compiler/types/validate-build-package-json.ts +++ b/src/compiler/types/validate-build-package-json.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; -import { COLLECTION_MANIFEST_FILE_NAME, buildJsonFileError, isGlob, normalizePath, isString } from '@utils'; +import { buildJsonFileError, COLLECTION_MANIFEST_FILE_NAME, isGlob, isString, normalizePath } from '@utils'; import { dirname, join, relative } from 'path'; + +import type * as d from '../../declarations'; import { getComponentsDtsTypesFilePath, isOutputTargetDistCollection, diff --git a/src/declarations/stencil-private.ts b/src/declarations/stencil-private.ts index a8bd897e72d..6acabc9739b 100644 --- a/src/declarations/stencil-private.ts +++ b/src/declarations/stencil-private.ts @@ -1,3 +1,4 @@ +import type { InMemoryFileSystem } from '../compiler/sys/in-memory-fs'; import type { BuildEvents, BuildLog, @@ -13,6 +14,7 @@ import type { DevServerEditor, Diagnostic, Logger, + LoggerLineUpdater, LoggerTimeSpan, OptimizeCssInput, OptimizeCssOutput, @@ -20,10 +22,8 @@ import type { PageReloadStrategy, PrerenderConfig, StyleDoc, - LoggerLineUpdater, TaskCommand, } from './stencil-public-compiler'; - import type { ComponentInterface, ListenOptions, @@ -31,7 +31,6 @@ import type { VNode, VNodeData, } from './stencil-public-runtime'; -import type { InMemoryFileSystem } from '../compiler/sys/in-memory-fs'; export interface SourceMap { file: string; diff --git a/src/declarations/stencil-public-compiler.ts b/src/declarations/stencil-public-compiler.ts index 907715ce344..0d1f11410ce 100644 --- a/src/declarations/stencil-public-compiler.ts +++ b/src/declarations/stencil-public-compiler.ts @@ -1,6 +1,6 @@ -import type { JsonDocs } from './stencil-public-docs'; -import type { PrerenderUrlResults } from '../internal'; import type { ConfigFlags } from '../cli/config-flags'; +import type { PrerenderUrlResults } from '../internal'; +import type { JsonDocs } from './stencil-public-docs'; export * from './stencil-public-docs'; diff --git a/src/dev-server/client/hmr-components.ts b/src/dev-server/client/hmr-components.ts index ff6b1a215ab..f60faeff4f4 100644 --- a/src/dev-server/client/hmr-components.ts +++ b/src/dev-server/client/hmr-components.ts @@ -1,5 +1,5 @@ import { HostElement } from '../../declarations'; -import { setHmrAttr, hasShadowRoot } from './hmr-util'; +import { hasShadowRoot, setHmrAttr } from './hmr-util'; export const hmrComponents = (elm: Element, versionId: string, hmrTagNames: string[]) => { const updatedTags: string[] = []; diff --git a/src/dev-server/client/hmr-external-styles.ts b/src/dev-server/client/hmr-external-styles.ts index ac214b04191..5afbbee50f5 100644 --- a/src/dev-server/client/hmr-external-styles.ts +++ b/src/dev-server/client/hmr-external-styles.ts @@ -1,4 +1,4 @@ -import { isLinkStylesheet, isTemplate, getHmrHref, setHmrAttr, hasShadowRoot } from './hmr-util'; +import { getHmrHref, hasShadowRoot, isLinkStylesheet, isTemplate, setHmrAttr } from './hmr-util'; export const hmrExternalStyles = (elm: Element, versionId: string, cssFileNames: string[]) => { if (isLinkStylesheet(elm)) { diff --git a/src/dev-server/client/hmr-images.ts b/src/dev-server/client/hmr-images.ts index 9b60217fa1f..eec6954d31f 100644 --- a/src/dev-server/client/hmr-images.ts +++ b/src/dev-server/client/hmr-images.ts @@ -1,13 +1,13 @@ import { - setQueryString, - updateCssUrlValue, getHmrHref, - isLinkStylesheet, - setHmrAttr, - isTemplate, hasShadowRoot, isElement, + isLinkStylesheet, + isTemplate, + setHmrAttr, setHmrQueryString, + setQueryString, + updateCssUrlValue, } from './hmr-util'; export const hmrImages = (win: Window, doc: Document, versionId: string, imageFileNames: string[]) => { diff --git a/src/dev-server/client/hmr-inline-styles.ts b/src/dev-server/client/hmr-inline-styles.ts index d525bacf189..9fdbbef2f7a 100644 --- a/src/dev-server/client/hmr-inline-styles.ts +++ b/src/dev-server/client/hmr-inline-styles.ts @@ -1,5 +1,5 @@ import { HmrStyleUpdate } from '../../declarations'; -import { isTemplate, hasShadowRoot, isElement } from './hmr-util'; +import { hasShadowRoot, isElement, isTemplate } from './hmr-util'; export const hmrInlineStyles = (elm: Element, versionId: string, stylesUpdatedData: any[]) => { const stylesUpdated: HmrStyleUpdate[] = stylesUpdatedData; diff --git a/src/dev-server/client/index.ts b/src/dev-server/client/index.ts index c13a7a8a891..4b7a78df40b 100644 --- a/src/dev-server/client/index.ts +++ b/src/dev-server/client/index.ts @@ -1,6 +1,6 @@ export { appError, clearAppErrorModal } from './app-error'; export { emitBuildLog, emitBuildResults, emitBuildStatus, onBuildLog, onBuildResults, onBuildStatus } from './events'; +export { hmrWindow } from './hmr-window'; +export { logBuild, logDiagnostic, logDisabled, logReload, logWarn } from './logger'; export { initBuildProgress } from './progress'; export { initBuildStatus } from './status'; -export { logBuild, logDiagnostic, logDisabled, logReload, logWarn } from './logger'; -export { hmrWindow } from './hmr-window'; diff --git a/src/dev-server/client/test/hmr-util.spec.ts b/src/dev-server/client/test/hmr-util.spec.ts index faf44422411..876dc125c7a 100644 --- a/src/dev-server/client/test/hmr-util.spec.ts +++ b/src/dev-server/client/test/hmr-util.spec.ts @@ -1,4 +1,4 @@ -import { updateCssUrlValue, getHmrHref } from '../hmr-util'; +import { getHmrHref, updateCssUrlValue } from '../hmr-util'; describe('updateCssUrlValue', () => { const versionId = '1234'; diff --git a/src/dev-server/dev-server-client/app-update.ts b/src/dev-server/dev-server-client/app-update.ts index 292d0080abc..b72eb015a1e 100644 --- a/src/dev-server/dev-server-client/app-update.ts +++ b/src/dev-server/dev-server-client/app-update.ts @@ -2,12 +2,12 @@ import type * as d from '../../declarations'; import { appError, clearAppErrorModal, + emitBuildStatus, hmrWindow, logBuild, logDiagnostic, logReload, logWarn, - emitBuildStatus, onBuildResults, } from '../client'; import { OPEN_IN_EDITOR_URL } from '../dev-server-constants'; diff --git a/src/dev-server/dev-server-client/index.ts b/src/dev-server/dev-server-client/index.ts index 343dbdc5745..a5af2b1f88f 100644 --- a/src/dev-server/dev-server-client/index.ts +++ b/src/dev-server/dev-server-client/index.ts @@ -1,7 +1,7 @@ import type * as d from '../../declarations'; +import { initDevClient } from './init-dev-client'; // TODO(STENCIL-465): Investigate whether we can delete these polyfills import { applyPolyfills } from './polyfills'; -import { initDevClient } from './init-dev-client'; declare const iframeWindow: Window; declare const appWindow: d.DevClientWindow; diff --git a/src/dev-server/dev-server-client/init-dev-client.ts b/src/dev-server/dev-server-client/init-dev-client.ts index 1c0f9c08c1d..e8e4deff326 100644 --- a/src/dev-server/dev-server-client/init-dev-client.ts +++ b/src/dev-server/dev-server-client/init-dev-client.ts @@ -1,7 +1,7 @@ import type * as d from '../../declarations'; +import { initBuildProgress, initBuildStatus } from '../client'; import * as c from '../dev-server-constants'; import { appReset, initAppUpdate } from './app-update'; -import { initBuildProgress, initBuildStatus } from '../client'; import { initClientWebSocket } from './client-web-socket'; export const initDevClient = (win: d.DevClientWindow, config: d.DevClientConfig) => { diff --git a/src/dev-server/dev-server-utils.ts b/src/dev-server/dev-server-utils.ts index 60b39b62f75..6d8471f35a0 100644 --- a/src/dev-server/dev-server-utils.ts +++ b/src/dev-server/dev-server-utils.ts @@ -1,7 +1,7 @@ import type * as d from '../declarations'; -import * as c from './dev-server-constants'; -import contentTypes from './content-types-db.json'; import { version } from '../version'; +import contentTypes from './content-types-db.json'; +import * as c from './dev-server-constants'; export function responseHeaders(headers: d.DevResponseHeaders, httpCache = false): any { headers = { ...DEFAULT_HEADERS, ...headers }; diff --git a/src/dev-server/index.ts b/src/dev-server/index.ts index 53cff928136..aa27c01c75d 100644 --- a/src/dev-server/index.ts +++ b/src/dev-server/index.ts @@ -1,16 +1,17 @@ +import path from 'path'; + import type { BuildOnEventRemove, + CompilerBuildResults, CompilerWatcher, + DevServer, DevServerConfig, + DevServerMessage, + InitServerProcess, Logger, StencilDevServerConfig, - DevServer, - CompilerBuildResults, - InitServerProcess, - DevServerMessage, } from '../declarations'; import { initServerProcessWorkerProxy } from './server-worker-main'; -import path from 'path'; export function start(stencilDevServerConfig: StencilDevServerConfig, logger: Logger, watcher?: CompilerWatcher) { return new Promise(async (resolve, reject) => { diff --git a/src/dev-server/open-in-editor.ts b/src/dev-server/open-in-editor.ts index 066f556397e..460b5677c93 100644 --- a/src/dev-server/open-in-editor.ts +++ b/src/dev-server/open-in-editor.ts @@ -1,5 +1,6 @@ -import type * as d from '../declarations'; import type { ServerResponse } from 'http'; + +import type * as d from '../declarations'; import { responseHeaders } from './dev-server-utils'; import openInEditorApi from './open-in-editor-api'; diff --git a/src/dev-server/request-handler.ts b/src/dev-server/request-handler.ts index 282ee1020a1..7a6a05eb3f2 100644 --- a/src/dev-server/request-handler.ts +++ b/src/dev-server/request-handler.ts @@ -1,13 +1,14 @@ -import type * as d from '../declarations'; +import { normalizePath } from '@utils'; import type { IncomingMessage, ServerResponse } from 'http'; +import path from 'path'; + +import type * as d from '../declarations'; import { isDevClient, isDevModule, isExtensionLessPath, isSsrStaticDataPath } from './dev-server-utils'; -import { normalizePath } from '@utils'; import { serveDevClient } from './serve-dev-client'; import { serveDevNodeModule } from './serve-dev-node-module'; import { serveDirectoryIndex } from './serve-directory-index'; import { serveFile } from './serve-file'; import { ssrPageRequest, ssrStaticDataRequest } from './ssr-request'; -import path from 'path'; export function createRequestHandler(devServerConfig: d.DevServerConfig, serverCtx: d.DevServerContext) { let userRequestHandler: (req: IncomingMessage, res: ServerResponse, next: () => void) => void = null; diff --git a/src/dev-server/serve-dev-client.ts b/src/dev-server/serve-dev-client.ts index 7da5464dee8..24026f220db 100644 --- a/src/dev-server/serve-dev-client.ts +++ b/src/dev-server/serve-dev-client.ts @@ -1,10 +1,11 @@ -import type * as d from '../declarations'; import type { ServerResponse } from 'http'; +import path from 'path'; + +import type * as d from '../declarations'; import { DEV_SERVER_URL } from './dev-server-constants'; import { isDevServerClient, isInitialDevServerLoad, isOpenInEditor, responseHeaders } from './dev-server-utils'; +import { getEditors, serveOpenInEditor } from './open-in-editor'; import { serveFile } from './serve-file'; -import { serveOpenInEditor, getEditors } from './open-in-editor'; -import path from 'path'; export async function serveDevClient( devServerConfig: d.DevServerConfig, diff --git a/src/dev-server/serve-dev-node-module.ts b/src/dev-server/serve-dev-node-module.ts index f7bdb41d864..7f659496bce 100644 --- a/src/dev-server/serve-dev-node-module.ts +++ b/src/dev-server/serve-dev-node-module.ts @@ -1,5 +1,6 @@ -import type * as d from '../declarations'; import type { ServerResponse } from 'http'; + +import type * as d from '../declarations'; import { responseHeaders } from './dev-server-utils'; export async function serveDevNodeModule(serverCtx: d.DevServerContext, req: d.HttpRequest, res: ServerResponse) { diff --git a/src/dev-server/serve-directory-index.ts b/src/dev-server/serve-directory-index.ts index 9c4ebc68cb5..9ee786abfbe 100644 --- a/src/dev-server/serve-directory-index.ts +++ b/src/dev-server/serve-directory-index.ts @@ -1,8 +1,9 @@ -import type * as d from '../declarations'; import type { ServerResponse } from 'http'; +import path from 'path'; + +import type * as d from '../declarations'; import { responseHeaders } from './dev-server-utils'; import { serveFile } from './serve-file'; -import path from 'path'; export async function serveDirectoryIndex( devServerConfig: d.DevServerConfig, diff --git a/src/dev-server/serve-file.ts b/src/dev-server/serve-file.ts index e0678d8985e..56e934a0106 100644 --- a/src/dev-server/serve-file.ts +++ b/src/dev-server/serve-file.ts @@ -1,11 +1,12 @@ -import type * as d from '../declarations'; +import { Buffer } from 'buffer'; +import fs from 'graceful-fs'; import type { ServerResponse } from 'http'; -import * as util from './dev-server-utils'; -import { version } from '../version'; import path from 'path'; -import fs from 'graceful-fs'; import * as zlib from 'zlib'; -import { Buffer } from 'buffer'; + +import type * as d from '../declarations'; +import { version } from '../version'; +import * as util from './dev-server-utils'; export async function serveFile( devServerConfig: d.DevServerConfig, diff --git a/src/dev-server/server-context.ts b/src/dev-server/server-context.ts index 3344d688fdf..a784ae29177 100644 --- a/src/dev-server/server-context.ts +++ b/src/dev-server/server-context.ts @@ -1,9 +1,10 @@ -import type * as d from '../declarations'; -import { responseHeaders } from './dev-server-utils'; import fs from 'graceful-fs'; import path from 'path'; import util from 'util'; +import type * as d from '../declarations'; +import { responseHeaders } from './dev-server-utils'; + export function createServerContext( sys: d.CompilerSystem, sendMsg: d.DevServerSendMessage, diff --git a/src/dev-server/server-http.ts b/src/dev-server/server-http.ts index 141c914762a..182739a18bf 100644 --- a/src/dev-server/server-http.ts +++ b/src/dev-server/server-http.ts @@ -1,9 +1,10 @@ -import type * as d from '../declarations'; -import { createRequestHandler } from './request-handler'; import * as http from 'http'; import * as https from 'https'; import * as net from 'net'; +import type * as d from '../declarations'; +import { createRequestHandler } from './request-handler'; + export function createHttpServer(devServerConfig: d.DevServerConfig, serverCtx: d.DevServerContext) { // create our request handler const reqHandler = createRequestHandler(devServerConfig, serverCtx); diff --git a/src/dev-server/server-process.ts b/src/dev-server/server-process.ts index f2c1fde354e..567fba25da6 100644 --- a/src/dev-server/server-process.ts +++ b/src/dev-server/server-process.ts @@ -1,13 +1,14 @@ -import type * as d from '../declarations'; -import type { Server } from 'http'; -import { createServerContext, BuildRequestResolve, CompilerRequestResolve } from './server-context'; -import { createHttpServer, findClosestOpenPort } from './server-http'; import { createNodeSys } from '@sys-api-node'; -import { createWebSocket, DevWebSocket } from './server-web-socket'; +import { normalizePath } from '@utils'; +import type { Server } from 'http'; + +import type * as d from '../declarations'; import { DEV_SERVER_INIT_URL } from './dev-server-constants'; import { getBrowserUrl } from './dev-server-utils'; -import { normalizePath } from '@utils'; import { openInBrowser } from './open-in-browser'; +import { BuildRequestResolve, CompilerRequestResolve, createServerContext } from './server-context'; +import { createHttpServer, findClosestOpenPort } from './server-http'; +import { createWebSocket, DevWebSocket } from './server-web-socket'; export function initServerProcess(sendMsg: d.DevServerSendMessage) { let server: Server = null; diff --git a/src/dev-server/server-web-socket.ts b/src/dev-server/server-web-socket.ts index 8768db453ea..3a404ec2747 100644 --- a/src/dev-server/server-web-socket.ts +++ b/src/dev-server/server-web-socket.ts @@ -1,7 +1,8 @@ -import type * as d from '../declarations'; +import { noop } from '@utils'; import type { Server } from 'http'; import * as ws from 'ws'; -import { noop } from '@utils'; + +import type * as d from '../declarations'; export function createWebSocket( httpServer: Server, diff --git a/src/dev-server/server-worker-main.ts b/src/dev-server/server-worker-main.ts index 173aeb5a519..de14f011b55 100644 --- a/src/dev-server/server-worker-main.ts +++ b/src/dev-server/server-worker-main.ts @@ -1,7 +1,8 @@ -import type * as d from '../declarations'; import { fork } from 'child_process'; import path from 'path'; +import type * as d from '../declarations'; + export function initServerProcessWorkerProxy(sendToMain: (msg: d.DevServerMessage) => void) { const workerPath = require.resolve(path.join(__dirname, 'server-worker-thread.js')); diff --git a/src/dev-server/ssr-request.ts b/src/dev-server/ssr-request.ts index ed587f2971e..b4d9c9c7c82 100644 --- a/src/dev-server/ssr-request.ts +++ b/src/dev-server/ssr-request.ts @@ -1,10 +1,11 @@ -import type * as d from '../declarations'; -import type { ServerResponse } from 'http'; -import { responseHeaders, getSsrStaticDataPath } from './dev-server-utils'; -import { appendDevServerClientScript } from './serve-file'; import { catchError, isFunction, isString } from '@utils'; +import type { ServerResponse } from 'http'; import path from 'path'; +import type * as d from '../declarations'; +import { getSsrStaticDataPath, responseHeaders } from './dev-server-utils'; +import { appendDevServerClientScript } from './serve-file'; + export async function ssrPageRequest( devServerConfig: d.DevServerConfig, serverCtx: d.DevServerContext, diff --git a/src/dev-server/test/req-handler.spec.ts b/src/dev-server/test/req-handler.spec.ts index 14e95294e01..256ae53c461 100644 --- a/src/dev-server/test/req-handler.spec.ts +++ b/src/dev-server/test/req-handler.spec.ts @@ -1,16 +1,17 @@ import type * as d from '@stencil/core/declarations'; -import { appendDevServerClientIframe } from '../serve-file'; -import { createRequestHandler } from '../request-handler'; -import { createServerContext } from '../server-context'; -import { createSystem } from '../../compiler/sys/stencil-sys'; import { mockConfig, mockLoadConfigInit } from '@stencil/core/testing'; import { normalizePath } from '@utils'; -import { validateConfig } from '../../compiler/config/validate-config'; -import { validateDevServer } from '../../compiler/config/validate-dev-server'; import nodeFs from 'fs'; import type { IncomingMessage, ServerResponse } from 'http'; import path from 'path'; +import { validateConfig } from '../../compiler/config/validate-config'; +import { validateDevServer } from '../../compiler/config/validate-dev-server'; +import { createSystem } from '../../compiler/sys/stencil-sys'; +import { createRequestHandler } from '../request-handler'; +import { appendDevServerClientIframe } from '../serve-file'; +import { createServerContext } from '../server-context'; + describe('request-handler', () => { let devServerConfig: d.DevServerConfig; let serverCtx: d.DevServerContext; diff --git a/src/dev-server/test/util.spec.ts b/src/dev-server/test/util.spec.ts index 0a888d09170..be1f87ef924 100644 --- a/src/dev-server/test/util.spec.ts +++ b/src/dev-server/test/util.spec.ts @@ -1,4 +1,6 @@ import type * as d from '@stencil/core/declarations'; + +import { DEV_SERVER_URL } from '../dev-server-constants'; import { getBrowserUrl, getDevServerClientUrl, @@ -6,7 +8,6 @@ import { isExtensionLessPath, isSsrStaticDataPath, } from '../dev-server-utils'; -import { DEV_SERVER_URL } from '../dev-server-constants'; describe('dev-server, util', () => { it('should get url with custom base url and pathname', () => { diff --git a/src/hydrate/platform/h-async.ts b/src/hydrate/platform/h-async.ts index c58fde59cbc..928c96a9468 100644 --- a/src/hydrate/platform/h-async.ts +++ b/src/hydrate/platform/h-async.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; import { consoleDevError } from '@platform'; import { h } from '@runtime'; import { isPromise } from '@utils'; +import type * as d from '../../declarations'; + export const hAsync = (nodeName: any, vnodeData: any, ...children: d.ChildType[]) => { if (Array.isArray(children) && children.length > 0) { // only return a promise if we have to diff --git a/src/hydrate/platform/hydrate-app.ts b/src/hydrate/platform/hydrate-app.ts index e1602dc64cc..e283cc5c61f 100644 --- a/src/hydrate/platform/hydrate-app.ts +++ b/src/hydrate/platform/hydrate-app.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; -import { connectedCallback, insertVdomAnnotations } from '@runtime'; +import { globalScripts } from '@app-globals'; import { doc, getHostRef, loadModule, plt, registerHost } from '@platform'; +import { connectedCallback, insertVdomAnnotations } from '@runtime'; + +import type * as d from '../../declarations'; import { proxyHostElement } from './proxy-host-element'; -import { globalScripts } from '@app-globals'; export function hydrateApp( win: Window & typeof globalThis, diff --git a/src/hydrate/platform/index.ts b/src/hydrate/platform/index.ts index d10e3ec8e3a..73b865a53a9 100644 --- a/src/hydrate/platform/index.ts +++ b/src/hydrate/platform/index.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { addHostEventListeners } from '@runtime'; +import type * as d from '../../declarations'; + let customError: d.ErrorHandler; export const cmpModules = new Map(); @@ -156,36 +157,34 @@ export const Build: d.UserBuildConditionals = { export const styles: d.StyleMap = new Map(); export const modeResolutionChain: d.ResolutionHandler[] = []; -export { BUILD, NAMESPACE, Env } from '@app-data'; +export { hAsync as h } from './h-async'; export { hydrateApp } from './hydrate-app'; - +export { BUILD, Env, NAMESPACE } from '@app-data'; export { addHostEventListeners, - defineCustomElement, - forceModeUpdate, - proxyCustomElement, bootstrapLazy, connectedCallback, createEvent, + defineCustomElement, disconnectedCallback, + forceModeUpdate, + forceUpdate, + Fragment, getAssetPath, - setAssetPath, getConnect, getContext, getElement, + getMode, + getRenderingRef, getValue, - setValue, - Fragment, Host, insertVdomAnnotations, parsePropertyValue, - forceUpdate, postUpdateComponent, - getRenderingRef, proxyComponent, + proxyCustomElement, renderVdom, + setAssetPath, setMode, - getMode, + setValue, } from '@runtime'; - -export { hAsync as h } from './h-async'; diff --git a/src/hydrate/platform/proxy-host-element.ts b/src/hydrate/platform/proxy-host-element.ts index db75e3b07bd..40197dd98a0 100644 --- a/src/hydrate/platform/proxy-host-element.ts +++ b/src/hydrate/platform/proxy-host-element.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; import { consoleError, getHostRef } from '@platform'; import { getValue, parsePropertyValue, setValue } from '@runtime'; import { CMP_FLAGS, MEMBER_FLAGS } from '@utils'; +import type * as d from '../../declarations'; + export function proxyHostElement(elm: d.HostElement, cmpMeta: d.ComponentRuntimeMeta): void { if (typeof elm.componentOnReady !== 'function') { elm.componentOnReady = componentOnReady; diff --git a/src/hydrate/runner/create-window.ts b/src/hydrate/runner/create-window.ts index b6df0a0fd70..b14b3d70e93 100644 --- a/src/hydrate/runner/create-window.ts +++ b/src/hydrate/runner/create-window.ts @@ -1,4 +1,4 @@ -import { MockWindow, cloneWindow } from '@stencil/core/mock-doc'; +import { cloneWindow, MockWindow } from '@stencil/core/mock-doc'; const templateWindows = new Map(); diff --git a/src/hydrate/runner/patch-dom-implementation.ts b/src/hydrate/runner/patch-dom-implementation.ts index 8e05cc91e3c..7fda9e0c697 100644 --- a/src/hydrate/runner/patch-dom-implementation.ts +++ b/src/hydrate/runner/patch-dom-implementation.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { MockWindow, patchWindow } from '@stencil/core/mock-doc'; +import type * as d from '../../declarations'; + export function patchDomImplementation(doc: any, opts: d.HydrateFactoryOptions) { let win: any; diff --git a/src/hydrate/runner/render.ts b/src/hydrate/runner/render.ts index 09da9c3c15d..cdf9fee8fc5 100644 --- a/src/hydrate/runner/render.ts +++ b/src/hydrate/runner/render.ts @@ -1,19 +1,20 @@ +import { hydrateFactory } from '@hydrate-factory'; +import { MockWindow, serializeNodeToHtml } from '@stencil/core/mock-doc'; +import { hasError, isPromise } from '@utils'; + +import { updateCanonicalLink } from '../../compiler/html/canonical-link'; +import { relocateMetaCharset } from '../../compiler/html/relocate-meta-charset'; +import { removeUnusedStyles } from '../../compiler/html/remove-unused-styles'; import type { HydrateDocumentOptions, HydrateFactoryOptions, HydrateResults, SerializeDocumentOptions, } from '../../declarations'; -import { generateHydrateResults, normalizeHydrateOptions, renderBuildError, renderCatchError } from './render-utils'; -import { hasError, isPromise } from '@utils'; -import { hydrateFactory } from '@hydrate-factory'; -import { initializeWindow } from './window-initialize'; import { inspectElement } from './inspect-element'; -import { MockWindow, serializeNodeToHtml } from '@stencil/core/mock-doc'; import { patchDomImplementation } from './patch-dom-implementation'; -import { relocateMetaCharset } from '../../compiler/html/relocate-meta-charset'; -import { removeUnusedStyles } from '../../compiler/html/remove-unused-styles'; -import { updateCanonicalLink } from '../../compiler/html/canonical-link'; +import { generateHydrateResults, normalizeHydrateOptions, renderBuildError, renderCatchError } from './render-utils'; +import { initializeWindow } from './window-initialize'; export function renderToString(html: string | any, options?: SerializeDocumentOptions) { const opts = normalizeHydrateOptions(options); diff --git a/src/hydrate/runner/runtime-log.ts b/src/hydrate/runner/runtime-log.ts index c771e3578f1..494d4ee1146 100644 --- a/src/hydrate/runner/runtime-log.ts +++ b/src/hydrate/runner/runtime-log.ts @@ -1,5 +1,5 @@ import type * as d from '../../declarations'; -import { renderCatchError, renderBuildDiagnostic } from './render-utils'; +import { renderBuildDiagnostic, renderCatchError } from './render-utils'; export function runtimeLogging( win: Window & typeof globalThis, diff --git a/src/hydrate/runner/window-initialize.ts b/src/hydrate/runner/window-initialize.ts index 7724483d0ea..aa1e67e5e80 100644 --- a/src/hydrate/runner/window-initialize.ts +++ b/src/hydrate/runner/window-initialize.ts @@ -1,5 +1,6 @@ -import type * as d from '../../declarations'; import { constrainTimeouts } from '@stencil/core/mock-doc'; + +import type * as d from '../../declarations'; import { renderCatchError } from './render-utils'; import { runtimeLogging } from './runtime-log'; diff --git a/src/internal/stencil-core/index.d.ts b/src/internal/stencil-core/index.d.ts index e6013a69178..f840d2bb433 100644 --- a/src/internal/stencil-core/index.d.ts +++ b/src/internal/stencil-core/index.d.ts @@ -1,9 +1,10 @@ +export type { StencilConfig as Config, PrerenderConfig } from '../stencil-public-compiler'; export type { ChildNode, - ComponentOptions, ComponentDidLoad, ComponentDidUpdate, ComponentInterface, + ComponentOptions, ComponentWillLoad, ComponentWillUpdate, EventEmitter, @@ -11,42 +12,39 @@ export type { FunctionalComponent, FunctionalUtilities, JSX, - MethodOptions, - ModeStyles, ListenOptions, ListenTargetOptions, + MethodOptions, + ModeStyles, PropOptions, QueueApi, RafCallback, VNode, VNodeData, } from '../stencil-public-runtime'; - export { Build, Component, Element, + Env, Event, + forceUpdate, + Fragment, getAssetPath, getElement, getMode, getRenderingRef, - Fragment, - forceUpdate, h, Host, - Env, Listen, Method, Prop, readTask, setAssetPath, + setErrorHandler, setMode, setPlatformHelpers, State, Watch, writeTask, - setErrorHandler, } from '../stencil-public-runtime'; - -export type { StencilConfig as Config, PrerenderConfig } from '../stencil-public-compiler'; diff --git a/src/mock-doc/comment-node.ts b/src/mock-doc/comment-node.ts index 2f14cfa5342..a1d70691fcc 100644 --- a/src/mock-doc/comment-node.ts +++ b/src/mock-doc/comment-node.ts @@ -1,5 +1,5 @@ -import { MockNode } from './node'; import { NODE_NAMES, NODE_TYPES } from './constants'; +import { MockNode } from './node'; export class MockComment extends MockNode { constructor(ownerDocument: any, data: string) { diff --git a/src/mock-doc/custom-element-registry.ts b/src/mock-doc/custom-element-registry.ts index 8225e14f343..233f50fe413 100644 --- a/src/mock-doc/custom-element-registry.ts +++ b/src/mock-doc/custom-element-registry.ts @@ -1,5 +1,5 @@ -import { MockHTMLElement, MockNode } from './node'; import { NODE_TYPES } from './constants'; +import { MockHTMLElement, MockNode } from './node'; export class MockCustomElementRegistry implements CustomElementRegistry { private __registry: Map; diff --git a/src/mock-doc/document-fragment.ts b/src/mock-doc/document-fragment.ts index 759865b7902..a073f04bb4b 100644 --- a/src/mock-doc/document-fragment.ts +++ b/src/mock-doc/document-fragment.ts @@ -1,6 +1,6 @@ -import { MockElement, MockHTMLElement } from './node'; import { NODE_NAMES, NODE_TYPES } from './constants'; import { getElementById } from './document'; +import { MockElement, MockHTMLElement } from './node'; export class MockDocumentFragment extends MockHTMLElement { constructor(ownerDocument: any) { diff --git a/src/mock-doc/document-type-node.ts b/src/mock-doc/document-type-node.ts index f6b1c5b55fa..47c9dae4f4e 100644 --- a/src/mock-doc/document-type-node.ts +++ b/src/mock-doc/document-type-node.ts @@ -1,5 +1,5 @@ -import { MockHTMLElement } from './node'; import { NODE_TYPES } from './constants'; +import { MockHTMLElement } from './node'; export class MockDocumentTypeNode extends MockHTMLElement { constructor(ownerDocument: any) { diff --git a/src/mock-doc/document.ts b/src/mock-doc/document.ts index f5495fbd854..99f9182591e 100644 --- a/src/mock-doc/document.ts +++ b/src/mock-doc/document.ts @@ -1,14 +1,14 @@ +import { MockAttr } from './attribute'; import { MockComment } from './comment-node'; import { NODE_NAMES, NODE_TYPES } from './constants'; import { MockDocumentFragment } from './document-fragment'; import { MockDocumentTypeNode } from './document-type-node'; +import { createElement, createElementNS, MockBaseElement } from './element'; +import { resetEventListeners } from './event'; import { MockElement, MockHTMLElement, MockTextNode, resetElement } from './node'; -import { MockBaseElement, createElement, createElementNS } from './element'; -import { parseDocumentUtil } from './parse-util'; import { parseHtmlToFragment } from './parse-html'; -import { resetEventListeners } from './event'; +import { parseDocumentUtil } from './parse-util'; import { MockWindow } from './window'; -import { MockAttr } from './attribute'; export class MockDocument extends MockHTMLElement { defaultView: any; diff --git a/src/mock-doc/element.ts b/src/mock-doc/element.ts index da2ca330214..cc4924288d1 100644 --- a/src/mock-doc/element.ts +++ b/src/mock-doc/element.ts @@ -1,6 +1,6 @@ import { cloneAttributes } from './attribute'; +import { getStyleElementText, MockCSSStyleSheet, setStyleElementText } from './css-style-sheet'; import { createCustomElement } from './custom-element-registry'; -import { MockCSSStyleSheet, getStyleElementText, setStyleElementText } from './css-style-sheet'; import { MockDocumentFragment } from './document-fragment'; import { MockElement, MockHTMLElement } from './node'; diff --git a/src/mock-doc/event.ts b/src/mock-doc/event.ts index 3cfc4412404..27cfb523848 100644 --- a/src/mock-doc/event.ts +++ b/src/mock-doc/event.ts @@ -1,6 +1,6 @@ +import { NODE_NAMES } from './constants'; import { MockDocument } from './document'; import { MockElement } from './node'; -import { NODE_NAMES } from './constants'; import { MockWindow } from './window'; export class MockEvent { diff --git a/src/mock-doc/global.ts b/src/mock-doc/global.ts index 35278f7eb84..389b991782e 100644 --- a/src/mock-doc/global.ts +++ b/src/mock-doc/global.ts @@ -15,8 +15,8 @@ import { } from './element'; import { MockCustomEvent, MockEvent, MockFocusEvent, MockKeyboardEvent, MockMouseEvent } from './event'; import { MockHeaders } from './headers'; -import { MockRequest, MockResponse } from './request-response'; import { MockDOMParser } from './parser'; +import { MockRequest, MockResponse } from './request-response'; import { MockWindow } from './window'; export function setupGlobal(gbl: any) { diff --git a/src/mock-doc/index.ts b/src/mock-doc/index.ts index 800fca2c948..f911dafc7ef 100644 --- a/src/mock-doc/index.ts +++ b/src/mock-doc/index.ts @@ -1,12 +1,12 @@ -export { MockAttr, MockAttributeMap, cloneAttributes } from './attribute'; +export { cloneAttributes, MockAttr, MockAttributeMap } from './attribute'; export { MockComment } from './comment-node'; -export { MockHTMLElement, MockElement, MockNode, MockTextNode } from './node'; +export { NODE_TYPES } from './constants'; +export { createDocument, createFragment, MockDocument, resetDocument } from './document'; export { MockCustomEvent, MockKeyboardEvent, MockMouseEvent } from './event'; -export { MockDocument, createDocument, createFragment, resetDocument } from './document'; +export { patchWindow, setupGlobal, teardownGlobal } from './global'; export { MockHeaders } from './headers'; -export { MockRequest, MockRequestInfo, MockRequestInit, MockResponse, MockResponseInit } from './request-response'; -export { MockWindow, cloneDocument, cloneWindow, constrainTimeouts } from './window'; -export { NODE_TYPES } from './constants'; +export { MockElement, MockHTMLElement, MockNode, MockTextNode } from './node'; export { parseHtmlToDocument, parseHtmlToFragment } from './parse-html'; -export { patchWindow, setupGlobal, teardownGlobal } from './global'; +export { MockRequest, MockRequestInfo, MockRequestInit, MockResponse, MockResponseInit } from './request-response'; export { serializeNodeToHtml, SerializeNodeToHtmlOptions } from './serialize-node'; +export { cloneDocument, cloneWindow, constrainTimeouts, MockWindow } from './window'; diff --git a/src/mock-doc/node.ts b/src/mock-doc/node.ts index 613617c6ca4..da44b55eb06 100644 --- a/src/mock-doc/node.ts +++ b/src/mock-doc/node.ts @@ -1,20 +1,20 @@ +import { createAttributeProxy, MockAttr, MockAttributeMap } from './attribute'; +import { MockClassList } from './class-list'; +import { NODE_NAMES, NODE_TYPES } from './constants'; +import { createCSSStyleDeclaration, MockCSSStyleDeclaration } from './css-style-declaration'; import { attributeChanged, checkAttributeChanged, connectNode, disconnectNode } from './custom-element-registry'; import { dataset } from './dataset'; -import { matches, selectAll, selectOne } from './selector'; -import { MockAttr, MockAttributeMap, createAttributeProxy } from './attribute'; -import { MockClassList } from './class-list'; -import { MockCSSStyleDeclaration, createCSSStyleDeclaration } from './css-style-declaration'; import { - MockEvent, addEventListener, dispatchEvent, + MockEvent, + MockFocusEvent, removeEventListener, resetEventListeners, - MockFocusEvent, } from './event'; -import { NODE_NAMES, NODE_TYPES } from './constants'; -import { NON_ESCAPABLE_CONTENT, SerializeNodeToHtmlOptions, serializeNodeToHtml } from './serialize-node'; import { parseFragmentUtil } from './parse-util'; +import { matches, selectAll, selectOne } from './selector'; +import { NON_ESCAPABLE_CONTENT, serializeNodeToHtml, SerializeNodeToHtmlOptions } from './serialize-node'; export class MockNode { private _nodeValue: string | null; diff --git a/src/mock-doc/parse-util.ts b/src/mock-doc/parse-util.ts index c35238f18c0..67c7bb753c9 100644 --- a/src/mock-doc/parse-util.ts +++ b/src/mock-doc/parse-util.ts @@ -1,10 +1,11 @@ +import { Attribute, parse, parseFragment, ParserOptions, TreeAdapter } from 'parse5'; + import { MockComment } from './comment-node'; -import { MockDocument } from './document'; -import { MockElement, MockNode, MockTextNode } from './node'; -import { MockTemplateElement } from './element'; import { NODE_NAMES, NODE_TYPES } from './constants'; -import { Attribute, ParserOptions, TreeAdapter, parse, parseFragment } from 'parse5'; +import { MockDocument } from './document'; import { MockDocumentFragment } from './document-fragment'; +import { MockTemplateElement } from './element'; +import { MockElement, MockNode, MockTextNode } from './node'; const docParser = new WeakMap(); diff --git a/src/mock-doc/selector.ts b/src/mock-doc/selector.ts index e9613a94cb8..1609f1409ad 100644 --- a/src/mock-doc/selector.ts +++ b/src/mock-doc/selector.ts @@ -1,6 +1,7 @@ -import { MockElement } from './node'; import Sizzle from 'sizzle'; +import { MockElement } from './node'; + export function matches(selector: string, elm: MockElement) { const r = Sizzle.matches(selector, [elm] as any); return r.length > 0; diff --git a/src/mock-doc/serialize-node.ts b/src/mock-doc/serialize-node.ts index 41d3487a7e3..b4241374bfa 100644 --- a/src/mock-doc/serialize-node.ts +++ b/src/mock-doc/serialize-node.ts @@ -1,7 +1,7 @@ -import { cloneAttributes } from './attribute'; import { CONTENT_REF_ID, ORG_LOCATION_ID, SLOT_NODE_ID, TEXT_NODE_ID, XLINK_NS } from '../runtime/runtime-constants'; -import { MockNode } from './node'; +import { cloneAttributes } from './attribute'; import { NODE_TYPES } from './constants'; +import { MockNode } from './node'; export function serializeNodeToHtml(elm: Node | MockNode, opts: SerializeNodeToHtmlOptions = {}) { const output: SerializeOutput = { diff --git a/src/mock-doc/test/attribute.spec.ts b/src/mock-doc/test/attribute.spec.ts index 69c49b492d3..6233f5f0935 100644 --- a/src/mock-doc/test/attribute.spec.ts +++ b/src/mock-doc/test/attribute.spec.ts @@ -1,7 +1,7 @@ +import { XLINK_NS } from '../../runtime/runtime-constants'; import { MockAttr, MockAttributeMap } from '../attribute'; import { MockDocument } from '../document'; import { MockElement, MockHTMLElement } from '../node'; -import { XLINK_NS } from '../../runtime/runtime-constants'; describe('attributes', () => { let doc: MockDocument; diff --git a/src/mock-doc/test/class-list.spec.ts b/src/mock-doc/test/class-list.spec.ts index 76607a0c9d2..8577b86dac3 100644 --- a/src/mock-doc/test/class-list.spec.ts +++ b/src/mock-doc/test/class-list.spec.ts @@ -1,5 +1,5 @@ -import { MockDocument } from '../document'; import { MockClassList } from '../class-list'; +import { MockDocument } from '../document'; import { MockElement } from '../node'; describe('class-list', () => { diff --git a/src/mock-doc/test/clone.spec.ts b/src/mock-doc/test/clone.spec.ts index 760f66f9e64..233413ccae4 100644 --- a/src/mock-doc/test/clone.spec.ts +++ b/src/mock-doc/test/clone.spec.ts @@ -1,4 +1,4 @@ -import { MockDocument, createDocument } from '../document'; +import { createDocument, MockDocument } from '../document'; import { cloneDocument } from '../window'; describe('cloneNode', () => { diff --git a/src/mock-doc/test/element.spec.ts b/src/mock-doc/test/element.spec.ts index abeb0ae5daa..d9671e7a723 100644 --- a/src/mock-doc/test/element.spec.ts +++ b/src/mock-doc/test/element.spec.ts @@ -1,7 +1,7 @@ import { MockDocument } from '../document'; -import { MockWindow, cloneWindow } from '../window'; -import { MockElement, MockHTMLElement } from '../node'; import { MockAnchorElement, MockMetaElement, MockSVGElement } from '../element'; +import { MockElement, MockHTMLElement } from '../node'; +import { cloneWindow, MockWindow } from '../window'; describe('element', () => { let doc: MockDocument; diff --git a/src/mock-doc/test/event.spec.ts b/src/mock-doc/test/event.spec.ts index 60abdd053c6..5505e94d020 100644 --- a/src/mock-doc/test/event.spec.ts +++ b/src/mock-doc/test/event.spec.ts @@ -1,7 +1,7 @@ -import { MockWindow } from '../window'; +import { MockDocument } from '../document'; import { MockEvent } from '../event'; import { MockElement } from '../node'; -import { MockDocument } from '../document'; +import { MockWindow } from '../window'; describe('event', () => { let win: MockWindow; diff --git a/src/mock-doc/test/html-parse.spec.ts b/src/mock-doc/test/html-parse.spec.ts index 2d2592f3932..ef520bb6dd5 100644 --- a/src/mock-doc/test/html-parse.spec.ts +++ b/src/mock-doc/test/html-parse.spec.ts @@ -1,8 +1,8 @@ +import { NODE_TYPES } from '../constants'; import { createFragment } from '../document'; import { MockDocument } from '../document'; -import { NODE_TYPES } from '../constants'; -import { parseHtmlToDocument, parseHtmlToFragment } from '../parse-html'; import { MockDOMMatrix, MockDOMPoint, MockSVGRect, MockSVGSVGElement, MockSVGTextContentElement } from '../element'; +import { parseHtmlToDocument, parseHtmlToFragment } from '../parse-html'; describe('parseHtml', () => { let doc: MockDocument; diff --git a/src/mock-doc/window.ts b/src/mock-doc/window.ts index 16b60f49e61..ff19b299692 100644 --- a/src/mock-doc/window.ts +++ b/src/mock-doc/window.ts @@ -1,27 +1,27 @@ -import { addGlobalsToWindowPrototype } from './global'; +import { MockHeaders } from '.'; import { createConsole } from './console'; import { MockCustomElementRegistry } from './custom-element-registry'; +import { MockDocument, resetDocument } from './document'; +import { MockDocumentFragment } from './document-fragment'; import { - MockEvent, addEventListener, dispatchEvent, - removeEventListener, - resetEventListeners, - MockMouseEvent, MockCustomEvent, - MockKeyboardEvent, + MockEvent, MockFocusEvent, + MockKeyboardEvent, + MockMouseEvent, + removeEventListener, + resetEventListeners, } from './event'; -import { MockDocument, resetDocument } from './document'; -import { MockDocumentFragment } from './document-fragment'; -import { MockElement, MockHTMLElement, MockNode, MockNodeList } from './node'; +import { addGlobalsToWindowPrototype } from './global'; import { MockHistory } from './history'; import { MockIntersectionObserver } from './intersection-observer'; import { MockLocation } from './location'; import { MockNavigator } from './navigator'; +import { MockElement, MockHTMLElement, MockNode, MockNodeList } from './node'; import { MockPerformance, resetPerformance } from './performance'; import { MockStorage } from './storage'; -import { MockHeaders } from '.'; const nativeClearInterval = clearInterval; const nativeClearTimeout = clearTimeout; diff --git a/src/runtime/bootstrap-custom-element.ts b/src/runtime/bootstrap-custom-element.ts index c2f73be0c5b..81e8b40e782 100644 --- a/src/runtime/bootstrap-custom-element.ts +++ b/src/runtime/bootstrap-custom-element.ts @@ -1,13 +1,14 @@ -import type * as d from '../declarations'; -import { attachStyles, getScopeId, registerStyle } from './styles'; import { BUILD } from '@app-data'; +import { forceUpdate, getHostRef, registerHost, styles, supportsShadow } from '@platform'; import { CMP_FLAGS } from '@utils'; -import { computeMode } from './mode'; + +import type * as d from '../declarations'; import { connectedCallback } from './connected-callback'; import { disconnectedCallback } from './disconnected-callback'; -import { forceUpdate, getHostRef, registerHost, styles, supportsShadow } from '@platform'; +import { computeMode } from './mode'; import { proxyComponent } from './proxy-component'; import { PROXY_FLAGS } from './runtime-constants'; +import { attachStyles, getScopeId, registerStyle } from './styles'; export const defineCustomElement = (Cstr: any, compactMeta: d.ComponentRuntimeMetaCompact) => { customElements.define(compactMeta[1], proxyCustomElement(Cstr, compactMeta) as CustomElementConstructor); diff --git a/src/runtime/bootstrap-lazy.ts b/src/runtime/bootstrap-lazy.ts index 138d26645ea..f4d7f6b45f7 100644 --- a/src/runtime/bootstrap-lazy.ts +++ b/src/runtime/bootstrap-lazy.ts @@ -1,16 +1,17 @@ -import type * as d from '../declarations'; -import { appDidLoad } from './update-component'; import { BUILD } from '@app-data'; +import { doc, getHostRef, plt, registerHost, supportsShadow, win } from '@platform'; import { CMP_FLAGS } from '@utils'; + +import type * as d from '../declarations'; import { connectedCallback } from './connected-callback'; -import { convertScopedToShadow, registerStyle } from './styles'; -import { createTime, installDevTools } from './profile'; import { disconnectedCallback } from './disconnected-callback'; -import { doc, getHostRef, plt, registerHost, win, supportsShadow } from '@platform'; +import { patchChildSlotNodes, patchCloneNode, patchSlotAppendChild, patchTextContent } from './dom-extras'; import { hmrStart } from './hmr-component'; -import { HYDRATED_CSS, HYDRATED_STYLE_ID, PLATFORM_FLAGS, PROXY_FLAGS } from './runtime-constants'; -import { patchCloneNode, patchSlotAppendChild, patchChildSlotNodes, patchTextContent } from './dom-extras'; +import { createTime, installDevTools } from './profile'; import { proxyComponent } from './proxy-component'; +import { HYDRATED_CSS, HYDRATED_STYLE_ID, PLATFORM_FLAGS, PROXY_FLAGS } from './runtime-constants'; +import { convertScopedToShadow, registerStyle } from './styles'; +import { appDidLoad } from './update-component'; export const bootstrapLazy = (lazyBundles: d.LazyBundlesRuntimeData, options: d.CustomElementsDefineOptions = {}) => { if (BUILD.profile && performance.mark) { diff --git a/src/runtime/client-hydrate.ts b/src/runtime/client-hydrate.ts index dd8ad2973e1..c0d948adcd5 100644 --- a/src/runtime/client-hydrate.ts +++ b/src/runtime/client-hydrate.ts @@ -1,5 +1,8 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; +import { doc, plt, supportsShadow } from '@platform'; + +import type * as d from '../declarations'; +import { createTime } from './profile'; import { CONTENT_REF_ID, HYDRATE_CHILD_ID, @@ -9,9 +12,7 @@ import { SLOT_NODE_ID, TEXT_NODE_ID, } from './runtime-constants'; -import { doc, plt, supportsShadow } from '@platform'; import { newVNode } from './vdom/h'; -import { createTime } from './profile'; export const initializeClientHydrate = ( hostElm: d.HostElement, diff --git a/src/runtime/connect.ts b/src/runtime/connect.ts index afd91c7e0d3..8fa18bca7ad 100644 --- a/src/runtime/connect.ts +++ b/src/runtime/connect.ts @@ -1,6 +1,7 @@ -import type * as d from '../declarations'; import { doc } from '@platform'; +import type * as d from '../declarations'; + export const getConnect = (_ref: d.HostRef, tagName: string) => { const componentOnReady = (): Promise => { let elm = doc.querySelector(tagName) as any; diff --git a/src/runtime/connected-callback.ts b/src/runtime/connected-callback.ts index 2b8b834e69d..a34cd2ab173 100644 --- a/src/runtime/connected-callback.ts +++ b/src/runtime/connected-callback.ts @@ -1,13 +1,14 @@ -import type * as d from '../declarations'; -import { addHostEventListeners, doc, getHostRef, nextTick, plt, supportsShadow } from '@platform'; -import { addStyle } from './styles'; -import { attachToAncestor } from './update-component'; import { BUILD } from '@app-data'; +import { addHostEventListeners, doc, getHostRef, nextTick, plt, supportsShadow } from '@platform'; import { CMP_FLAGS, HOST_FLAGS, MEMBER_FLAGS } from '@utils'; + +import type * as d from '../declarations'; +import { initializeClientHydrate } from './client-hydrate'; +import { fireConnectedCallback, initializeComponent } from './initialize-component'; import { createTime } from './profile'; import { HYDRATE_ID, NODE_TYPE, PLATFORM_FLAGS } from './runtime-constants'; -import { initializeClientHydrate } from './client-hydrate'; -import { initializeComponent, fireConnectedCallback } from './initialize-component'; +import { addStyle } from './styles'; +import { attachToAncestor } from './update-component'; export const connectedCallback = (elm: d.HostElement) => { if ((plt.$flags$ & PLATFORM_FLAGS.isTmpDisconnected) === 0) { diff --git a/src/runtime/context.ts b/src/runtime/context.ts index afc11fa409d..fa04142ab12 100644 --- a/src/runtime/context.ts +++ b/src/runtime/context.ts @@ -1,5 +1,6 @@ import { BUILD } from '@app-data'; import { Context, doc, nextTick, readTask, win, writeTask } from '@platform'; + import { getAssetPath } from './asset-path'; export const getContext = (_elm: HTMLElement, context: string) => { diff --git a/src/runtime/disconnected-callback.ts b/src/runtime/disconnected-callback.ts index 7ba3e751773..6a899ce0f72 100644 --- a/src/runtime/disconnected-callback.ts +++ b/src/runtime/disconnected-callback.ts @@ -1,6 +1,7 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; import { getHostRef, plt } from '@platform'; + +import type * as d from '../declarations'; import { PLATFORM_FLAGS } from './runtime-constants'; import { safeCall } from './update-component'; diff --git a/src/runtime/dom-extras.ts b/src/runtime/dom-extras.ts index ac045625150..530445c992f 100644 --- a/src/runtime/dom-extras.ts +++ b/src/runtime/dom-extras.ts @@ -1,9 +1,10 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; +import { getHostRef, plt, supportsShadow } from '@platform'; import { NODE_TYPES } from '@stencil/core/mock-doc'; import { CMP_FLAGS, HOST_FLAGS } from '@utils'; + +import type * as d from '../declarations'; import { PLATFORM_FLAGS } from './runtime-constants'; -import { plt, supportsShadow, getHostRef } from '@platform'; export const patchCloneNode = (HostElementPrototype: any) => { const orgCloneNode = HostElementPrototype.cloneNode; diff --git a/src/runtime/element.ts b/src/runtime/element.ts index 255061ecd3a..31601cbe2df 100644 --- a/src/runtime/element.ts +++ b/src/runtime/element.ts @@ -1,5 +1,6 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; import { getHostRef } from '@platform'; +import type * as d from '../declarations'; + export const getElement = (ref: any) => (BUILD.lazyLoad ? getHostRef(ref).$hostElement$ : (ref as d.HostElement)); diff --git a/src/runtime/event-emitter.ts b/src/runtime/event-emitter.ts index 0594df2a385..d29717ee435 100644 --- a/src/runtime/event-emitter.ts +++ b/src/runtime/event-emitter.ts @@ -1,7 +1,8 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; import { consoleDevWarn, plt } from '@platform'; import { EVENT_FLAGS } from '@utils'; + +import type * as d from '../declarations'; import { getElement } from './element'; export const createEvent = (ref: d.RuntimeRef, name: string, flags: number) => { diff --git a/src/runtime/hmr-component.ts b/src/runtime/hmr-component.ts index bb78f605595..5c23603a84a 100644 --- a/src/runtime/hmr-component.ts +++ b/src/runtime/hmr-component.ts @@ -1,6 +1,7 @@ -import type * as d from '../declarations'; import { getHostRef } from '@platform'; import { HOST_FLAGS } from '@utils'; + +import type * as d from '../declarations'; import { initializeComponent } from './initialize-component'; export const hmrStart = (elm: d.HostElement, cmpMeta: d.ComponentRuntimeMeta, hmrVersionId: string) => { diff --git a/src/runtime/host-listener.ts b/src/runtime/host-listener.ts index b1d7d7141eb..d8fd67dae41 100644 --- a/src/runtime/host-listener.ts +++ b/src/runtime/host-listener.ts @@ -1,8 +1,9 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; -import { doc, plt, consoleError, supportsListenerOptions, win } from '@platform'; +import { consoleError, doc, plt, supportsListenerOptions, win } from '@platform'; import { HOST_FLAGS, LISTENER_FLAGS } from '@utils'; +import type * as d from '../declarations'; + export const addHostEventListeners = ( elm: d.HostElement, hostRef: d.HostRef, diff --git a/src/runtime/index.ts b/src/runtime/index.ts index 70e07a340d9..c7d498c833b 100644 --- a/src/runtime/index.ts +++ b/src/runtime/index.ts @@ -1,20 +1,20 @@ -export { addHostEventListeners } from './host-listener'; +export { getAssetPath, setAssetPath } from './asset-path'; export { defineCustomElement, forceModeUpdate, proxyCustomElement } from './bootstrap-custom-element'; export { bootstrapLazy } from './bootstrap-lazy'; -export { connectedCallback } from './connected-callback'; -export { createEvent } from './event-emitter'; -export { disconnectedCallback } from './disconnected-callback'; -export { getAssetPath, setAssetPath } from './asset-path'; export { getConnect } from './connect'; +export { connectedCallback } from './connected-callback'; export { getContext } from './context'; +export { disconnectedCallback } from './disconnected-callback'; export { getElement } from './element'; +export { createEvent } from './event-emitter'; +export { Fragment } from './fragment'; +export { addHostEventListeners } from './host-listener'; +export { getMode, setMode } from './mode'; +export { parsePropertyValue } from './parse-property-value'; +export { setPlatformOptions } from './platform-options'; +export { proxyComponent } from './proxy-component'; export { getValue, setValue } from './set-value'; +export { forceUpdate, getRenderingRef, postUpdateComponent } from './update-component'; export { h, Host } from './vdom/h'; export { insertVdomAnnotations } from './vdom/vdom-annotations'; -export { parsePropertyValue } from './parse-property-value'; -export { forceUpdate, postUpdateComponent, getRenderingRef } from './update-component'; -export { proxyComponent } from './proxy-component'; export { renderVdom } from './vdom/vdom-render'; -export { setMode, getMode } from './mode'; -export { setPlatformOptions } from './platform-options'; -export { Fragment } from './fragment'; diff --git a/src/runtime/initialize-component.ts b/src/runtime/initialize-component.ts index a6cbff82b73..cb21ed64411 100644 --- a/src/runtime/initialize-component.ts +++ b/src/runtime/initialize-component.ts @@ -1,13 +1,14 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; import { consoleError, loadModule, styles } from '@platform'; import { CMP_FLAGS, HOST_FLAGS } from '@utils'; -import { proxyComponent } from './proxy-component'; -import { safeCall, scheduleUpdate } from './update-component'; + +import type * as d from '../declarations'; import { computeMode } from './mode'; -import { getScopeId, registerStyle } from './styles'; -import { PROXY_FLAGS } from './runtime-constants'; import { createTime, uniqueTime } from './profile'; +import { proxyComponent } from './proxy-component'; +import { PROXY_FLAGS } from './runtime-constants'; +import { getScopeId, registerStyle } from './styles'; +import { safeCall, scheduleUpdate } from './update-component'; export const initializeComponent = async ( elm: d.HostElement, diff --git a/src/runtime/mode.ts b/src/runtime/mode.ts index 4af5ebfa824..90efb713dcf 100644 --- a/src/runtime/mode.ts +++ b/src/runtime/mode.ts @@ -1,6 +1,7 @@ -import type * as d from '../declarations'; import { getHostRef, modeResolutionChain } from '@platform'; +import type * as d from '../declarations'; + // Private export const computeMode = (elm: d.HostElement) => modeResolutionChain.map((h) => h(elm)).find((m) => !!m); diff --git a/src/runtime/parse-property-value.ts b/src/runtime/parse-property-value.ts index b0867119482..39d402399c8 100644 --- a/src/runtime/parse-property-value.ts +++ b/src/runtime/parse-property-value.ts @@ -1,5 +1,5 @@ -import { MEMBER_FLAGS, isComplexType } from '@utils'; import { BUILD } from '@app-data'; +import { isComplexType, MEMBER_FLAGS } from '@utils'; /** * Parse a new property value for a given property type. diff --git a/src/runtime/profile.ts b/src/runtime/profile.ts index c9fc973d352..be820af973b 100644 --- a/src/runtime/profile.ts +++ b/src/runtime/profile.ts @@ -1,8 +1,9 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; import { getHostRef, win } from '@platform'; import { HOST_FLAGS } from '@utils'; +import type * as d from '../declarations'; + let i = 0; export const createTime = (fnName: string, tagName = '') => { diff --git a/src/runtime/proxy-component.ts b/src/runtime/proxy-component.ts index 687e67a38f9..411591d5c9f 100644 --- a/src/runtime/proxy-component.ts +++ b/src/runtime/proxy-component.ts @@ -1,9 +1,10 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; import { consoleDevWarn, getHostRef, plt } from '@platform'; -import { getValue, setValue } from './set-value'; + +import type * as d from '../declarations'; import { HOST_FLAGS, MEMBER_FLAGS } from '../utils/constants'; import { PROXY_FLAGS } from './runtime-constants'; +import { getValue, setValue } from './set-value'; export const proxyComponent = (Cstr: d.ComponentConstructor, cmpMeta: d.ComponentRuntimeMeta, flags: number) => { if (BUILD.member && cmpMeta.$members$) { diff --git a/src/runtime/set-value.ts b/src/runtime/set-value.ts index c649827100c..1d8a6c94d85 100644 --- a/src/runtime/set-value.ts +++ b/src/runtime/set-value.ts @@ -1,7 +1,8 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; import { consoleDevWarn, consoleError, getHostRef } from '@platform'; import { HOST_FLAGS } from '@utils'; + +import type * as d from '../declarations'; import { parsePropertyValue } from './parse-property-value'; import { scheduleUpdate } from './update-component'; diff --git a/src/runtime/styles.ts b/src/runtime/styles.ts index f4c074bb475..b5f0e9b62ca 100644 --- a/src/runtime/styles.ts +++ b/src/runtime/styles.ts @@ -1,9 +1,10 @@ -import type * as d from '../declarations'; import { BUILD } from '@app-data'; -import { CMP_FLAGS } from '@utils'; import { doc, plt, styles, supportsConstructableStylesheets, supportsShadow } from '@platform'; -import { HYDRATED_STYLE_ID, NODE_TYPE } from './runtime-constants'; +import { CMP_FLAGS } from '@utils'; + +import type * as d from '../declarations'; import { createTime } from './profile'; +import { HYDRATED_STYLE_ID, NODE_TYPE } from './runtime-constants'; const rootAppliedStyles: d.RootAppliedStyleMap = /*@__PURE__*/ new WeakMap(); diff --git a/src/runtime/test/assets.spec.tsx b/src/runtime/test/assets.spec.tsx index b1ad305f703..0e9afe68a20 100644 --- a/src/runtime/test/assets.spec.tsx +++ b/src/runtime/test/assets.spec.tsx @@ -1,6 +1,7 @@ -import { CmpAsset } from './fixtures/cmp-asset'; -import { newSpecPage } from '@stencil/core/testing'; import { getAssetPath } from '@stencil/core'; +import { newSpecPage } from '@stencil/core/testing'; + +import { CmpAsset } from './fixtures/cmp-asset'; describe('assets', () => { it('should load asset data', async () => { diff --git a/src/runtime/test/attr.spec.tsx b/src/runtime/test/attr.spec.tsx index faa1e5fb0ed..4b6afe4ad84 100644 --- a/src/runtime/test/attr.spec.tsx +++ b/src/runtime/test/attr.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Element, Prop, h, Host } from '@stencil/core'; +import { Component, Element, h, Host, Prop } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('attribute', () => { diff --git a/src/runtime/test/before-each.spec.tsx b/src/runtime/test/before-each.spec.tsx index b0dc5c0dd0e..d12aa569005 100644 --- a/src/runtime/test/before-each.spec.tsx +++ b/src/runtime/test/before-each.spec.tsx @@ -1,4 +1,5 @@ import { newSpecPage } from '@stencil/core/testing'; + import { CmpA } from './fixtures/cmp-a'; describe('newSpecPage, spec testing', () => { diff --git a/src/runtime/test/client-hydrate-to-vdom.spec.tsx b/src/runtime/test/client-hydrate-to-vdom.spec.tsx index e7ea1ec45c4..1ac4f7039ae 100644 --- a/src/runtime/test/client-hydrate-to-vdom.spec.tsx +++ b/src/runtime/test/client-hydrate-to-vdom.spec.tsx @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; -import { Component, Host, h } from '@stencil/core'; +import { Component, h, Host } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; + +import type * as d from '../../declarations'; import { initializeClientHydrate } from '../client-hydrate'; describe('initializeClientHydrate', () => { diff --git a/src/runtime/test/fetch.spec.tsx b/src/runtime/test/fetch.spec.tsx index effd83132f7..51e027c4102 100644 --- a/src/runtime/test/fetch.spec.tsx +++ b/src/runtime/test/fetch.spec.tsx @@ -1,5 +1,5 @@ -import { MockResponse, mockFetch, newSpecPage, MockHeaders } from '@stencil/core/testing'; -import { Component, Prop, Host, h } from '@stencil/core'; +import { Component, h, Host, Prop } from '@stencil/core'; +import { mockFetch, MockHeaders, MockResponse, newSpecPage } from '@stencil/core/testing'; describe('fetch', () => { afterEach(() => { diff --git a/src/runtime/test/fixtures/cmp-a.tsx b/src/runtime/test/fixtures/cmp-a.tsx index 8165581564f..34ea92464f6 100644 --- a/src/runtime/test/fixtures/cmp-a.tsx +++ b/src/runtime/test/fixtures/cmp-a.tsx @@ -1,4 +1,5 @@ -import { Component, Event, EventEmitter, Listen, Method, Prop, State, Watch, h } from '@stencil/core'; +import { Component, Event, EventEmitter, h, Listen, Method, Prop, State, Watch } from '@stencil/core'; + import { format } from './utils'; @Component({ diff --git a/src/runtime/test/fixtures/cmp-asset.tsx b/src/runtime/test/fixtures/cmp-asset.tsx index e14a70f460b..48dc7e9e492 100644 --- a/src/runtime/test/fixtures/cmp-asset.tsx +++ b/src/runtime/test/fixtures/cmp-asset.tsx @@ -1,4 +1,4 @@ -import { Component, Host, Prop, getAssetPath, h } from '@stencil/core'; +import { Component, getAssetPath, h, Host, Prop } from '@stencil/core'; @Component({ tag: 'cmp-asset', diff --git a/src/runtime/test/globals.spec.tsx b/src/runtime/test/globals.spec.tsx index 8efa065eaa8..6a12fdb6714 100644 --- a/src/runtime/test/globals.spec.tsx +++ b/src/runtime/test/globals.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Build, Env } from '@stencil/core'; +import { Build, Component, Env } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('globals', () => { diff --git a/src/runtime/test/host.spec.tsx b/src/runtime/test/host.spec.tsx index 8835b77e0a8..ca2e42bbb20 100644 --- a/src/runtime/test/host.spec.tsx +++ b/src/runtime/test/host.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Host, Prop, State, h } from '@stencil/core'; +import { Component, h, Host, Prop, State } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('hostData', () => { diff --git a/src/runtime/test/hydrate-no-encapsulation.spec.tsx b/src/runtime/test/hydrate-no-encapsulation.spec.tsx index 867a7976af5..0881b555226 100644 --- a/src/runtime/test/hydrate-no-encapsulation.spec.tsx +++ b/src/runtime/test/hydrate-no-encapsulation.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Host, h } from '@stencil/core'; +import { Component, h, Host } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('hydrate no encapsulation', () => { diff --git a/src/runtime/test/hydrate-prop-types.spec.tsx b/src/runtime/test/hydrate-prop-types.spec.tsx index 06585018feb..26aed0ae0bd 100644 --- a/src/runtime/test/hydrate-prop-types.spec.tsx +++ b/src/runtime/test/hydrate-prop-types.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Host, Prop, h } from '@stencil/core'; +import { Component, h, Host, Prop } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('hydrate prop types', () => { diff --git a/src/runtime/test/hydrate-scoped.spec.tsx b/src/runtime/test/hydrate-scoped.spec.tsx index ee52d3aba47..233a1336f61 100644 --- a/src/runtime/test/hydrate-scoped.spec.tsx +++ b/src/runtime/test/hydrate-scoped.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Host, h } from '@stencil/core'; +import { Component, h, Host } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('hydrate scoped', () => { diff --git a/src/runtime/test/hydrate-shadow-child.spec.tsx b/src/runtime/test/hydrate-shadow-child.spec.tsx index cd80618090e..8f6631e6c1c 100644 --- a/src/runtime/test/hydrate-shadow-child.spec.tsx +++ b/src/runtime/test/hydrate-shadow-child.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Host, h } from '@stencil/core'; +import { Component, h, Host } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('hydrate, shadow child', () => { diff --git a/src/runtime/test/hydrate-shadow-in-shadow.spec.tsx b/src/runtime/test/hydrate-shadow-in-shadow.spec.tsx index 7a33361c175..e0916a7a6d2 100644 --- a/src/runtime/test/hydrate-shadow-in-shadow.spec.tsx +++ b/src/runtime/test/hydrate-shadow-in-shadow.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Host, h } from '@stencil/core'; +import { Component, h, Host } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('hydrate, shadow in shadow', () => { diff --git a/src/runtime/test/hydrate-shadow-parent.spec.tsx b/src/runtime/test/hydrate-shadow-parent.spec.tsx index e3ec2ee6715..d9a7adc73c0 100644 --- a/src/runtime/test/hydrate-shadow-parent.spec.tsx +++ b/src/runtime/test/hydrate-shadow-parent.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Host, h } from '@stencil/core'; +import { Component, h, Host } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('hydrate, shadow parent', () => { diff --git a/src/runtime/test/jsx.spec.tsx b/src/runtime/test/jsx.spec.tsx index 1dd3ceab9ad..555806e51b7 100644 --- a/src/runtime/test/jsx.spec.tsx +++ b/src/runtime/test/jsx.spec.tsx @@ -1,5 +1,6 @@ -import { Component, Host, Prop, State, h, Fragment } from '@stencil/core'; +import { Component, Fragment, h, Host, Prop, State } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; + import { FunctionalComponent } from '../../declarations'; describe('jsx', () => { diff --git a/src/runtime/test/lifecycle-sync.spec.tsx b/src/runtime/test/lifecycle-sync.spec.tsx index 8414d3570a4..0c28d2deb7b 100644 --- a/src/runtime/test/lifecycle-sync.spec.tsx +++ b/src/runtime/test/lifecycle-sync.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Element, Host, Method, Prop, Watch, h, forceUpdate } from '@stencil/core'; +import { Component, Element, forceUpdate, h, Host, Method, Prop, Watch } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('lifecycle sync', () => { diff --git a/src/runtime/test/parse-property-value.spec.ts b/src/runtime/test/parse-property-value.spec.ts index 9d7de80c99e..808d62ba43e 100644 --- a/src/runtime/test/parse-property-value.spec.ts +++ b/src/runtime/test/parse-property-value.spec.ts @@ -1,5 +1,5 @@ -import { parsePropertyValue } from '../parse-property-value'; import { MEMBER_FLAGS } from '../../utils'; +import { parsePropertyValue } from '../parse-property-value'; describe('parse-property-value', () => { describe('parsePropertyValue', () => { diff --git a/src/runtime/test/prop-warnings.spec.tsx b/src/runtime/test/prop-warnings.spec.tsx index 18ee62f6957..cb60fe9e213 100644 --- a/src/runtime/test/prop-warnings.spec.tsx +++ b/src/runtime/test/prop-warnings.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Prop, Method, h } from '@stencil/core'; +import { Component, h, Method, Prop } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('prop', () => { diff --git a/src/runtime/test/prop.spec.tsx b/src/runtime/test/prop.spec.tsx index 9775fee596a..13c3dbcaf32 100644 --- a/src/runtime/test/prop.spec.tsx +++ b/src/runtime/test/prop.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Prop, h } from '@stencil/core'; +import { Component, h, Prop } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('prop', () => { diff --git a/src/runtime/test/queue.spec.tsx b/src/runtime/test/queue.spec.tsx index afc969ce0ec..d1bf80c6e81 100644 --- a/src/runtime/test/queue.spec.tsx +++ b/src/runtime/test/queue.spec.tsx @@ -1,5 +1,5 @@ -import { newSpecPage } from '@stencil/core/testing'; import { Component, Method, readTask, writeTask } from '@stencil/core'; +import { newSpecPage } from '@stencil/core/testing'; describe('queue', () => { it('should execute tasks in the right order', async () => { diff --git a/src/runtime/test/render-vdom.spec.tsx b/src/runtime/test/render-vdom.spec.tsx index 00e939e5a27..81b4284d57b 100644 --- a/src/runtime/test/render-vdom.spec.tsx +++ b/src/runtime/test/render-vdom.spec.tsx @@ -1,5 +1,6 @@ -import { Component, Element, setErrorHandler, Host, Prop, State, forceUpdate, getRenderingRef, h } from '@stencil/core'; +import { Component, Element, forceUpdate, getRenderingRef, h, Host, Prop, setErrorHandler, State } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; + import { withSilentWarn } from '../../testing/testing-utils'; describe('render-vdom', () => { diff --git a/src/runtime/test/scoped.spec.tsx b/src/runtime/test/scoped.spec.tsx index 095bf1e8380..7581db3272a 100644 --- a/src/runtime/test/scoped.spec.tsx +++ b/src/runtime/test/scoped.spec.tsx @@ -1,5 +1,5 @@ -import { newSpecPage } from '@stencil/core/testing'; import { Component, h } from '@stencil/core'; +import { newSpecPage } from '@stencil/core/testing'; describe('scoped', () => { it('should add scoped classes', async () => { diff --git a/src/runtime/test/shadow.spec.tsx b/src/runtime/test/shadow.spec.tsx index dc0c3eda88a..856427d8684 100644 --- a/src/runtime/test/shadow.spec.tsx +++ b/src/runtime/test/shadow.spec.tsx @@ -1,5 +1,5 @@ -import { newSpecPage } from '@stencil/core/testing'; import { Component, h } from '@stencil/core'; +import { newSpecPage } from '@stencil/core/testing'; @Component({ tag: 'cmp-a', diff --git a/src/runtime/test/style.spec.tsx b/src/runtime/test/style.spec.tsx index c26f4e120f5..df37151f61c 100644 --- a/src/runtime/test/style.spec.tsx +++ b/src/runtime/test/style.spec.tsx @@ -1,4 +1,4 @@ -import { Component, setMode, getMode } from '@stencil/core'; +import { Component, getMode, setMode } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('style', () => { diff --git a/src/runtime/test/svg-element.spec.tsx b/src/runtime/test/svg-element.spec.tsx index e294c2633bf..82a49030e7e 100644 --- a/src/runtime/test/svg-element.spec.tsx +++ b/src/runtime/test/svg-element.spec.tsx @@ -1,5 +1,6 @@ import { Component, h } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; + import { Prop } from '../../declarations'; describe('SVG element', () => { diff --git a/src/runtime/test/vdom-relocation.spec.tsx b/src/runtime/test/vdom-relocation.spec.tsx index d9acb1e2a33..e59794076a1 100644 --- a/src/runtime/test/vdom-relocation.spec.tsx +++ b/src/runtime/test/vdom-relocation.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Listen, State, h } from '@stencil/core'; +import { Component, h, Listen, State } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('vdom-relocation', () => { diff --git a/src/runtime/test/watch.spec.tsx b/src/runtime/test/watch.spec.tsx index 5f0ee6dfa97..2b6dfa07a1e 100644 --- a/src/runtime/test/watch.spec.tsx +++ b/src/runtime/test/watch.spec.tsx @@ -1,5 +1,6 @@ import { Component, Method, Prop, State, Watch } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; + import { withSilentWarn } from '../../testing/testing-utils'; describe('watch', () => { diff --git a/src/runtime/update-component.ts b/src/runtime/update-component.ts index 1eeb8f9c909..262be1eaa5c 100644 --- a/src/runtime/update-component.ts +++ b/src/runtime/update-component.ts @@ -1,12 +1,13 @@ -import type * as d from '../declarations'; -import { attachStyles } from './styles'; import { BUILD, NAMESPACE } from '@app-data'; +import { consoleError, doc, getHostRef, nextTick, plt, win, writeTask } from '@platform'; import { CMP_FLAGS, HOST_FLAGS } from '@utils'; -import { consoleError, doc, getHostRef, nextTick, plt, writeTask, win } from '@platform'; + +import type * as d from '../declarations'; +import { emitEvent } from './event-emitter'; +import { createTime } from './profile'; import { PLATFORM_FLAGS } from './runtime-constants'; +import { attachStyles } from './styles'; import { renderVdom } from './vdom/vdom-render'; -import { createTime } from './profile'; -import { emitEvent } from './event-emitter'; export const attachToAncestor = (hostRef: d.HostRef, ancestorComponent: d.HostElement) => { if (BUILD.asyncLoading && ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) { diff --git a/src/runtime/vdom/h.ts b/src/runtime/vdom/h.ts index 3829b9f3d7a..0120dd8fb3f 100644 --- a/src/runtime/vdom/h.ts +++ b/src/runtime/vdom/h.ts @@ -7,11 +7,12 @@ * Modified for Stencil's compiler and vdom */ -import type * as d from '../../declarations'; import { BUILD } from '@app-data'; import { consoleDevError, consoleDevWarn } from '@platform'; import { isComplexType } from '@utils'; +import type * as d from '../../declarations'; + // const stack: any[] = []; // export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode; diff --git a/src/runtime/vdom/set-accessor.ts b/src/runtime/vdom/set-accessor.ts index 32efead0dd6..7428764808e 100644 --- a/src/runtime/vdom/set-accessor.ts +++ b/src/runtime/vdom/set-accessor.ts @@ -8,8 +8,9 @@ */ import { BUILD } from '@app-data'; -import { isComplexType } from '@utils'; import { isMemberInElement, plt, win } from '@platform'; +import { isComplexType } from '@utils'; + import { VNODE_FLAGS, XLINK_NS } from '../runtime-constants'; export const setAccessor = ( diff --git a/src/runtime/vdom/test/attributes.spec.ts b/src/runtime/vdom/test/attributes.spec.ts index 1c202c42f34..7ae82ebacd0 100755 --- a/src/runtime/vdom/test/attributes.spec.ts +++ b/src/runtime/vdom/test/attributes.spec.ts @@ -1,7 +1,8 @@ +import { SVG_NS, XLINK_NS } from '@utils'; + import type * as d from '../../../declarations'; import { h, newVNode } from '../h'; import { patch } from '../vdom-render'; -import { SVG_NS, XLINK_NS } from '@utils'; describe('attributes', () => { let hostElm: d.HostElement; diff --git a/src/runtime/vdom/test/patch-svg.spec.ts b/src/runtime/vdom/test/patch-svg.spec.ts index e9fe6bbd7c8..74ed81f3776 100644 --- a/src/runtime/vdom/test/patch-svg.spec.ts +++ b/src/runtime/vdom/test/patch-svg.spec.ts @@ -1,7 +1,8 @@ +import { SVG_NS } from '@utils'; + import type * as d from '../../../declarations'; import { h, newVNode } from '../h'; import { patch } from '../vdom-render'; -import { SVG_NS } from '@utils'; import { toVNode } from './to-vnode'; describe('renderer', () => { diff --git a/src/runtime/vdom/test/patch.spec.ts b/src/runtime/vdom/test/patch.spec.ts index a4138e16217..5183410cd9b 100755 --- a/src/runtime/vdom/test/patch.spec.ts +++ b/src/runtime/vdom/test/patch.spec.ts @@ -1,8 +1,9 @@ +import { shuffleArray } from '@stencil/core/testing'; +import { SVG_NS } from '@utils'; + import type * as d from '../../../declarations'; import { h, newVNode } from '../h'; import { patch } from '../vdom-render'; -import { shuffleArray } from '@stencil/core/testing'; -import { SVG_NS } from '@utils'; import { toVNode } from './to-vnode'; describe('renderer', () => { diff --git a/src/runtime/vdom/test/scoped-slot.spec.tsx b/src/runtime/vdom/test/scoped-slot.spec.tsx index 98a391182bf..411fa469888 100644 --- a/src/runtime/vdom/test/scoped-slot.spec.tsx +++ b/src/runtime/vdom/test/scoped-slot.spec.tsx @@ -1,4 +1,4 @@ -import { Component, Prop, h, forceUpdate } from '@stencil/core'; +import { Component, forceUpdate, h, Prop } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; describe('scoped slot', () => { diff --git a/src/runtime/vdom/test/update-element.spec.ts b/src/runtime/vdom/test/update-element.spec.ts index 5b46907a3f5..cd4c35e869c 100644 --- a/src/runtime/vdom/test/update-element.spec.ts +++ b/src/runtime/vdom/test/update-element.spec.ts @@ -1,8 +1,8 @@ import type * as d from '../../../declarations'; import { NODE_TYPE } from '../../runtime-constants'; -import { updateElement } from '../update-element'; -import * as setAccessor from '../set-accessor'; import { newVNode } from '../h'; +import * as setAccessor from '../set-accessor'; +import { updateElement } from '../update-element'; describe('updateElement', () => { const createTestNode = (overrides: Partial = {}): d.VNode => ({ diff --git a/src/runtime/vdom/update-element.ts b/src/runtime/vdom/update-element.ts index 7ad553863f4..7b7ed5939e6 100644 --- a/src/runtime/vdom/update-element.ts +++ b/src/runtime/vdom/update-element.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; import { BUILD } from '@app-data'; import { EMPTY_OBJ } from '@utils'; + +import type * as d from '../../declarations'; import { NODE_TYPE } from '../runtime-constants'; import { setAccessor } from './set-accessor'; diff --git a/src/runtime/vdom/vdom-annotations.ts b/src/runtime/vdom/vdom-annotations.ts index 8cec6d35483..51e9514e312 100644 --- a/src/runtime/vdom/vdom-annotations.ts +++ b/src/runtime/vdom/vdom-annotations.ts @@ -1,3 +1,5 @@ +import { getHostRef } from '@platform'; + import type * as d from '../../declarations'; import { CONTENT_REF_ID, @@ -8,7 +10,6 @@ import { SLOT_NODE_ID, TEXT_NODE_ID, } from '../runtime-constants'; -import { getHostRef } from '@platform'; export const insertVdomAnnotations = (doc: Document, staticComponents: string[]) => { if (doc != null) { diff --git a/src/runtime/vdom/vdom-render.ts b/src/runtime/vdom/vdom-render.ts index 6fd15d1656c..1aae58d7c06 100644 --- a/src/runtime/vdom/vdom-render.ts +++ b/src/runtime/vdom/vdom-render.ts @@ -6,12 +6,13 @@ * * Modified for Stencil's renderer and slot projection */ -import type * as d from '../../declarations'; import { BUILD } from '@app-data'; -import { CMP_FLAGS, HTML_NS, SVG_NS, isDef } from '@utils'; import { consoleDevError, doc, plt, supportsShadow } from '@platform'; -import { h, isHost, newVNode } from './h'; +import { CMP_FLAGS, HTML_NS, isDef, SVG_NS } from '@utils'; + +import type * as d from '../../declarations'; import { NODE_TYPE, PLATFORM_FLAGS, VNODE_FLAGS } from '../runtime-constants'; +import { h, isHost, newVNode } from './h'; import { updateElement } from './update-element'; let scopeId: string; diff --git a/src/screenshot/connector-base.ts b/src/screenshot/connector-base.ts index 8a57f8e6cb4..efebd9e8603 100644 --- a/src/screenshot/connector-base.ts +++ b/src/screenshot/connector-base.ts @@ -1,7 +1,8 @@ import type * as d from '@stencil/core/internal'; -import { emptyDir, fileExists, mkDir, readDir, readFile, readFileBuffer, rmDir, writeFile } from './screenshot-fs'; -import { join } from 'path'; import { tmpdir } from 'os'; +import { join } from 'path'; + +import { emptyDir, fileExists, mkDir, readDir, readFile, readFileBuffer, rmDir, writeFile } from './screenshot-fs'; export class ScreenshotConnector implements d.ScreenshotConnector { rootDir: string; diff --git a/src/screenshot/connector-local.ts b/src/screenshot/connector-local.ts index 2b839e35569..d0dda4e19b6 100644 --- a/src/screenshot/connector-local.ts +++ b/src/screenshot/connector-local.ts @@ -1,8 +1,9 @@ import type * as d from '@stencil/core/internal'; -import { fileExists, readFile, writeFile } from './screenshot-fs'; -import { join, relative } from 'path'; import { normalizePath } from '@utils'; +import { join, relative } from 'path'; + import { ScreenshotConnector } from './connector-base'; +import { fileExists, readFile, writeFile } from './screenshot-fs'; export class ScreenshotLocalConnector extends ScreenshotConnector { override async publishBuild(results: d.ScreenshotBuildResults) { diff --git a/src/screenshot/index.ts b/src/screenshot/index.ts index 0be626f9a2a..f8608d07e2c 100644 --- a/src/screenshot/index.ts +++ b/src/screenshot/index.ts @@ -1,3 +1,3 @@ export { ScreenshotConnector } from './connector-base'; export { ScreenshotLocalConnector } from './connector-local'; -export { ScreenshotBuild, Screenshot, ScreenshotCompareResults, ScreenshotDiff } from '@stencil/core/internal'; +export { Screenshot, ScreenshotBuild, ScreenshotCompareResults, ScreenshotDiff } from '@stencil/core/internal'; diff --git a/src/screenshot/screenshot-compare.ts b/src/screenshot/screenshot-compare.ts index 122f3c5d274..bed66ca1230 100644 --- a/src/screenshot/screenshot-compare.ts +++ b/src/screenshot/screenshot-compare.ts @@ -1,9 +1,10 @@ import type * as d from '@stencil/core/internal'; import { normalizePath } from '@utils'; -import { writeScreenshotData, writeScreenshotImage } from './screenshot-fs'; +import { fork } from 'child_process'; import { createHash } from 'crypto'; import { join, relative } from 'path'; -import { fork } from 'child_process'; + +import { writeScreenshotData, writeScreenshotImage } from './screenshot-fs'; export async function compareScreenshot( emulateConfig: d.EmulateConfig, diff --git a/src/sys/node/index.ts b/src/sys/node/index.ts index cc0fbce50d0..12526277b56 100644 --- a/src/sys/node/index.ts +++ b/src/sys/node/index.ts @@ -1,3 +1,3 @@ export { createNodeLogger } from './node-logger'; -export { createNodeSys } from './node-sys'; export { setupNodeProcess } from './node-setup-process'; +export { createNodeSys } from './node-sys'; diff --git a/src/sys/node/node-copy-tasks.ts b/src/sys/node/node-copy-tasks.ts index 7d8f21ba7d9..83a83a465c1 100644 --- a/src/sys/node/node-copy-tasks.ts +++ b/src/sys/node/node-copy-tasks.ts @@ -1,8 +1,9 @@ -import type * as d from '../../declarations'; import { buildError, catchError, flatOne, isGlob, normalizePath } from '@utils'; -import { copyFile, mkdir, readdir, stat } from './node-fs-promisify'; -import path from 'path'; import glob from 'glob'; +import path from 'path'; + +import type * as d from '../../declarations'; +import { copyFile, mkdir, readdir, stat } from './node-fs-promisify'; export async function nodeCopyTasks(copyTasks: Required[], srcDir: string) { const results: d.CopyResults = { diff --git a/src/sys/node/node-lazy-require.ts b/src/sys/node/node-lazy-require.ts index 6ba3bbde11f..6a381038727 100644 --- a/src/sys/node/node-lazy-require.ts +++ b/src/sys/node/node-lazy-require.ts @@ -1,11 +1,12 @@ -import type * as d from '../../declarations'; import { buildError } from '@utils'; -import { NodeResolveModule } from './node-resolve-module'; import fs from 'graceful-fs'; import path from 'path'; -import satisfies from 'semver/functions/satisfies'; -import major from 'semver/functions/major'; import semverLte from 'semver/functions/lte'; +import major from 'semver/functions/major'; +import satisfies from 'semver/functions/satisfies'; + +import type * as d from '../../declarations'; +import { NodeResolveModule } from './node-resolve-module'; /** * The version range that we support for a given package. The strings should be diff --git a/src/sys/node/node-logger.ts b/src/sys/node/node-logger.ts index 3c71c52fa9c..8a671a91e74 100644 --- a/src/sys/node/node-logger.ts +++ b/src/sys/node/node-logger.ts @@ -1,8 +1,9 @@ -import { Logger } from '../../declarations'; -import { createTerminalLogger, TerminalLoggerSys } from '../../compiler/sys/logger/terminal-logger'; import fs from 'graceful-fs'; import path from 'path'; +import { createTerminalLogger, TerminalLoggerSys } from '../../compiler/sys/logger/terminal-logger'; +import { Logger } from '../../declarations'; + /** * Create a logger to run in a Node environment * @param context a context with NodeJS specific details used to create the logger diff --git a/src/sys/node/node-resolve-module.ts b/src/sys/node/node-resolve-module.ts index c63bc881459..e65701e8a2a 100644 --- a/src/sys/node/node-resolve-module.ts +++ b/src/sys/node/node-resolve-module.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; +import { normalizePath } from '@utils'; import fs from 'graceful-fs'; import path from 'path'; -import { normalizePath } from '@utils'; + +import type * as d from '../../declarations'; export class NodeResolveModule { private resolveModuleCache = new Map(); diff --git a/src/sys/node/node-setup-process.ts b/src/sys/node/node-setup-process.ts index 9c25599665b..a09c4ee9caa 100644 --- a/src/sys/node/node-setup-process.ts +++ b/src/sys/node/node-setup-process.ts @@ -1,6 +1,7 @@ -import type { Logger } from '../../declarations'; import { shouldIgnoreError } from '@utils'; +import type { Logger } from '../../declarations'; + export function setupNodeProcess(c: { process: any; logger: Logger }) { c.process.on(`unhandledRejection`, (e: any) => { if (!shouldIgnoreError(e)) { diff --git a/src/sys/node/node-stencil-version-checker.ts b/src/sys/node/node-stencil-version-checker.ts index 903b6022b31..ee2e825d12a 100644 --- a/src/sys/node/node-stencil-version-checker.ts +++ b/src/sys/node/node-stencil-version-checker.ts @@ -1,9 +1,10 @@ -import type { Logger, PackageJsonData } from '../../declarations'; import { isString, noop } from '@utils'; import fs from 'graceful-fs'; +import { tmpdir } from 'os'; import path from 'path'; import semverLt from 'semver/functions/lt'; -import { tmpdir } from 'os'; + +import type { Logger, PackageJsonData } from '../../declarations'; const REGISTRY_URL = `https://registry.npmjs.org/@stencil/core`; const CHECK_INTERVAL = 1000 * 60 * 60 * 24 * 7; diff --git a/src/sys/node/node-sys.ts b/src/sys/node/node-sys.ts index 59998a29d5f..e60a4fd43ad 100644 --- a/src/sys/node/node-sys.ts +++ b/src/sys/node/node-sys.ts @@ -1,3 +1,14 @@ +import { isFunction, isPromise, normalizePath } from '@utils'; +import { parse as parseYarnLockFile } from '@yarnpkg/lockfile'; +import { createHash } from 'crypto'; +import exit from 'exit'; +import fs from 'graceful-fs'; +import { cpus, freemem, platform, release, tmpdir, totalmem } from 'os'; +import * as os from 'os'; +import path from 'path'; +import type TypeScript from 'typescript'; + +import { buildEvents } from '../../compiler/events'; import type { CompilerSystem, CompilerSystemCreateDirectoryResults, @@ -6,20 +17,10 @@ import type { CompilerSystemWriteFileResults, } from '../../declarations'; import { asyncGlob, nodeCopyTasks } from './node-copy-tasks'; -import { buildEvents } from '../../compiler/events'; -import { checkVersion } from './node-stencil-version-checker'; -import { cpus, freemem, platform, release, tmpdir, totalmem } from 'os'; -import { createHash } from 'crypto'; -import exit from 'exit'; -import fs from 'graceful-fs'; -import { parse as parseYarnLockFile } from '@yarnpkg/lockfile'; -import { isFunction, isPromise, normalizePath } from '@utils'; import { NodeLazyRequire } from './node-lazy-require'; import { NodeResolveModule } from './node-resolve-module'; +import { checkVersion } from './node-stencil-version-checker'; import { NodeWorkerController } from './node-worker-controller'; -import path from 'path'; -import * as os from 'os'; -import type TypeScript from 'typescript'; export function createNodeSys(c: { process?: any } = {}) { const prcs: NodeJS.Process = c.process || global.process; diff --git a/src/sys/node/node-worker-controller.ts b/src/sys/node/node-worker-controller.ts index e0798af5210..eb0f9bf7ab0 100755 --- a/src/sys/node/node-worker-controller.ts +++ b/src/sys/node/node-worker-controller.ts @@ -1,9 +1,10 @@ -import type * as d from '../../declarations'; -import { EventEmitter } from 'events'; import { TASK_CANCELED_MSG } from '@utils'; -import { NodeWorkerMain } from './node-worker-main'; +import { EventEmitter } from 'events'; import { cpus } from 'os'; +import type * as d from '../../declarations'; +import { NodeWorkerMain } from './node-worker-main'; + export class NodeWorkerController extends EventEmitter implements d.WorkerMainController { workerIds = 0; stencilId = 0; diff --git a/src/sys/node/node-worker-main.ts b/src/sys/node/node-worker-main.ts index daba889d1de..eca04cc65f8 100644 --- a/src/sys/node/node-worker-main.ts +++ b/src/sys/node/node-worker-main.ts @@ -1,7 +1,8 @@ -import type * as d from '../../declarations'; +import { TASK_CANCELED_MSG } from '@utils'; import * as cp from 'child_process'; import { EventEmitter } from 'events'; -import { TASK_CANCELED_MSG } from '@utils'; + +import type * as d from '../../declarations'; export class NodeWorkerMain extends EventEmitter { childProcess: cp.ChildProcess; diff --git a/src/sys/node/test/node-lazy-require.spec.ts b/src/sys/node/test/node-lazy-require.spec.ts index 15475b730c0..3d8263d3cd5 100644 --- a/src/sys/node/test/node-lazy-require.spec.ts +++ b/src/sys/node/test/node-lazy-require.spec.ts @@ -1,8 +1,9 @@ -import { LazyDependencies, NodeLazyRequire } from '../node-lazy-require'; import { buildError } from '@utils'; -import { NodeResolveModule } from '../node-resolve-module'; import fs from 'graceful-fs'; +import { LazyDependencies, NodeLazyRequire } from '../node-lazy-require'; +import { NodeResolveModule } from '../node-resolve-module'; + const mockPackageJson = (version: string) => JSON.stringify({ version, diff --git a/src/sys/node/worker.ts b/src/sys/node/worker.ts index 21f86b34a5b..7e8a39a7adb 100644 --- a/src/sys/node/worker.ts +++ b/src/sys/node/worker.ts @@ -1,5 +1,7 @@ import '@stencil/core/compiler'; + import * as nodeApi from '@sys-api-node'; + import { initNodeWorkerThread } from './node-worker-thread'; const coreCompiler = (global as any).stencil as typeof import('@stencil/core/compiler'); diff --git a/src/testing/index.ts b/src/testing/index.ts index 6c35dd1530f..e42d7d8e316 100644 --- a/src/testing/index.ts +++ b/src/testing/index.ts @@ -1,32 +1,31 @@ export { createJestPuppeteerEnvironment } from './jest/jest-environment'; -export { createTesting } from './testing'; -export { createTestRunner } from './jest/jest-runner'; export { jestPreprocessor } from './jest/jest-preprocessor'; +export { createTestRunner } from './jest/jest-runner'; export { jestSetupTestFramework } from './jest/jest-setup-test-framework'; +export { + mockFetch, + MockHeaders, + MockRequest, + MockRequestInfo, + MockRequestInit, + MockResponse, + MockResponseInit, +} from './mock-fetch'; export { mockBuildCtx, - mockConfig, mockCompilerCtx, + mockCompilerSystem, + mockConfig, mockDocument, mockLoadConfigInit, - mockValidatedConfig, mockLogger, - mockCompilerSystem, - mockWindow, mockModule, + mockValidatedConfig, + mockWindow, } from './mocks'; -export { - MockHeaders, - MockRequest, - MockRequestInit, - MockRequestInfo, - MockResponse, - MockResponseInit, - mockFetch, -} from './mock-fetch'; +export { E2EElement, E2EPage, newE2EPage } from './puppeteer'; export { newSpecPage } from './spec-page'; -export { shuffleArray } from './testing-utils'; export { transpile } from './test-transpile'; +export { createTesting } from './testing'; +export { shuffleArray } from './testing-utils'; export type { EventSpy, SpecPage, Testing } from '@stencil/core/internal'; - -export { E2EElement, E2EPage, newE2EPage } from './puppeteer'; diff --git a/src/testing/jest/jest-config.ts b/src/testing/jest/jest-config.ts index de4657b456d..3ebad658748 100644 --- a/src/testing/jest/jest-config.ts +++ b/src/testing/jest/jest-config.ts @@ -1,5 +1,5 @@ -import type * as d from '@stencil/core/internal'; import type { Config } from '@jest/types'; +import type * as d from '@stencil/core/internal'; import { isString } from '@utils'; // TODO(STENCIL-306): Remove support for earlier versions of Jest diff --git a/src/testing/jest/jest-environment.ts b/src/testing/jest/jest-environment.ts index d238b238284..3d33eebc3b7 100644 --- a/src/testing/jest/jest-environment.ts +++ b/src/testing/jest/jest-environment.ts @@ -1,4 +1,5 @@ import type { E2EProcessEnv, JestEnvironmentGlobal } from '@stencil/core/internal'; + import { connectBrowser, disconnectBrowser, newBrowserPage } from '../puppeteer/puppeteer-browser'; export function createJestPuppeteerEnvironment() { diff --git a/src/testing/jest/jest-preprocessor.ts b/src/testing/jest/jest-preprocessor.ts index 69a38310326..4b260e87be8 100644 --- a/src/testing/jest/jest-preprocessor.ts +++ b/src/testing/jest/jest-preprocessor.ts @@ -1,7 +1,8 @@ -import type { TranspileOptions, Diagnostic } from '@stencil/core/internal'; +import { ts } from '@stencil/core/compiler'; +import type { Diagnostic, TranspileOptions } from '@stencil/core/internal'; import { loadTypeScriptDiagnostic, normalizePath } from '@utils'; + import { transpile } from '../test-transpile'; -import { ts } from '@stencil/core/compiler'; // TODO(STENCIL-306): Remove support for earlier versions of Jest type Jest26CacheKeyOptions = { instrument: boolean; rootDir: string }; diff --git a/src/testing/jest/jest-runner.ts b/src/testing/jest/jest-runner.ts index d47c18f316b..e0ca3709741 100644 --- a/src/testing/jest/jest-runner.ts +++ b/src/testing/jest/jest-runner.ts @@ -1,8 +1,9 @@ -import type * as d from '@stencil/core/internal'; -import { buildJestArgv, getProjectListFromCLIArgs } from './jest-config'; -import { setScreenshotEmulateData } from '../puppeteer/puppeteer-emulate'; import type { AggregatedResult } from '@jest/test-result'; +import type * as d from '@stencil/core/internal'; + import type { ConfigFlags } from '../../cli/config-flags'; +import { setScreenshotEmulateData } from '../puppeteer/puppeteer-emulate'; +import { buildJestArgv, getProjectListFromCLIArgs } from './jest-config'; export async function runJest(config: d.ValidatedConfig, env: d.E2EProcessEnv) { let success = false; diff --git a/src/testing/jest/jest-screenshot.ts b/src/testing/jest/jest-screenshot.ts index 828b69197e3..64fd141d0c0 100644 --- a/src/testing/jest/jest-screenshot.ts +++ b/src/testing/jest/jest-screenshot.ts @@ -1,7 +1,8 @@ import type * as d from '@stencil/core/internal'; -import { runJest } from './jest-runner'; import { join } from 'path'; +import { runJest } from './jest-runner'; + export async function runJestScreenshot(config: d.ValidatedConfig, env: d.E2EProcessEnv) { config.logger.debug(`screenshot connector: ${config.testing.screenshotConnector}`); diff --git a/src/testing/jest/jest-setup-test-framework.ts b/src/testing/jest/jest-setup-test-framework.ts index 9da5a326efe..00f05835d34 100644 --- a/src/testing/jest/jest-setup-test-framework.ts +++ b/src/testing/jest/jest-setup-test-framework.ts @@ -1,16 +1,17 @@ -import type * as d from '@stencil/core/internal'; import { BUILD, Env } from '@app-data'; -import { expectExtend } from '../matchers'; -import { setupGlobal, teardownGlobal } from '@stencil/core/mock-doc'; -import { setupMockFetch } from '../mock-fetch'; -import { HtmlSerializer } from './jest-serializer'; -import { resetBuildConditionals } from '../reset-build-conditionals'; +import type * as d from '@stencil/core/internal'; import { - resetPlatform, - stopAutoApplyChanges, modeResolutionChain, + resetPlatform, setErrorHandler, + stopAutoApplyChanges, } from '@stencil/core/internal/testing'; +import { setupGlobal, teardownGlobal } from '@stencil/core/mock-doc'; + +import { expectExtend } from '../matchers'; +import { setupMockFetch } from '../mock-fetch'; +import { resetBuildConditionals } from '../reset-build-conditionals'; +import { HtmlSerializer } from './jest-serializer'; declare const global: d.JestEnvironmentGlobal; diff --git a/src/testing/jest/test/jest-config.spec.ts b/src/testing/jest/test/jest-config.spec.ts index bc72cc304cd..11b243f0d15 100644 --- a/src/testing/jest/test/jest-config.spec.ts +++ b/src/testing/jest/test/jest-config.spec.ts @@ -1,9 +1,10 @@ import type * as d from '@stencil/core/declarations'; -import { buildJestArgv } from '../jest-config'; import { mockValidatedConfig } from '@stencil/core/testing'; -import { parseFlags } from '../../../cli/parse-flags'; import path from 'path'; +import { parseFlags } from '../../../cli/parse-flags'; +import { buildJestArgv } from '../jest-config'; + describe('jest-config', () => { it('pass --maxWorkers=2 arg when --max-workers=2', () => { const args = ['test', '--ci', '--max-workers=2']; diff --git a/src/testing/jest/test/jest-runner.spec.ts b/src/testing/jest/test/jest-runner.spec.ts index d2a48c79a17..66fbae1cde1 100644 --- a/src/testing/jest/test/jest-runner.spec.ts +++ b/src/testing/jest/test/jest-runner.spec.ts @@ -1,4 +1,5 @@ import type * as d from '@stencil/core/declarations'; + import { ConfigFlags, createConfigFlags } from '../../../cli/config-flags'; import { getEmulateConfigs, includeTestFile } from '../jest-runner'; diff --git a/src/testing/jest/test/jest-serializer.spec.ts b/src/testing/jest/test/jest-serializer.spec.ts index 018b78a26a7..a7003538269 100644 --- a/src/testing/jest/test/jest-serializer.spec.ts +++ b/src/testing/jest/test/jest-serializer.spec.ts @@ -1,6 +1,7 @@ -import { HtmlSerializer } from '../jest-serializer'; import { MockDocument } from '@stencil/core/mock-doc'; +import { HtmlSerializer } from '../jest-serializer'; + describe('serialize node', () => { let doc: MockDocument; beforeEach(() => { diff --git a/src/testing/matchers/index.ts b/src/testing/matchers/index.ts index e0c9eceb322..5238c896acb 100644 --- a/src/testing/matchers/index.ts +++ b/src/testing/matchers/index.ts @@ -1,15 +1,15 @@ import { toEqualAttribute, toEqualAttributes, toHaveAttribute } from './attributes'; +import { toHaveClass, toHaveClasses, toMatchClasses } from './class-list'; import { + toHaveFirstReceivedEventDetail, + toHaveNthReceivedEventDetail, toHaveReceivedEvent, toHaveReceivedEventDetail, toHaveReceivedEventTimes, - toHaveFirstReceivedEventDetail, - toHaveNthReceivedEventDetail, } from './events'; import { toEqualHtml, toEqualLightHtml } from './html'; -import { toEqualText } from './text'; -import { toHaveClass, toHaveClasses, toMatchClasses } from './class-list'; import { toMatchScreenshot } from './screenshot'; +import { toEqualText } from './text'; export const expectExtend = { toEqualAttribute, diff --git a/src/testing/mock-fetch.ts b/src/testing/mock-fetch.ts index 6b7306b99ee..5f1b8161c35 100644 --- a/src/testing/mock-fetch.ts +++ b/src/testing/mock-fetch.ts @@ -161,8 +161,8 @@ const FETCH_DEFAULT_PATH = '/mock-fetch-data'; export { MockHeaders, MockRequest, - MockRequestInit, MockRequestInfo, + MockRequestInit, MockResponse, MockResponseInit, } from '../mock-doc'; diff --git a/src/testing/mocks.ts b/src/testing/mocks.ts index 56ad64fa254..5c09682122c 100644 --- a/src/testing/mocks.ts +++ b/src/testing/mocks.ts @@ -1,24 +1,25 @@ +import { createWorkerContext } from '@stencil/core/compiler'; import type { BuildCtx, Cache, CompilerCtx, Config, LoadConfigInit, - ValidatedConfig, Module, UnvalidatedConfig, + ValidatedConfig, } from '@stencil/core/internal'; +import { MockWindow } from '@stencil/core/mock-doc'; +import { noop } from '@utils'; +import path from 'path'; + +import { createConfigFlags } from '../cli/config-flags'; import { BuildContext } from '../compiler/build/build-ctx'; import { Cache as CompilerCache } from '../compiler/cache'; +import { buildEvents } from '../compiler/events'; import { createInMemoryFs } from '../compiler/sys/in-memory-fs'; -import { createTestingSystem, TestingSystem } from './testing-sys'; -import { createWorkerContext } from '@stencil/core/compiler'; -import { MockWindow } from '@stencil/core/mock-doc'; import { TestingLogger } from './testing-logger'; -import path from 'path'; -import { noop } from '@utils'; -import { buildEvents } from '../compiler/events'; -import { createConfigFlags } from '../cli/config-flags'; +import { createTestingSystem, TestingSystem } from './testing-sys'; /** * Creates a mock instance of an internal, validated Stencil configuration object diff --git a/src/testing/platform/index.ts b/src/testing/platform/index.ts index 8984f7bdbbf..24b373a4ccb 100644 --- a/src/testing/platform/index.ts +++ b/src/testing/platform/index.ts @@ -1,24 +1,24 @@ export { Build } from './testing-build'; -export { Env } from '@app-data'; +export { modeResolutionChain, styles } from './testing-constants'; +export { getHostRef, registerHost, registerInstance } from './testing-host-ref'; export { consoleDevError, consoleDevInfo, consoleDevWarn, consoleError, setErrorHandler } from './testing-log'; export { Context, isMemberInElement, plt, - supportsShadow, - setPlatformHelpers, registerComponents, registerContext, registerModule, resetPlatform, + setPlatformHelpers, + setSupportsShadowDom, startAutoApplyChanges, stopAutoApplyChanges, supportsConstructableStylesheets, supportsListenerOptions, - setSupportsShadowDom, + supportsShadow, } from './testing-platform'; -export { doc, win } from './testing-window'; export { flushAll, flushLoadModule, flushQueue, loadModule, nextTick, readTask, writeTask } from './testing-task-queue'; -export { getHostRef, registerHost, registerInstance } from './testing-host-ref'; -export { styles, modeResolutionChain } from './testing-constants'; +export { doc, win } from './testing-window'; +export { Env } from '@app-data'; export * from '@runtime'; diff --git a/src/testing/platform/testing-constants.ts b/src/testing/platform/testing-constants.ts index 5db72f82235..f6ef6ca3b8c 100644 --- a/src/testing/platform/testing-constants.ts +++ b/src/testing/platform/testing-constants.ts @@ -1,4 +1,5 @@ import type * as d from '@stencil/core/internal'; + import { QueuedLoadModule } from './testing-task-queue'; export const styles: d.StyleMap = new Map(); diff --git a/src/testing/platform/testing-host-ref.ts b/src/testing/platform/testing-host-ref.ts index d0db33b644b..4ba90a84eb9 100644 --- a/src/testing/platform/testing-host-ref.ts +++ b/src/testing/platform/testing-host-ref.ts @@ -1,5 +1,6 @@ -import type * as d from '@stencil/core/internal'; import { addHostEventListeners } from '@runtime'; +import type * as d from '@stencil/core/internal'; + import { hostRefs } from './testing-constants'; export const getHostRef = (elm: d.RuntimeRef | undefined) => { diff --git a/src/testing/platform/testing-platform.ts b/src/testing/platform/testing-platform.ts index f70430f71ed..a145d4c7272 100644 --- a/src/testing/platform/testing-platform.ts +++ b/src/testing/platform/testing-platform.ts @@ -1,4 +1,5 @@ import type * as d from '@stencil/core/internal'; + import { cstrs, hostRefs, moduleLoaded, styles } from './testing-constants'; import { flushAll, resetTaskQueue } from './testing-task-queue'; import { win } from './testing-window'; diff --git a/src/testing/platform/testing-task-queue.ts b/src/testing/platform/testing-task-queue.ts index a9daf39d8ba..213e943767c 100644 --- a/src/testing/platform/testing-task-queue.ts +++ b/src/testing/platform/testing-task-queue.ts @@ -1,4 +1,5 @@ import type * as d from '@stencil/core/internal'; + import { caughtErrors, moduleLoaded, diff --git a/src/testing/puppeteer/puppeteer-element.ts b/src/testing/puppeteer/puppeteer-element.ts index 1c9db5f9742..0c90093f393 100644 --- a/src/testing/puppeteer/puppeteer-element.ts +++ b/src/testing/puppeteer/puppeteer-element.ts @@ -1,8 +1,9 @@ import type { EventInitDict, HostElement, SerializedEvent } from '@stencil/core/internal'; -import type * as pd from './puppeteer-declarations'; +import { cloneAttributes, MockHTMLElement, parseHtmlToFragment } from '@stencil/core/mock-doc'; import type * as puppeteer from 'puppeteer'; -import { EventSpy, addE2EListener, waitForEvent } from './puppeteer-events'; -import { MockHTMLElement, cloneAttributes, parseHtmlToFragment } from '@stencil/core/mock-doc'; + +import type * as pd from './puppeteer-declarations'; +import { addE2EListener, EventSpy, waitForEvent } from './puppeteer-events'; export class E2EElement extends MockHTMLElement implements pd.E2EElementInternal { private _queuedActions: ElementAction[] = []; diff --git a/src/testing/puppeteer/puppeteer-events.ts b/src/testing/puppeteer/puppeteer-events.ts index ba3a814ecd4..f8652bc788c 100644 --- a/src/testing/puppeteer/puppeteer-events.ts +++ b/src/testing/puppeteer/puppeteer-events.ts @@ -1,7 +1,8 @@ import type { SerializedEvent } from '@stencil/core/internal'; -import type * as pd from './puppeteer-declarations'; import type * as puppeteer from 'puppeteer'; +import type * as pd from './puppeteer-declarations'; + export async function initPageEvents(page: pd.E2EPageInternal) { page._e2eEvents = new Map(); page._e2eEventIds = 0; diff --git a/src/testing/puppeteer/puppeteer-page.ts b/src/testing/puppeteer/puppeteer-page.ts index e1fc1f5a761..c784b779459 100644 --- a/src/testing/puppeteer/puppeteer-page.ts +++ b/src/testing/puppeteer/puppeteer-page.ts @@ -1,4 +1,6 @@ import type { E2EProcessEnv, EmulateConfig, HostElement, JestEnvironmentGlobal } from '@stencil/core/internal'; +import type { ConsoleMessage, ConsoleMessageLocation, JSHandle, Page, WaitForOptions } from 'puppeteer'; + import type { E2EPage, E2EPageInternal, @@ -7,8 +9,6 @@ import type { PageCloseOptions, PageDiagnostic, } from './puppeteer-declarations'; - -import type { ConsoleMessage, ConsoleMessageLocation, JSHandle, Page, WaitForOptions } from 'puppeteer'; import { find, findAll } from './puppeteer-element'; import { initPageEvents, waitForEvent } from './puppeteer-events'; import { initPageScreenshot } from './puppeteer-screenshot'; diff --git a/src/testing/puppeteer/puppeteer-screenshot.ts b/src/testing/puppeteer/puppeteer-screenshot.ts index 7d5c557b5b5..cdf63252143 100644 --- a/src/testing/puppeteer/puppeteer-screenshot.ts +++ b/src/testing/puppeteer/puppeteer-screenshot.ts @@ -6,9 +6,10 @@ import type { ScreenshotDiff, ScreenshotOptions, } from '@stencil/core/internal'; +import type * as puppeteer from 'puppeteer'; + import { compareScreenshot } from '../../screenshot/screenshot-compare'; import type * as pd from './puppeteer-declarations'; -import type * as puppeteer from 'puppeteer'; export function initPageScreenshot(page: pd.E2EPageInternal) { const env = process.env as E2EProcessEnv; diff --git a/src/testing/spec-page.ts b/src/testing/spec-page.ts index 0db369a6f6c..d26e5084dcc 100644 --- a/src/testing/spec-page.ts +++ b/src/testing/spec-page.ts @@ -1,3 +1,13 @@ +import { BUILD } from '@app-data'; +import type { + ComponentCompilerMeta, + ComponentRuntimeMeta, + ComponentTestingConstructor, + HostRef, + LazyBundlesRuntimeData, + NewSpecPageOptions, + SpecPage, +} from '@stencil/core/internal'; import { bootstrapLazy, flushAll, @@ -9,23 +19,14 @@ import { registerModule, renderVdom, resetPlatform, + setSupportsShadowDom, startAutoApplyChanges, styles, win, writeTask, - setSupportsShadowDom, } from '@stencil/core/internal/testing'; -import { BUILD } from '@app-data'; -import type { - ComponentCompilerMeta, - ComponentRuntimeMeta, - ComponentTestingConstructor, - HostRef, - LazyBundlesRuntimeData, - NewSpecPageOptions, - SpecPage, -} from '@stencil/core/internal'; import { formatLazyBundleRuntimeMeta } from '@utils'; + import { getBuildFeatures } from '../compiler/app-core/app-data'; import { resetBuildConditionals } from './reset-build-conditionals'; diff --git a/src/testing/test/testing-utils.spec.ts b/src/testing/test/testing-utils.spec.ts index f239cf9bd0f..7b9aed169b0 100644 --- a/src/testing/test/testing-utils.spec.ts +++ b/src/testing/test/testing-utils.spec.ts @@ -1,7 +1,8 @@ -import { createTestingSystem } from '../testing-sys'; +import path from 'path'; + import { createInMemoryFs, InMemoryFileSystem } from '../../compiler/sys/in-memory-fs'; +import { createTestingSystem } from '../testing-sys'; import { expectFilesDoNotExist, expectFilesExist } from '../testing-utils'; -import path from 'path'; describe('testing-utils', () => { const MOCK_FILE_PATH = path.join('mock', 'file', 'path', 'to', 'file.ts'); diff --git a/src/testing/testing-logger.ts b/src/testing/testing-logger.ts index 485efe3a944..06919362ca8 100644 --- a/src/testing/testing-logger.ts +++ b/src/testing/testing-logger.ts @@ -1,4 +1,4 @@ -import type { Diagnostic, Logger, LogLevel, LoggerTimeSpan } from '@stencil/core/internal'; +import type { Diagnostic, Logger, LoggerTimeSpan, LogLevel } from '@stencil/core/internal'; export class TestingLogger implements Logger { private isEnabled = false; diff --git a/src/testing/testing-sys.ts b/src/testing/testing-sys.ts index 622b4863245..eabc111c279 100644 --- a/src/testing/testing-sys.ts +++ b/src/testing/testing-sys.ts @@ -1,8 +1,9 @@ import type { CompilerSystem } from '@stencil/core/internal'; -import { createSystem } from '../compiler/sys/stencil-sys'; import { createHash } from 'crypto'; import path from 'path'; +import { createSystem } from '../compiler/sys/stencil-sys'; + export interface TestingSystem extends CompilerSystem { diskReads: number; diskWrites: number; diff --git a/src/testing/testing-utils.ts b/src/testing/testing-utils.ts index 7c1f5a092c1..6302e46d9bf 100644 --- a/src/testing/testing-utils.ts +++ b/src/testing/testing-utils.ts @@ -1,6 +1,7 @@ import type * as d from '@stencil/core/internal'; -import { isOutputTargetDistLazy, isOutputTargetWww } from '../compiler/output-targets/output-utils'; import { join, relative } from 'path'; + +import { isOutputTargetDistLazy, isOutputTargetWww } from '../compiler/output-targets/output-utils'; import { InMemoryFileSystem } from '../compiler/sys/in-memory-fs'; export function shuffleArray(array: any[]) { diff --git a/src/testing/testing.ts b/src/testing/testing.ts index 6b29e80f034..e64d3f21718 100644 --- a/src/testing/testing.ts +++ b/src/testing/testing.ts @@ -1,21 +1,22 @@ +import { start } from '@stencil/core/dev-server'; import type { - CompilerBuildResults, Compiler, + CompilerBuildResults, CompilerWatcher, DevServer, E2EProcessEnv, - ValidatedConfig, OutputTargetWww, Testing, TestingRunOptions, + ValidatedConfig, } from '@stencil/core/internal'; -import { getAppScriptUrl, getAppStyleUrl } from './testing-utils'; import { hasError } from '@utils'; +import type * as puppeteer from 'puppeteer'; + import { runJest } from './jest/jest-runner'; import { runJestScreenshot } from './jest/jest-screenshot'; import { startPuppeteerBrowser } from './puppeteer/puppeteer-browser'; -import { start } from '@stencil/core/dev-server'; -import type * as puppeteer from 'puppeteer'; +import { getAppScriptUrl, getAppStyleUrl } from './testing-utils'; export const createTesting = async (config: ValidatedConfig): Promise => { config = setupTestingConfig(config); diff --git a/src/utils/index.ts b/src/utils/index.ts index 634d85529c5..709ad835a1a 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,3 +1,4 @@ +export * from './byte-size'; export * from './constants'; export * from './format-component-runtime-meta'; export * from './helpers'; @@ -8,8 +9,7 @@ export * from './logger/logger-typescript'; export * from './logger/logger-utils'; export * from './message-utils'; export * from './normalize-path'; +export * from './sourcemaps'; export * from './url-paths'; export * from './util'; export * from './validation'; -export * from './byte-size'; -export * from './sourcemaps'; diff --git a/src/utils/logger/logger-rollup.ts b/src/utils/logger/logger-rollup.ts index a5b5b8bbe75..b5fb1785d29 100644 --- a/src/utils/logger/logger-rollup.ts +++ b/src/utils/logger/logger-rollup.ts @@ -1,8 +1,9 @@ +import type { RollupError } from 'rollup'; + import type * as d from '../../declarations'; -import { buildWarn } from '../message-utils'; import { isString, toTitleCase } from '../helpers'; +import { buildWarn } from '../message-utils'; import { splitLineBreaks } from './logger-utils'; -import type { RollupError } from 'rollup'; export const loadRollupDiagnostics = ( config: d.Config, diff --git a/src/utils/logger/logger-typescript.ts b/src/utils/logger/logger-typescript.ts index 5f59e86e17f..1b74df098cb 100644 --- a/src/utils/logger/logger-typescript.ts +++ b/src/utils/logger/logger-typescript.ts @@ -1,8 +1,9 @@ +import type { Diagnostic, DiagnosticMessageChain, Node } from 'typescript'; + import type * as d from '../../declarations'; import { isIterable } from '../helpers'; import { normalizePath } from '../normalize-path'; import { splitLineBreaks } from './logger-utils'; -import type { Diagnostic, DiagnosticMessageChain, Node } from 'typescript'; /** * Augment a `Diagnostic` with information from a `Node` in the AST to provide richer error information diff --git a/src/utils/sourcemaps.ts b/src/utils/sourcemaps.ts index 7ef5b1f50c8..a0abee6c61b 100644 --- a/src/utils/sourcemaps.ts +++ b/src/utils/sourcemaps.ts @@ -1,6 +1,7 @@ -import type * as d from '../declarations'; import type { SourceMap as RollupSourceMap } from 'rollup'; +import type * as d from '../declarations'; + /** * Converts a rollup provided source map to one that Stencil can easily understand * @param rollupSourceMap the sourcemap to transform diff --git a/src/utils/test/normalize-path.spec.ts b/src/utils/test/normalize-path.spec.ts index 4d0bb4e93d9..9ce06d5cc5d 100644 --- a/src/utils/test/normalize-path.spec.ts +++ b/src/utils/test/normalize-path.spec.ts @@ -1,4 +1,4 @@ -import { normalizePath, normalizeFsPathQuery } from '../normalize-path'; +import { normalizeFsPathQuery, normalizePath } from '../normalize-path'; describe('normalizePath', () => { it('node module', () => { diff --git a/src/utils/test/scope-css.spec.ts b/src/utils/test/scope-css.spec.ts index eb0756fa350..9b2aa200974 100644 --- a/src/utils/test/scope-css.spec.ts +++ b/src/utils/test/scope-css.spec.ts @@ -11,8 +11,8 @@ * found in the LICENSE file at https://angular.io/license */ -import { scopeCss } from '../shadow-css'; import { convertScopedToShadow } from '../../runtime/styles'; +import { scopeCss } from '../shadow-css'; describe('ShadowCss', function () { function s(cssText: string, scopeId: string, commentOriginalSelector = false) { diff --git a/src/utils/test/sourcemaps.spec.ts b/src/utils/test/sourcemaps.spec.ts index 2dd84fcf8e6..e7c6ec18379 100644 --- a/src/utils/test/sourcemaps.spec.ts +++ b/src/utils/test/sourcemaps.spec.ts @@ -1,10 +1,11 @@ import { - getSourceMappingUrlLinker, + getInlineSourceMappingUrlLinker, getSourceMappingUrlForEndOfFile, + getSourceMappingUrlLinker, rollupToStencilSourceMap, - getInlineSourceMappingUrlLinker, } from '@utils'; import { SourceMap as RollupSourceMap } from 'rollup'; + import type * as d from '../../declarations'; describe('sourcemaps', () => { diff --git a/src/utils/test/util.spec.ts b/src/utils/test/util.spec.ts index 8fc12ddc6e2..cdc6fe702c9 100644 --- a/src/utils/test/util.spec.ts +++ b/src/utils/test/util.spec.ts @@ -1,6 +1,7 @@ -import type * as d from '../../declarations'; -import { mockConfig, mockBuildCtx } from '@stencil/core/testing'; +import { mockBuildCtx, mockConfig } from '@stencil/core/testing'; import * as util from '@utils'; + +import type * as d from '../../declarations'; import { stubDiagnostic } from '../../dev-server/test/Diagnostic.stub'; describe('util', () => { diff --git a/src/utils/util.ts b/src/utils/util.ts index 61d5f15f21e..c74c0a2179d 100644 --- a/src/utils/util.ts +++ b/src/utils/util.ts @@ -1,6 +1,6 @@ import type * as d from '../declarations'; -import { buildError } from './message-utils'; import { dashToPascalCase, isString, toDashCase } from './helpers'; +import { buildError } from './message-utils'; export const createJsVarName = (fileName: string) => { if (isString(fileName)) { From 4ffa722a9b5f4281153381a52e726c417b09839c Mon Sep 17 00:00:00 2001 From: Ryan Waskiewicz Date: Tue, 13 Sep 2022 12:38:38 -0400 Subject: [PATCH 13/19] chore(readme): update about stencil (#3535) this commit reworks the readme to remove some verbosity and awkward language from the document. it's been updated to align a little bit more with the Ionic Framework's root readme file. some content has been removed with the intent on directing folks to the stencil site (which we're working on revamping). --- readme.md | 60 +++++++++++++++++++++++++------------------------------ 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/readme.md b/readme.md index 24d96cef72d..90c832f96bd 100644 --- a/readme.md +++ b/readme.md @@ -9,7 +9,10 @@

- A compiler for generating Web Components + A compiler for generating Web Components, built by the Ionic team. +

+

+ Stencil allows developers to use technologies like TypeScript and JSX to define components, then generate 100% standards-based Web Components that run on both modern browsers and legacy browsers

@@ -43,46 +46,28 @@ Twitter -[Stencil](https://stenciljs.com/) is a simple compiler for generating Web Components and static site generated progressive web apps (PWA). Stencil was built by the [Ionic](https://ionic.io/) team for its next generation of performant mobile and desktop Web Components. - -Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool. It combines TypeScript, JSX, an asynchronous rendering pipeline to ensure smooth running animations and lazy-loading, to generate 100% standards-based Web Components that run on both [modern browsers and legacy browsers](https://stenciljs.com/docs/browser-support). - -Stencil components are just Web Components, so they work in any major framework or with no framework at all. In many cases, Stencil can be used as a drop in replacement for traditional frontend frameworks given the capabilities now available in the browser, though using it as such is certainly not required. - -Stencil also enables a number of key capabilities on top of Web Components, in particular Server Side Rendering (SSR) without the need to run a headless browser, pre-rendering, and objects-as-properties (instead of just strings). - -## Getting Started - -To create a new project using an interactive cli, run: - -```bash -npm init stencil -``` - -To start developing your new Stencil project, run: - -```bash -npm start -``` - -## Creating components - -Stencil components are TypeScript classes with decorator metadata. The decorators themselves are purely build-time annotations so the compiler can read metadata about each component, and removed entirely for smaller efficient components. +### Getting Started -Create new components by creating files with a `.tsx` extension, such as `my-component.tsx`, and place them in `src/components`. +Start a new project by following our quick [Getting Started guide](https://stenciljs.com/docs/getting-started). +We would love to hear from you! +If you have any feedback or run into issues using Stencil, please file an [issue](https://github.com/ionic-team/stencil/issues/new) on this repository. +### Examples +A Stencil component looks a lot like a class-based React component, with the addition of TypeScript decorators: ```tsx import { Component, Prop, h } from '@stencil/core'; @Component({ - tag: 'my-component', - styleUrl: 'my-component.css' + tag: 'my-component', // the name of the component's custom HTML tag + styleUrl: 'my-component.css', // css styles to apply to the component + shadow: true, // this component uses the ShadowDOM }) export class MyComponent { - + // The component accepts two arguments: @Prop() first: string; @Prop() last: string; + //The following HTML is rendered when our component is used render() { return (

@@ -93,13 +78,22 @@ export class MyComponent { } ``` -To use this component, just use it like any other HTML element: +The component above can be used like any other HTML element: ```html ``` -## Thanks +Since Stencil generates web components, they work in any major framework or with no framework at all. +In many cases, Stencil can be used as a drop in replacement for traditional frontend framework, though using it as such is certainly not required. + +### Contributing + +Thanks for your interest in contributing! +Please take a moment to read up on our guidelines for [contributing](https://github.com/ionic-team/stencil/blob/main/.github/CONTRIBUTING.md). +Please note that this project is released with a [Contributor Code of Conduct](https://github.com/ionic-team/stencil/blob/main/CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. + +### Thanks Stencil's internal testing suite is supported by the [BrowserStack Open-Source Program](https://www.browserstack.com/open-source)
- + From eec45c784743e9223ee1be9463599ccd9c0c7758 Mon Sep 17 00:00:00 2001 From: Alice Date: Wed, 14 Sep 2022 10:17:47 -0400 Subject: [PATCH 14/19] chore(compiler): add JSDocs and some types related to @State decorator (#3604) This updates the docstrings and typings for a few functions which have to do with the `@State` decorator and, in particular, the code which is used to convert class field declarations to getters. This also switches over to use `ts.factory` methods in a few places where deprecation messages were popping up. --- .../convert-decorators.ts | 5 +++ .../decorators-to-static/prop-decorator.ts | 1 + .../decorators-to-static/state-decorator.ts | 33 +++++++++++++++++-- src/compiler/transformers/transform-utils.ts | 16 ++++++--- 4 files changed, 48 insertions(+), 7 deletions(-) diff --git a/src/compiler/transformers/decorators-to-static/convert-decorators.ts b/src/compiler/transformers/decorators-to-static/convert-decorators.ts index 94c9070070f..2a9a04e1125 100644 --- a/src/compiler/transformers/decorators-to-static/convert-decorators.ts +++ b/src/compiler/transformers/decorators-to-static/convert-decorators.ts @@ -50,6 +50,11 @@ export const visitClassDeclaration = ( const decoratedMembers = classMembers.filter( (member) => Array.isArray(member.decorators) && member.decorators.length > 0 ); + + // create an array of all class members which do _not_ have a Stencil + // decorator on them. we do this so we can transform the decorated class + // fields into static getters while preserving other class members (like + // methods and so on). const newMembers = removeStencilDecorators(Array.from(classMembers)); // parser component decorator (Component) diff --git a/src/compiler/transformers/decorators-to-static/prop-decorator.ts b/src/compiler/transformers/decorators-to-static/prop-decorator.ts index bc3cc5efd69..6ee770a11c2 100644 --- a/src/compiler/transformers/decorators-to-static/prop-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/prop-decorator.ts @@ -17,6 +17,7 @@ import { getDeclarationParameters, isDecoratorNamed } from './decorator-utils'; /** * Parse a collection of class members decorated with `@Prop()` + * * @param diagnostics a collection of compiler diagnostics. During the parsing process, any errors detected must be * added to this collection * @param decoratedProps a collection of class elements that may or may not my class members decorated with `@Prop`. diff --git a/src/compiler/transformers/decorators-to-static/state-decorator.ts b/src/compiler/transformers/decorators-to-static/state-decorator.ts index 64ae16442c1..ee06eb22c3c 100644 --- a/src/compiler/transformers/decorators-to-static/state-decorator.ts +++ b/src/compiler/transformers/decorators-to-static/state-decorator.ts @@ -3,6 +3,17 @@ import ts from 'typescript'; import { createStaticGetter } from '../transform-utils'; import { isDecoratorNamed } from './decorator-utils'; +/** + * Convert class fields decorated with `@State` to static getters + * + * This function takes a list of decorated properties pulled off of a class + * declaration AST Node and builds up equivalent static getter AST nodes + * with which they can be replaced. + * + * @param decoratedProps TypeScript AST nodes representing class members + * @param watchable set of names of fields which should be watched for changes + * @param newMembers an out param containing new class members + */ export const stateDecoratorsToStatic = ( decoratedProps: ts.ClassElement[], watchable: Set, @@ -14,11 +25,24 @@ export const stateDecoratorsToStatic = ( .filter((state) => !!state); if (states.length > 0) { - newMembers.push(createStaticGetter('states', ts.createObjectLiteral(states, true))); + newMembers.push(createStaticGetter('states', ts.factory.createObjectLiteralExpression(states, true))); } }; -const stateDecoratorToStatic = (prop: ts.PropertyDeclaration, watchable: Set) => { +/** + * Convert a property declaration decorated with `@State` to a property + * assignment AST node which maps the name of the state property to an empty + * object. + * + * Note that this function will return null if the property declaration is + * decorated with other decorators. + * + * @param prop A TypeScript AST node representing a class property declaration + * @param watchable set of names of fields which should be watched for changes + * @returns a property assignment AST Node which maps the name of the state + * prop to an empty object + */ +const stateDecoratorToStatic = (prop: ts.PropertyDeclaration, watchable: Set): ts.PropertyAssignment | null => { const stateDecorator = prop.decorators.find(isDecoratorNamed('State')); if (stateDecorator == null) { return null; @@ -26,5 +50,8 @@ const stateDecoratorToStatic = (prop: ts.PropertyDeclaration, watchable: Set): return ts.createObjectLiteral(newProperties, true); }; -export const createStaticGetter = (propName: string, returnExpression: ts.Expression) => { - return ts.createGetAccessor( +/** + * Create a TypeScript getter declaration AST node corresponding to a + * supplied prop name and return value + * + * @param propName the name of the prop to access + * @param returnExpression a TypeScript AST node to return from the getter + * @returns an AST node representing a getter + */ +export const createStaticGetter = (propName: string, returnExpression: ts.Expression): ts.GetAccessorDeclaration => { + return ts.factory.createGetAccessorDeclaration( undefined, - [ts.createToken(ts.SyntaxKind.StaticKeyword)], + [ts.factory.createToken(ts.SyntaxKind.StaticKeyword)], propName, undefined, undefined, - ts.createBlock([ts.createReturn(returnExpression)]) + ts.factory.createBlock([ts.factory.createReturnStatement(returnExpression)]) ); }; From 570d2e64edbc87ba811752304cd7fc3880394aa1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 11:09:13 -0400 Subject: [PATCH 15/19] chore(deps-dev): bump glob and @types/glob (#3568) Bumps [glob](https://github.com/isaacs/node-glob) and [@types/glob](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/glob). These dependencies needed to be updated together. Updates `glob` from 7.1.6 to 8.0.3 - [Release notes](https://github.com/isaacs/node-glob/releases) - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](https://github.com/isaacs/node-glob/compare/v7.1.6...v8.0.3) Updates `@types/glob` from 7.1.3 to 8.0.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/glob) --- updated-dependencies: - dependency-name: glob dependency-type: direct:development update-type: version-update:semver-major - dependency-name: "@types/glob" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ryan Waskiewicz --- package-lock.json | 639 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 4 +- 2 files changed, 620 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 97774d8ccf1..9e047f86810 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@types/eslint": "^8.4.2", "@types/exit": "^0.1.31", "@types/fs-extra": "^9.0.8", - "@types/glob": "^7.1.2", + "@types/glob": "^8.0.0", "@types/graceful-fs": "^4.1.5", "@types/inquirer": "^7.3.1", "@types/jest": "^27.0.3", @@ -58,7 +58,7 @@ "exit": "^0.1.2", "fast-deep-equal": "3.1.3", "fs-extra": "^10.1.0", - "glob": "7.1.6", + "glob": "8.0.3", "graceful-fs": "~4.2.6", "hash.js": "^1.1.7", "inquirer": "^7.3.3", @@ -980,6 +980,38 @@ } } }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@jest/source-map": { "version": "27.4.0", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", @@ -1164,6 +1196,26 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, + "node_modules/@rollup/plugin-commonjs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -1173,6 +1225,18 @@ "sourcemap-codec": "^1.4.8" } }, + "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@rollup/plugin-json": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz", @@ -1469,9 +1533,9 @@ } }, "node_modules/@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.0.0.tgz", + "integrity": "sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==", "dev": true, "dependencies": { "@types/minimatch": "*", @@ -3093,6 +3157,26 @@ "y18n": "^4.0.0" } }, + "node_modules/cacache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/cacache/node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -3102,6 +3186,18 @@ "yallist": "^3.0.2" } }, + "node_modules/cacache/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/cacache/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -4074,6 +4170,38 @@ "run-queue": "^1.0.0" } }, + "node_modules/copy-concurrently/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/copy-concurrently/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/copy-concurrently/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -6441,20 +6569,19 @@ } }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6472,6 +6599,27 @@ "node": ">= 6" } }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -7534,6 +7682,26 @@ } } }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jest-config/node_modules/micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -7547,6 +7715,18 @@ "node": ">=8.6" } }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/jest-diff": { "version": "27.4.2", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", @@ -7942,6 +8122,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jest-runtime/node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -7951,6 +8151,18 @@ "node": ">=10.17.0" } }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/jest-runtime/node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -9393,6 +9605,38 @@ "run-queue": "^1.0.3" } }, + "node_modules/move-concurrently/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/move-concurrently/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/move-concurrently/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -10928,6 +11172,38 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -11227,6 +11503,38 @@ "node": ">=4" } }, + "node_modules/shelljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/shelljs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -12139,6 +12447,38 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -13992,6 +14332,31 @@ "string-length": "^4.0.1", "terminal-link": "^2.0.0", "v8-to-istanbul": "^8.1.0" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "@jest/source-map": { @@ -14143,6 +14508,20 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -14151,6 +14530,15 @@ "requires": { "sourcemap-codec": "^1.4.8" } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } } } }, @@ -14405,9 +14793,9 @@ } }, "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.0.0.tgz", + "integrity": "sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==", "dev": true, "requires": { "@types/minimatch": "*", @@ -15713,6 +16101,20 @@ "y18n": "^4.0.0" }, "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -15722,6 +16124,15 @@ "yallist": "^3.0.2" } }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -16515,6 +16926,29 @@ "run-queue": "^1.0.0" }, "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -18390,17 +18824,36 @@ } }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "glob-parent": { @@ -19202,6 +19655,20 @@ "slash": "^3.0.0" }, "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -19211,6 +19678,15 @@ "braces": "^3.0.1", "picomatch": "^2.2.3" } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } } } }, @@ -19532,12 +20008,35 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -20704,6 +21203,29 @@ "run-queue": "^1.0.3" }, "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -21919,6 +22441,31 @@ "dev": true, "requires": { "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "ripemd160": { @@ -22144,6 +22691,31 @@ "glob": "^7.0.0", "interpret": "^1.0.0", "rechoir": "^0.6.2" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "signal-exit": { @@ -22898,6 +23470,31 @@ "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "text-extensions": { diff --git a/package.json b/package.json index 9665a86ae0a..b52cd50de7a 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@types/eslint": "^8.4.2", "@types/exit": "^0.1.31", "@types/fs-extra": "^9.0.8", - "@types/glob": "^7.1.2", + "@types/glob": "^8.0.0", "@types/graceful-fs": "^4.1.5", "@types/inquirer": "^7.3.1", "@types/jest": "^27.0.3", @@ -104,7 +104,7 @@ "exit": "^0.1.2", "fast-deep-equal": "3.1.3", "fs-extra": "^10.1.0", - "glob": "7.1.6", + "glob": "8.0.3", "graceful-fs": "~4.2.6", "hash.js": "^1.1.7", "inquirer": "^7.3.3", From aed400b1815c7328afd325bdfb5e5f63d1e07e04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 14:59:29 -0400 Subject: [PATCH 16/19] chore(deps-dev): bump pixelmatch and @types/pixelmatch (#3601) * chore(deps-dev): bump pixelmatch and @types/pixelmatch Bumps [pixelmatch](https://github.com/mapbox/pixelmatch) and [@types/pixelmatch](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pixelmatch). These dependencies needed to be updated together. Updates `pixelmatch` from 4.0.2 to 5.3.0 - [Release notes](https://github.com/mapbox/pixelmatch/releases) - [Commits](https://github.com/mapbox/pixelmatch/compare/v4.0.2...v5.3.0) Updates `@types/pixelmatch` from 4.0.0 to 5.2.4 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pixelmatch) --- updated-dependencies: - dependency-name: pixelmatch dependency-type: direct:development update-type: version-update:semver-major - dependency-name: "@types/pixelmatch" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * rm pixelmatch from node require list this commit removes 'pixelmatch' from the `lazyDependencies` the `NodeLazyRequire` entity created when run using node. it is removed because there does not appear to be a single usage of `NodeLazyRequire.ensure()` that is called where `pixelmatch` is required. Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ryan Waskiewicz --- package-lock.json | 46 ++++++++++++++++++++-------------------- package.json | 4 ++-- src/sys/node/node-sys.ts | 1 - 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9e047f86810..ce0db1b277a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "@types/node": "^14.14.35", "@types/node-fetch": "^2.5.8", "@types/parse5": "^6.0.0", - "@types/pixelmatch": "^4.0.0", + "@types/pixelmatch": "^5.2.4", "@types/pngjs": "^3.4.2", "@types/prompts": "^2.0.9", "@types/semver": "^7.3.4", @@ -75,7 +75,7 @@ "open-in-editor": "2.2.0", "parse5": "6.0.1", "path-browserify": "^1.0.1", - "pixelmatch": "4.0.2", + "pixelmatch": "5.3.0", "postcss": "^8.2.8", "prettier": "2.7.1", "prompts": "2.4.0", @@ -1658,9 +1658,9 @@ "dev": true }, "node_modules/@types/pixelmatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/pixelmatch/-/pixelmatch-4.0.0.tgz", - "integrity": "sha512-pOF+6b0UbePCuPv1BS2k1IEeTk8ae8mhNiHms05s5WM+xV47g8Fb7KQcMn1fkJ9ccbs2IDpgPv+fGmHHvHHnrA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@types/pixelmatch/-/pixelmatch-5.2.4.tgz", + "integrity": "sha512-HDaSHIAv9kwpMN7zlmwfTv6gax0PiporJOipcrGsVNF3Ba+kryOZc0Pio5pn6NhisgWr7TaajlPEKTbTAypIBQ==", "dev": true, "dependencies": { "@types/node": "*" @@ -10431,12 +10431,12 @@ } }, "node_modules/pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.3.0.tgz", + "integrity": "sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==", "dev": true, "dependencies": { - "pngjs": "^3.0.0" + "pngjs": "^6.0.0" }, "bin": { "pixelmatch": "bin/pixelmatch" @@ -10455,12 +10455,12 @@ } }, "node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", "dev": true, "engines": { - "node": ">=4.0.0" + "node": ">=12.13.0" } }, "node_modules/posix-character-classes": { @@ -14918,9 +14918,9 @@ "dev": true }, "@types/pixelmatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/pixelmatch/-/pixelmatch-4.0.0.tgz", - "integrity": "sha512-pOF+6b0UbePCuPv1BS2k1IEeTk8ae8mhNiHms05s5WM+xV47g8Fb7KQcMn1fkJ9ccbs2IDpgPv+fGmHHvHHnrA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@types/pixelmatch/-/pixelmatch-5.2.4.tgz", + "integrity": "sha512-HDaSHIAv9kwpMN7zlmwfTv6gax0PiporJOipcrGsVNF3Ba+kryOZc0Pio5pn6NhisgWr7TaajlPEKTbTAypIBQ==", "dev": true, "requires": { "@types/node": "*" @@ -21875,12 +21875,12 @@ "dev": true }, "pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.3.0.tgz", + "integrity": "sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==", "dev": true, "requires": { - "pngjs": "^3.0.0" + "pngjs": "^6.0.0" } }, "pkg-dir": { @@ -21893,9 +21893,9 @@ } }, "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", "dev": true }, "posix-character-classes": { diff --git a/package.json b/package.json index b52cd50de7a..ebce6061074 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "@types/node": "^14.14.35", "@types/node-fetch": "^2.5.8", "@types/parse5": "^6.0.0", - "@types/pixelmatch": "^4.0.0", + "@types/pixelmatch": "^5.2.4", "@types/pngjs": "^3.4.2", "@types/prompts": "^2.0.9", "@types/semver": "^7.3.4", @@ -121,7 +121,7 @@ "open-in-editor": "2.2.0", "parse5": "6.0.1", "path-browserify": "^1.0.1", - "pixelmatch": "4.0.2", + "pixelmatch": "5.3.0", "postcss": "^8.2.8", "prettier": "2.7.1", "prompts": "2.4.0", diff --git a/src/sys/node/node-sys.ts b/src/sys/node/node-sys.ts index e60a4fd43ad..8ea107c1a8f 100644 --- a/src/sys/node/node-sys.ts +++ b/src/sys/node/node-sys.ts @@ -592,7 +592,6 @@ export function createNodeSys(c: { process?: any } = {}) { '@types/jest': { minVersion: '24.9.1', recommendedVersion: '27.0.3', maxVersion: '27.0.0' }, jest: { minVersion: '24.9.1', recommendedVersion: '27.0.3', maxVersion: '27.0.0' }, 'jest-cli': { minVersion: '24.9.0', recommendedVersion: '27.4.5', maxVersion: '27.0.0' }, - pixelmatch: { minVersion: '4.0.2', recommendedVersion: '4.0.2' }, puppeteer: { minVersion: '1.19.0', recommendedVersion: '10.0.0' }, 'puppeteer-core': { minVersion: '1.19.0', recommendedVersion: '5.2.1' }, 'workbox-build': { minVersion: '4.3.1', recommendedVersion: '4.3.1' }, From a8eebba32dd0f50db010a15165ba52060ac01b52 Mon Sep 17 00:00:00 2001 From: Alice Date: Mon, 19 Sep 2022 09:09:24 -0400 Subject: [PATCH 17/19] docs(runtime): add a basic JSDoc explanation to `proxyComponent` (#3613) this commit documents the `proxyComponent` function. this work was prompted by the work to get newer TSConfig targets working with stencil --- src/runtime/proxy-component.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/runtime/proxy-component.ts b/src/runtime/proxy-component.ts index 411591d5c9f..064804e4e0b 100644 --- a/src/runtime/proxy-component.ts +++ b/src/runtime/proxy-component.ts @@ -6,7 +6,21 @@ import { HOST_FLAGS, MEMBER_FLAGS } from '../utils/constants'; import { PROXY_FLAGS } from './runtime-constants'; import { getValue, setValue } from './set-value'; -export const proxyComponent = (Cstr: d.ComponentConstructor, cmpMeta: d.ComponentRuntimeMeta, flags: number) => { +/** + * Attach a series of runtime constructs to a compiled Stencil component + * constructor, including getters and setters for the `@Prop` and `@State` + * decorators, callbacks for when attributes change, and so on. + * + * @param Cstr the constructor for a component that we need to process + * @param cmpMeta metadata collected previously about the component + * @param flags a number used to store a series of bit flags + * @returns a reference to the same constructor passed in (but now mutated) + */ +export const proxyComponent = ( + Cstr: d.ComponentConstructor, + cmpMeta: d.ComponentRuntimeMeta, + flags: number +): d.ComponentConstructor => { if (BUILD.member && cmpMeta.$members$) { if (BUILD.watchCallback && Cstr.watchers) { cmpMeta.$watchers$ = Cstr.watchers; From 9366bdc5f2d129a478ce7bb3e95cabb7ebc0a92c Mon Sep 17 00:00:00 2001 From: Alice Date: Mon, 19 Sep 2022 09:42:15 -0400 Subject: [PATCH 18/19] chore(compiler): remove unused export from convert-decorators.ts (#3609) This removes one unused export from convert-decorators.ts. As far as I can tell this function isn't being used anywhere. --- .../transformers/decorators-to-static/convert-decorators.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/transformers/decorators-to-static/convert-decorators.ts b/src/compiler/transformers/decorators-to-static/convert-decorators.ts index 2a9a04e1125..374eb88662d 100644 --- a/src/compiler/transformers/decorators-to-static/convert-decorators.ts +++ b/src/compiler/transformers/decorators-to-static/convert-decorators.ts @@ -31,7 +31,7 @@ export const convertDecoratorsToStatic = ( }; }; -export const visitClassDeclaration = ( +const visitClassDeclaration = ( config: d.Config, diagnostics: d.Diagnostic[], typeChecker: ts.TypeChecker, From c213b23dab313f92ae761022f7aad43edfb203ca Mon Sep 17 00:00:00 2001 From: Ryan Waskiewicz Date: Mon, 19 Sep 2022 10:03:41 -0400 Subject: [PATCH 19/19] fix(git): cleanup after merge conflicts with main --- src/cli/public.ts | 1 + src/compiler/config/outputs/index.ts | 5 +---- src/compiler/config/outputs/validate-custom-element.ts | 1 + .../output-targets/dist-custom-elements-bundle/index.ts | 1 + src/compiler/output-targets/index.ts | 1 - .../test/output-targets-dist-custom-elements.spec.ts | 1 + 6 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cli/public.ts b/src/cli/public.ts index e6c30afd985..682f2410969 100644 --- a/src/cli/public.ts +++ b/src/cli/public.ts @@ -1,4 +1,5 @@ import type { CliInitOptions, Config, Logger, TaskCommand } from '@stencil/core/internal'; + import type { ConfigFlags } from './config-flags'; /** diff --git a/src/compiler/config/outputs/index.ts b/src/compiler/config/outputs/index.ts index f776f33bdcb..f6fe1e365d7 100644 --- a/src/compiler/config/outputs/index.ts +++ b/src/compiler/config/outputs/index.ts @@ -1,10 +1,7 @@ import { buildError } from '@utils'; import type * as d from '../../../declarations'; -import { - isValidConfigOutputTarget, - VALID_CONFIG_OUTPUT_TARGETS, -} from '../../output-targets/output-utils'; +import { isValidConfigOutputTarget, VALID_CONFIG_OUTPUT_TARGETS } from '../../output-targets/output-utils'; import { validateCollection } from './validate-collection'; import { validateCustomElement } from './validate-custom-element'; import { validateCustomElementBundle } from './validate-custom-element-bundle'; diff --git a/src/compiler/config/outputs/validate-custom-element.ts b/src/compiler/config/outputs/validate-custom-element.ts index b00c932dc8d..3c83beefba7 100644 --- a/src/compiler/config/outputs/validate-custom-element.ts +++ b/src/compiler/config/outputs/validate-custom-element.ts @@ -8,6 +8,7 @@ import type { OutputTargetDistTypes, ValidatedConfig, } from '../../../declarations'; +import { CustomElementsExportBehaviorOptions } from '../../../declarations'; import { COPY, DIST_TYPES, isOutputTargetDistCustomElements } from '../../output-targets/output-utils'; import { getAbsolutePath } from '../config-utils'; import { validateCopy } from '../validate-copy'; diff --git a/src/compiler/output-targets/dist-custom-elements-bundle/index.ts b/src/compiler/output-targets/dist-custom-elements-bundle/index.ts index d6346697853..fc2afb9ca02 100644 --- a/src/compiler/output-targets/dist-custom-elements-bundle/index.ts +++ b/src/compiler/output-targets/dist-custom-elements-bundle/index.ts @@ -1,3 +1,4 @@ +// TODO(STENCIL-561): fully delete dist-custom-elements-bundle code import { catchError, dashToPascalCase, diff --git a/src/compiler/output-targets/index.ts b/src/compiler/output-targets/index.ts index f9303a826dd..4c0a34c1f74 100644 --- a/src/compiler/output-targets/index.ts +++ b/src/compiler/output-targets/index.ts @@ -7,7 +7,6 @@ import { outputCustomElements } from './dist-custom-elements'; import { outputCustomElementsBundle } from './dist-custom-elements-bundle'; import { outputHydrateScript } from './dist-hydrate-script'; import { outputLazy } from './dist-lazy/lazy-output'; -import { outputAngular } from './output-angular'; import { outputDocs } from './output-docs'; import { outputLazyLoader } from './output-lazy-loader'; import { outputTypes } from './output-types'; diff --git a/src/compiler/output-targets/test/output-targets-dist-custom-elements.spec.ts b/src/compiler/output-targets/test/output-targets-dist-custom-elements.spec.ts index 740086b1975..991057a05e3 100644 --- a/src/compiler/output-targets/test/output-targets-dist-custom-elements.spec.ts +++ b/src/compiler/output-targets/test/output-targets-dist-custom-elements.spec.ts @@ -19,6 +19,7 @@ import { outputCustomElements, } from '../dist-custom-elements'; import * as outputCustomElementsMod from '../dist-custom-elements'; +// TODO(STENCIL-561): fully delete dist-custom-elements-bundle code import { DIST_CUSTOM_ELEMENTS, DIST_CUSTOM_ELEMENTS_BUNDLE } from '../output-utils'; const setup = () => {