From 9263d6cc6dc4fe88990f4a444f88b0228d29695f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Wed, 8 May 2024 14:52:14 +0200 Subject: [PATCH] Mark options as optional in parser types --- packages/babel-parser/src/options.ts | 46 +++++++++++++++------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/packages/babel-parser/src/options.ts b/packages/babel-parser/src/options.ts index d21fe775d60c..5568c8998093 100644 --- a/packages/babel-parser/src/options.ts +++ b/packages/babel-parser/src/options.ts @@ -5,29 +5,31 @@ import type { PluginList } from "./plugin-utils.ts"; export type SourceType = "script" | "module" | "unambiguous"; -export type Options = { - sourceType: SourceType; +export interface Options { + sourceType?: SourceType; sourceFilename?: string; - startColumn: number; - startLine: number; - allowAwaitOutsideFunction: boolean; - allowReturnOutsideFunction: boolean; - allowNewTargetOutsideFunction: boolean; - allowImportExportEverywhere: boolean; - allowSuperOutsideMethod: boolean; - allowUndeclaredExports: boolean; - plugins: PluginList; - strictMode: boolean | undefined | null; - ranges: boolean; - tokens: boolean; - createImportExpressions: boolean; - createParenthesizedExpressions: boolean; - errorRecovery: boolean; - attachComment: boolean; - annexB: boolean; -}; + startColumn?: number; + startLine?: number; + allowAwaitOutsideFunction?: boolean; + allowReturnOutsideFunction?: boolean; + allowNewTargetOutsideFunction?: boolean; + allowImportExportEverywhere?: boolean; + allowSuperOutsideMethod?: boolean; + allowUndeclaredExports?: boolean; + plugins?: PluginList; + strictMode?: boolean | undefined | null; + ranges?: boolean; + tokens?: boolean; + createImportExpressions?: boolean; + createParenthesizedExpressions?: boolean; + errorRecovery?: boolean; + attachComment?: boolean; + annexB?: boolean; +} + +type OptionsWithDefaults = { [P in keyof Options]-?: Options[P] }; -export const defaultOptions: Options = { +export const defaultOptions: OptionsWithDefaults = { // Source type ("script" or "module") for different semantics sourceType: "script", // Source filename. @@ -90,7 +92,7 @@ export const defaultOptions: Options = { // Interpret and default an options object -export function getOptions(opts?: Options | null): Options { +export function getOptions(opts?: Options | null): OptionsWithDefaults { if (opts == null) { return { ...defaultOptions }; }