From 1571a45aae034e234f5d196870117e72ca8d1496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CIsaac?= Date: Sun, 23 Jun 2024 11:10:17 +1000 Subject: [PATCH] feat: check whether the library has been initialised in the high level generators, throw a friendly error --- .changeset/nervous-rabbits-turn.md | 6 ++++++ .../src/generators/generate-solo-nav-mesh.ts | 8 +++++++- .../src/generators/generate-tile-cache.ts | 6 ++++++ .../src/generators/generate-tiled-nav-mesh.ts | 6 ++++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 .changeset/nervous-rabbits-turn.md diff --git a/.changeset/nervous-rabbits-turn.md b/.changeset/nervous-rabbits-turn.md new file mode 100644 index 00000000..8eb68bb7 --- /dev/null +++ b/.changeset/nervous-rabbits-turn.md @@ -0,0 +1,6 @@ +--- +"@recast-navigation/generators": patch +"recast-navigation": patch +--- + +feat: check whether the library has been initialised in the high level generators, throw a friendly error diff --git a/packages/recast-navigation-generators/src/generators/generate-solo-nav-mesh.ts b/packages/recast-navigation-generators/src/generators/generate-solo-nav-mesh.ts index c68f758c..efaf5892 100644 --- a/packages/recast-navigation-generators/src/generators/generate-solo-nav-mesh.ts +++ b/packages/recast-navigation-generators/src/generators/generate-solo-nav-mesh.ts @@ -91,6 +91,12 @@ export const generateSoloNavMesh = ( navMeshGeneratorConfig: Partial = {}, keepIntermediates = false ): SoloNavMeshGeneratorResult => { + if (!Raw.Module) { + throw new Error( + '"init" must be called before using any recast-navigation-js APIs. See: https://github.com/isaac-mason/recast-navigation-js?tab=readme-ov-file#initialization' + ); + } + const buildContext = new RecastBuildContext(); const intermediates: SoloNavMeshGeneratorIntermediates = { @@ -141,7 +147,7 @@ export const generateSoloNavMesh = ( error, }; }; - + /* input geometry */ const vertices = positions as number[]; const numVertices = indices.length; diff --git a/packages/recast-navigation-generators/src/generators/generate-tile-cache.ts b/packages/recast-navigation-generators/src/generators/generate-tile-cache.ts index b5f7118a..b19306a1 100644 --- a/packages/recast-navigation-generators/src/generators/generate-tile-cache.ts +++ b/packages/recast-navigation-generators/src/generators/generate-tile-cache.ts @@ -133,6 +133,12 @@ export const generateTileCache = ( navMeshGeneratorConfig: Partial = {}, keepIntermediates = false ): TileCacheGeneratorResult => { + if (!Raw.Module) { + throw new Error( + '"init" must be called before using any recast-navigation-js APIs. See: https://github.com/isaac-mason/recast-navigation-js?tab=readme-ov-file#initialization' + ); + } + const buildContext = new RecastBuildContext(); const intermediates: TileCacheGeneratorIntermediates = { diff --git a/packages/recast-navigation-generators/src/generators/generate-tiled-nav-mesh.ts b/packages/recast-navigation-generators/src/generators/generate-tiled-nav-mesh.ts index c8e5270c..a3d4d3cf 100644 --- a/packages/recast-navigation-generators/src/generators/generate-tiled-nav-mesh.ts +++ b/packages/recast-navigation-generators/src/generators/generate-tiled-nav-mesh.ts @@ -113,6 +113,12 @@ export const generateTiledNavMesh = ( navMeshGeneratorConfig: Partial = {}, keepIntermediates = false ): TiledNavMeshGeneratorResult => { + if (!Raw.Module) { + throw new Error( + '"init" must be called before using any recast-navigation-js APIs. See: https://github.com/isaac-mason/recast-navigation-js?tab=readme-ov-file#initialization' + ); + } + const buildContext = new RecastBuildContext(); const intermediates: TiledNavMeshGeneratorIntermediates = {