11import { gt } from 'semver' ;
22
3- function parseDebugTools ( options : any ) : NormalizedOptions [ "debugTools" ] {
3+ function parseDebugTools ( options : UserOptions ) : {
4+ isDebug : boolean ;
5+ debugToolsImport : string ;
6+ assertPredicateIndex : number | undefined ;
7+ } {
48 let debugTools = options . debugTools || {
59 isDebug : false ,
610 source : '' ,
@@ -11,21 +15,22 @@ function parseDebugTools(options: any): NormalizedOptions["debugTools"] {
1115 let debugToolsImport = debugTools . source ;
1216 let assertPredicateIndex = debugTools . assertPredicateIndex ;
1317
14- if ( options . envFlags && isDebug === undefined ) {
15- isDebug = options . envFlags . flags . DEBUG ;
16- }
17-
1818 return {
1919 isDebug,
2020 debugToolsImport,
2121 assertPredicateIndex,
2222 } ;
2323}
2424
25- function evaluateFlagValue ( options , name , flagName , flagValue ) {
25+ function evaluateFlagValue (
26+ options : UserOptions ,
27+ name : string | undefined ,
28+ flagName : string ,
29+ flagValue : string | boolean | null
30+ ) : boolean | null {
2631 let svelte = options . svelte ;
2732
28- if ( typeof flagValue === 'string' ) {
33+ if ( typeof flagValue === 'string' && name ) {
2934 if ( svelte && svelte [ name ] ) {
3035 return gt ( flagValue , svelte [ name ] ) ;
3136 } else {
@@ -38,10 +43,10 @@ function evaluateFlagValue(options, name, flagName, flagValue) {
3843 }
3944}
4045
41- function parseFlags ( options ) {
46+ function parseFlags ( options : UserOptions ) : Record < string , Record < string , boolean | null > > {
4247 let flagsProvided = options . flags || [ ] ;
4348
44- let combinedFlags = { } ;
49+ let combinedFlags : Record < string , Record < string , boolean | null > > = { } ;
4550 flagsProvided . forEach ( ( flagsDefinition ) => {
4651 let source = flagsDefinition . source ;
4752 let flagsForSource = ( combinedFlags [ source ] = combinedFlags [ source ] || { } ) ;
@@ -62,27 +67,38 @@ function parseFlags(options) {
6267}
6368
6469export interface NormalizedOptions {
65- externalizeHelpers : unknown ;
66- flags : unknown ;
70+ externalizeHelpers : {
71+ module ?: boolean ;
72+ global ?: string ;
73+ } ;
74+ flags : Record < string , Record < string , boolean | null > > ;
6775 svelte : unknown ;
68- debugTools : unknown ;
76+ debugTools : {
77+ isDebug : boolean ;
78+ debugToolsImport : string ;
79+ assertPredicateIndex : number | undefined ;
80+ } ;
6981}
7082
71- export function normalizeOptions ( options : any ) : NormalizedOptions {
72- let features = options . features || [ ] ;
73- let externalizeHelpers = options . externalizeHelpers ;
74- let svelte = options . svelte ;
75-
76- if ( ! Array . isArray ( features ) ) {
77- features = [ features ] ;
78- }
83+ export interface UserOptions {
84+ externalizeHelpers ?: {
85+ module ?: boolean ;
86+ global ?: string ;
87+ } ;
88+ svelte ?: Record < string , string > ;
89+ flags ?: { source : string ; name ?: string ; flags : Record < string , boolean | string | null > } [ ] ;
90+ debugTools ?: {
91+ isDebug : boolean ;
92+ source : string ;
93+ assertPredicateIndex ?: number ;
94+ } ;
95+ }
7996
97+ export function normalizeOptions ( options : UserOptions ) : NormalizedOptions {
8098 return {
81- externalizeHelpers,
99+ externalizeHelpers : options . externalizeHelpers ?? { } ,
82100 flags : parseFlags ( options ) ,
83- svelte,
101+ svelte : options . svelte ,
84102 debugTools : parseDebugTools ( options ) ,
85103 } ;
86104}
87-
88-
0 commit comments