CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-expo-application

A universal module that gets native application information such as its ID, app name, and build version at runtime

Overall
score

98%

Overview
Eval results
Files

rubric.jsonevals/scenario-8/

{
  "context": "This criteria evaluates how effectively an engineer uses the expo-application package to implement iOS device identification functionality, specifically leveraging the getIosIdForVendorAsync() method. The focus is on correct API usage, proper error handling for platform-specific availability, and appropriate handling of null return values.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Uses getIosIdForVendorAsync",
      "description": "The implementation imports and calls getIosIdForVendorAsync() from the expo-application package to retrieve the iOS vendor identifier.",
      "max_score": 35
    },
    {
      "name": "Handles async operation",
      "description": "The implementation correctly handles the Promise returned by getIosIdForVendorAsync() using async/await or .then()/.catch() patterns.",
      "max_score": 15
    },
    {
      "name": "Handles null return",
      "description": "The implementation properly checks for and handles the null case that can be returned by getIosIdForVendorAsync() when the device has been restarted but not yet unlocked.",
      "max_score": 20
    },
    {
      "name": "Handles UnavailabilityError",
      "description": "The implementation includes try-catch error handling to catch UnavailabilityError thrown on non-iOS platforms (Android, web) when calling getIosIdForVendorAsync().",
      "max_score": 20
    },
    {
      "name": "UUID format validation",
      "description": "The implementation validates the UUID format of the identifier returned by getIosIdForVendorAsync() using appropriate pattern matching (8-4-4-4-12 hexadecimal format).",
      "max_score": 10
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/npm-expo-application

tile.json