Skip to content

Commit

Permalink
fix: Enforce the usage of type imports when possible (#6502)
Browse files Browse the repository at this point in the history
  • Loading branch information
Princesseuh authored Mar 10, 2023
1 parent d37dc7c commit c44aa15
Show file tree
Hide file tree
Showing 65 changed files with 90 additions and 85 deletions.
4 changes: 2 additions & 2 deletions packages/astro-rss/src/util.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { z } from 'astro/zod';
import { RSSOptions } from './index';
import type { z } from 'astro/zod';
import type { RSSOptions } from './index';

/** Normalize URL to its canonical form */
export function createCanonicalURL(
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/@types/astro.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import type { AstroTimer } from '../core/config/timer';
import type { AstroCookies } from '../core/cookies';
import type { LogOptions } from '../core/logger/core';
import type { AstroComponentFactory, AstroComponentInstance } from '../runtime/server';
import { SUPPORTED_MARKDOWN_FILE_EXTENSIONS } from './../core/constants.js';
import type { SUPPORTED_MARKDOWN_FILE_EXTENSIONS } from './../core/constants.js';
export type {
MarkdownHeading,
MarkdownMetadata,
Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/assets/internal.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import fs from 'node:fs';
import path from 'node:path';
import { pathToFileURL } from 'node:url';
import { AstroSettings } from '../@types/astro.js';
import { StaticBuildOptions } from '../core/build/types.js';
import type { AstroSettings } from '../@types/astro.js';
import type { StaticBuildOptions } from '../core/build/types.js';
import { AstroError, AstroErrorData } from '../core/errors/index.js';
import { rootRelativePath } from '../core/util.js';
import { ImageService, isLocalService, LocalImageService } from './services/service.js';
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/assets/services/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { AstroError, AstroErrorData } from '../../core/errors/index.js';
import { isRemotePath } from '../../core/path.js';
import { VALID_INPUT_FORMATS } from '../consts.js';
import { isESMImportedImage } from '../internal.js';
import { ImageTransform, OutputFormat } from '../types.js';
import type { ImageTransform, OutputFormat } from '../types.js';

export type ImageService = LocalImageService | ExternalImageService;

Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/assets/types.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/ban-types */
import { VALID_INPUT_FORMATS, VALID_OUTPUT_FORMATS } from './consts.js';
import { ImageService } from './services/service.js';
import type { VALID_INPUT_FORMATS, VALID_OUTPUT_FORMATS } from './consts.js';
import type { ImageService } from './services/service.js';

export type ImageQualityPreset = 'low' | 'mid' | 'high' | 'max' | (string & {});
export type ImageQuality = ImageQualityPreset | number;
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/assets/utils/metadata.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import fs from 'node:fs/promises';
import { fileURLToPath } from 'node:url';
import { ImageMetadata, InputFormat } from '../types.js';
import type { ImageMetadata, InputFormat } from '../types.js';

export interface Metadata extends ImageMetadata {
orientation?: number;
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/assets/utils/queryParams.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ImageMetadata, InputFormat } from '../types.js';
import type { ImageMetadata, InputFormat } from '../types.js';

export function getOrigQueryParams(
params: URLSearchParams
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/assets/utils/transformToPath.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { basename, extname } from 'path';
import { removeQueryString } from '../../core/path.js';
import { shorthash } from '../../runtime/server/shorthash.js';
import { isESMImportedImage } from '../internal.js';
import { ImageTransform } from '../types.js';
import type { ImageTransform } from '../types.js';

export function propsToFilename(transform: ImageTransform) {
if (!isESMImportedImage(transform.src)) {
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/assets/vite-plugin-assets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Readable } from 'node:stream';
import { fileURLToPath } from 'node:url';
import type * as vite from 'vite';
import { normalizePath } from 'vite';
import { AstroPluginOptions, ImageTransform } from '../@types/astro';
import type { AstroPluginOptions, ImageTransform } from '../@types/astro';
import { error } from '../core/logger/core.js';
import { joinPaths, prependForwardSlash } from '../core/path.js';
import { VIRTUAL_MODULE_ID, VIRTUAL_SERVICE_ID } from './consts.js';
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/content/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
import type { EmitFile } from 'rollup';
import { ErrorPayload as ViteErrorPayload, normalizePath, ViteDevServer } from 'vite';
import { z } from 'zod';
import { AstroConfig, AstroSettings } from '../@types/astro.js';
import type { AstroConfig, AstroSettings } from '../@types/astro.js';
import { emitESMImage } from '../assets/internal.js';
import { AstroError, AstroErrorData } from '../core/errors/index.js';
import { CONTENT_TYPES_FILE } from './consts.js';
Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/content/vite-plugin-content-assets.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import npath from 'node:path';
import { pathToFileURL } from 'url';
import type { Plugin } from 'vite';
import { AstroSettings } from '../@types/astro.js';
import type { AstroSettings } from '../@types/astro.js';
import { moduleIsTopLevelPage, walkParentInfos } from '../core/build/graph.js';
import { BuildInternals, getPageDataByViteID } from '../core/build/internal.js';
import { AstroBuildPlugin } from '../core/build/plugin.js';
import type { AstroBuildPlugin } from '../core/build/plugin.js';
import type { StaticBuildOptions } from '../core/build/types';
import type { ModuleLoader } from '../core/module-loader/loader.js';
import { createViteLoader } from '../core/module-loader/vite.js';
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/content/vite-plugin-content-imports.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type fsMod from 'node:fs';
import { extname } from 'node:path';
import { pathToFileURL } from 'url';
import type { Plugin } from 'vite';
import { AstroSettings, ContentEntryType } from '../@types/astro.js';
import type { AstroSettings, ContentEntryType } from '../@types/astro.js';
import { AstroErrorData } from '../core/errors/errors-data.js';
import { AstroError } from '../core/errors/errors.js';
import { escapeViteEnvReferences, getFileInfo } from '../vite-plugin-utils/index.js';
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/app/node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type { RouteData } from '../../@types/astro';
import type { SerializedSSRManifest, SSRManifest } from './types';

import * as fs from 'fs';
import { IncomingMessage } from 'http';
import type { IncomingMessage } from 'http';
import { TLSSocket } from 'tls';
import { deserializeManifest } from './common.js';
import { App, MatchOptions } from './index.js';
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/build/add-rollup-input.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { InputOptions } from 'rollup';
import type { InputOptions } from 'rollup';

function fromEntries<V>(entries: [string, V][]) {
const obj: Record<string, V> = {};
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/build/css-asset-name.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type { GetModuleInfo } from 'rollup';

import crypto from 'crypto';
import npath from 'path';
import { AstroSettings } from '../../@types/astro';
import type { AstroSettings } from '../../@types/astro';
import { viteID } from '../util.js';
import { getTopLevelPages } from './graph.js';

Expand Down
6 changes: 3 additions & 3 deletions packages/astro/src/core/build/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import type { LogOptions } from '../logger/core';
import fs from 'fs';
import * as colors from 'kleur/colors';
import { performance } from 'perf_hooks';
import * as vite from 'vite';
import yargs from 'yargs-parser';
import type * as vite from 'vite';
import type yargs from 'yargs-parser';
import {
runHookBuildDone,
runHookBuildStart,
Expand All @@ -21,7 +21,7 @@ import { RouteCache } from '../render/route-cache.js';
import { createRouteManifest } from '../routing/index.js';
import { collectPagesData } from './page-data.js';
import { staticBuild, viteBuild } from './static-build.js';
import { StaticBuildOptions } from './types.js';
import type { StaticBuildOptions } from './types.js';
import { getTimeStat } from './util.js';

export interface BuildOptions {
Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/core/build/internal.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { OutputChunk, RenderedChunk } from 'rollup';
import type { PageBuildData, ViteID } from './types';

import { SSRResult } from '../../@types/astro';
import { PageOptions } from '../../vite-plugin-astro/types';
import type { SSRResult } from '../../@types/astro';
import type { PageOptions } from '../../vite-plugin-astro/types';
import { prependForwardSlash, removeFileExtension } from '../path.js';
import { viteID } from '../util.js';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Alias, Plugin as VitePlugin } from 'vite';
import type { BuildInternals } from '../internal.js';
import { AstroBuildPlugin } from '../plugin.js';
import type { AstroBuildPlugin } from '../plugin.js';

/**
* `@rollup/plugin-alias` doesn't resolve aliases in Rollup input by default. This plugin fixes it
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import type { AstroSettings } from '../../../@types/astro';
import { viteID } from '../../util.js';
import type { BuildInternals } from '../internal.js';
import { getPageDataByViteID } from '../internal.js';
import { AstroBuildPlugin } from '../plugin';
import { StaticBuildOptions } from '../types';
import type { AstroBuildPlugin } from '../plugin';
import type { StaticBuildOptions } from '../types';

function virtualHoistedEntry(id: string) {
return id.startsWith('/astro/hoisted.js?q=');
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/build/plugins/plugin-ssr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { serializeRouteData } from '../../routing/index.js';
import { addRollupInput } from '../add-rollup-input.js';
import { getOutFile, getOutFolder } from '../common.js';
import { eachPrerenderedPageData, eachServerPageData, sortedCSS } from '../internal.js';
import { AstroBuildPlugin } from '../plugin';
import type { AstroBuildPlugin } from '../plugin';

export const virtualModuleId = '@astrojs-ssr-virtual-entry';
const resolvedVirtualModuleId = '\0' + virtualModuleId;
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/config/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import path from 'path';
import { fileURLToPath, pathToFileURL } from 'url';
import { mergeConfig as mergeViteConfig } from 'vite';
import { AstroError, AstroErrorData } from '../errors/index.js';
import { LogOptions } from '../logger/core.js';
import type { LogOptions } from '../logger/core.js';
import { arraify, isObject, isURL } from '../util.js';
import { createRelativeSchema } from './schema.js';
import { loadConfigWithVite } from './vite-load.js';
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/config/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { markdownConfigDefaults } from '@astrojs/markdown-remark';
import type { ILanguageRegistration, IThemeRegistration, Theme } from 'shiki';
import type { AstroUserConfig, ViteUserConfig } from '../../@types/astro';

import { OutgoingHttpHeaders } from 'http';
import type { OutgoingHttpHeaders } from 'http';
import { BUNDLED_THEMES } from 'shiki';
import { z } from 'zod';
import { appendForwardSlash, prependForwardSlash, trimSlashes } from '../path.js';
Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/core/dev/container.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as http from 'http';
import type * as http from 'http';
import type { AddressInfo } from 'net';
import type { AstroSettings, AstroUserConfig } from '../../@types/astro';

Expand All @@ -13,7 +13,7 @@ import {
} from '../../integrations/index.js';
import { createDefaultDevSettings, resolveRoot } from '../config/index.js';
import { createVite } from '../create-vite.js';
import { LogOptions } from '../logger/core.js';
import type { LogOptions } from '../logger/core.js';
import { nodeLogDestination } from '../logger/node.js';
import { appendForwardSlash } from '../path.js';
import { apply as applyPolyfill } from '../polyfill.js';
Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/core/dev/dev.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import type http from 'http';
import { cyan } from 'kleur/colors';
import type { AddressInfo } from 'net';
import { performance } from 'perf_hooks';
import * as vite from 'vite';
import yargs from 'yargs-parser';
import type * as vite from 'vite';
import type yargs from 'yargs-parser';
import type { AstroSettings } from '../../@types/astro';
import { attachContentServerListeners } from '../../content/index.js';
import { info, LogOptions, warn } from '../logger/core.js';
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/errors/errors.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { DiagnosticCode } from '@astrojs/compiler/shared/diagnostics.js';
import { AstroErrorCodes } from './errors-data.js';
import type { AstroErrorCodes } from './errors-data.js';
import { codeFrame } from './printer.js';
import { getErrorDataByCode } from './utils.js';

Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/errors/utils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { DiagnosticCode } from '@astrojs/compiler/shared/diagnostics.js';
import type { DiagnosticCode } from '@astrojs/compiler/shared/diagnostics.js';
import type { SSRError } from '../../@types/astro.js';
import { AstroErrorCodes, AstroErrorData, ErrorData } from './errors-data.js';

Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/core/messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ import {
underline,
yellow,
} from 'kleur/colors';
import { ResolvedServerUrls } from 'vite';
import { ZodError } from 'zod';
import type { ResolvedServerUrls } from 'vite';
import type { ZodError } from 'zod';
import { renderErrorMarkdown } from './errors/dev/utils.js';
import { AstroError, CompilerError, ErrorWithMetadata } from './errors/index.js';
import { emoji, padMultilineString } from './util.js';
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/preview/static-preview-server.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import http from 'http';
import type http from 'http';
import { performance } from 'perf_hooks';
import enableDestroy from 'server-destroy';
import { fileURLToPath } from 'url';
Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/core/preview/vite-plugin-astro-preview.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import fs from 'fs';
import { fileURLToPath } from 'url';
import { Plugin } from 'vite';
import { AstroSettings } from '../../@types/astro.js';
import type { Plugin } from 'vite';
import type { AstroSettings } from '../../@types/astro.js';
import { notFoundTemplate, subpathNotUsedTemplate } from '../../template/4xx.js';
import { stripBase } from './util.js';

Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/render/dev/css.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { ModuleLoader } from '../../module-loader/index';

import { RuntimeMode } from '../../../@types/astro.js';
import type { RuntimeMode } from '../../../@types/astro.js';
import { viteID } from '../../util.js';
import { isBuildableCSSRequest } from './util.js';
import { crawlGraph } from './vite.js';
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/render/paginate.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {
import type {
GetStaticPathsResult,
Page,
PaginateFunction,
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/events/error.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ZodError } from 'zod';
import type { ZodError } from 'zod';
import { AstroError, AstroErrorData, ErrorWithMetadata } from '../core/errors/index.js';
import { getErrorDataByCode } from '../core/errors/utils.js';

Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/integrations/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { AddressInfo } from 'net';
import fs from 'node:fs';
import { fileURLToPath } from 'node:url';
import type { InlineConfig, ViteDevServer } from 'vite';
import {
import type {
AstroConfig,
AstroRenderer,
AstroSettings,
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/runtime/server/jsx.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* eslint-disable no-console */
import { SSRResult } from '../../@types/astro.js';
import type { SSRResult } from '../../@types/astro.js';
import { AstroJSX, AstroVNode, isVNode } from '../../jsx-runtime/index.js';
import {
escapeHTML,
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/runtime/server/render/tags.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SSRElement, SSRResult } from '../../../@types/astro';
import type { SSRElement, SSRResult } from '../../../@types/astro';
import { renderElement } from './util.js';

const stylesheetRel = 'stylesheet';
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/vite-plugin-astro-server/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { AstroSettings, ManifestData } from '../@types/astro';

import type fs from 'fs';
import { patchOverlay } from '../core/errors/overlay.js';
import { LogOptions } from '../core/logger/core.js';
import type { LogOptions } from '../core/logger/core.js';
import { createViteLoader } from '../core/module-loader/index.js';
import { createDevelopmentEnvironment } from '../core/render/dev/index.js';
import { createRouteManifest } from '../core/routing/index.js';
Expand Down
6 changes: 5 additions & 1 deletion packages/astro/src/vite-plugin-astro-server/route.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import type http from 'http';
import mime from 'mime';
import type { AstroSettings, ComponentInstance, ManifestData, RouteData } from '../@types/astro';
import { ComponentPreload, DevelopmentEnvironment, SSROptions } from '../core/render/dev/index';
import type {
ComponentPreload,
DevelopmentEnvironment,
SSROptions,
} from '../core/render/dev/index';

import { attachToResponse } from '../core/cookies/index.js';
import { call as callEndpoint } from '../core/endpoint/dev/index.js';
Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/vite-plugin-astro/compile.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ESBuildTransformResult, transformWithEsbuild } from 'vite';
import { AstroConfig } from '../@types/astro';
import type { AstroConfig } from '../@types/astro';
import { cachedCompilation, CompileProps, CompileResult } from '../core/compile/index.js';
import { LogOptions } from '../core/logger/core.js';
import type { LogOptions } from '../core/logger/core.js';
import { getFileInfo } from '../vite-plugin-utils/index.js';

interface CachedFullCompilation {
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/vite-plugin-head-propagation/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import type { BuildInternals } from '../core/build/internal.js';
import type { AstroBuildPlugin } from '../core/build/plugin.js';
import type { StaticBuildOptions } from '../core/build/types';

import * as vite from 'vite';
import type * as vite from 'vite';
import { walkParentInfos } from '../core/build/graph.js';
import { getAstroMetadata } from '../vite-plugin-astro/index.js';

Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/vite-plugin-html/transform/slots.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { Root, RootContent } from 'hast';
import type { Plugin } from 'unified';

import MagicString from 'magic-string';
import type MagicString from 'magic-string';
import { visit } from 'unist-util-visit';
import { escape } from './utils.js';

Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/vite-plugin-html/transform/utils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { Element } from 'hast';
import MagicString from 'magic-string';
import type MagicString from 'magic-string';

const splitAttrsTokenizer = /([\$\{\}\@a-z0-9_\:\-]*)\s*?=\s*?(['"]?)(.*?)\2\s+/gim;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Plugin as VitePlugin } from 'vite';
import { AstroSettings } from '../@types/astro.js';
import { LogOptions } from '../core/logger/core.js';
import type { Plugin as VitePlugin } from 'vite';
import type { AstroSettings } from '../@types/astro.js';
import type { LogOptions } from '../core/logger/core.js';
import { runHookServerSetup } from '../integrations/index.js';

/** Connect Astro integrations into Vite, as needed. */
Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/vite-plugin-jsx/import-source.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { TsConfigJson } from 'tsconfig-resolver';
import { AstroRenderer } from '../@types/astro';
import type { TsConfigJson } from 'tsconfig-resolver';
import type { AstroRenderer } from '../@types/astro';
import { parseNpmName } from '../core/util.js';

export async function detectImportSource(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { fileURLToPath } from 'node:url';
import { ContentEntryType } from '../@types/astro.js';
import type { ContentEntryType } from '../@types/astro.js';
import { parseFrontmatter } from '../content/utils.js';

export const markdownContentEntryType: ContentEntryType = {
Expand Down
Loading

0 comments on commit c44aa15

Please sign in to comment.