diff --git a/apps/docs/__tests__/RescriptCompilerApi_.test.res b/apps/docs/__tests__/RescriptCompilerApi_.test.res index 3b2752407..75deabb9a 100644 --- a/apps/docs/__tests__/RescriptCompilerApi_.test.res +++ b/apps/docs/__tests__/RescriptCompilerApi_.test.res @@ -1,6 +1,16 @@ open Vitest open RescriptCompilerApi +test("recognizes compiler API v9 and enables existing settings", async () => { + let version = Version.fromString("9") + + expect(version->Version.toString)->toBe("9.0") + expect(version->Version.availableLanguages)->toEqual([Lang.Res]) + expect(version->Version.isMinimumVersion(V4))->toBe(true) + expect(version->Version.isMinimumVersion(V6))->toBe(true) + expect(version->Version.isMinimumVersion(V9))->toBe(true) +}) + test("recognizes the compiler API used by v13 alpha 6", async () => { let version = Version.fromString("8") diff --git a/packages/playground/src/CompilerManagerHook.res b/packages/playground/src/CompilerManagerHook.res index 1b3f35c53..2f9f2728a 100644 --- a/packages/playground/src/CompilerManagerHook.res +++ b/packages/playground/src/CompilerManagerHook.res @@ -91,7 +91,7 @@ let getLibrariesForVersion = (~version: Semver.t): array => { let getOpenModules = (~apiVersion: Version.t, ~libraries: array): option> => switch apiVersion { | V1 | V2 | V3 | UnknownVersion(_) => None - | V4 | V5 | V6 | V7 | V8 => + | V4 | V5 | V6 | V7 | V8 | V9 => libraries->Array.some(el => el === "@rescript/core") ? Some(["RescriptCore"]) : None } @@ -572,7 +572,7 @@ let useCompilerManager = ( ) | Lang.Res => instance->Compiler.resCompile(code) } - | V5 | V6 | V7 | V8 => + | V5 | V6 | V7 | V8 | V9 => switch lang { | Lang.Res => instance->Compiler.resCompile(code) | _ => CompilationResult.UnexpectedError(`Can't handle with lang: ${lang->Lang.toString}`) diff --git a/packages/shared/src/RescriptCompilerApi.res b/packages/shared/src/RescriptCompilerApi.res index ff67ea683..f13e86860 100644 --- a/packages/shared/src/RescriptCompilerApi.res +++ b/packages/shared/src/RescriptCompilerApi.res @@ -37,6 +37,7 @@ module Version = { | @as(6) V6 | @as(7) V7 | @as(8) V8 + | @as(9) V9 type t = | ...numbered @@ -66,6 +67,7 @@ module Version = { | list{"6"} => V6 | list{"7"} => V7 | list{"8"} => V8 + | list{"9"} => V9 | _ => UnknownVersion(apiVersion) } @@ -79,6 +81,7 @@ module Version = { | V6 => "6.0" | V7 => "7.0" | V8 => "8.0" + | V9 => "9.0" | UnknownVersion(version) => version } @@ -87,7 +90,7 @@ module Version = { let availableLanguages = t => switch t { | V1 => [Lang.Reason, Res] - | V2 | V3 | V4 | V5 | V6 | V7 | V8 => [Lang.Res] + | V2 | V3 | V4 | V5 | V6 | V7 | V8 | V9 => [Lang.Res] | UnknownVersion(_) => [Res] } diff --git a/packages/shared/src/RescriptCompilerApi.resi b/packages/shared/src/RescriptCompilerApi.resi index 1c5032715..aecce6aac 100644 --- a/packages/shared/src/RescriptCompilerApi.resi +++ b/packages/shared/src/RescriptCompilerApi.resi @@ -28,6 +28,7 @@ module Version: { | @as(6) V6 | @as(7) V7 | @as(8) V8 + | @as(9) V9 type t = | ...numbered