Isomorphic JavaScript client for Supabase providing authentication, database, real-time, storage, and edge functions capabilities.
89
{
"context": "This criteria evaluates how effectively an engineer uses @supabase/supabase-js to implement basic CRUD operations (select, insert, update, delete) for a task management system. The focus is on proper usage of createClient, .from(), .select(), .insert(), .update(), .delete(), and basic filtering methods like .eq().",
"type": "weighted_checklist",
"checklist": [
{
"name": "Client initialization",
"description": "Uses createClient() from @supabase/supabase-js to initialize a Supabase client with SUPABASE_URL and SUPABASE_KEY environment variables.",
"max_score": 10
},
{
"name": "Select all records",
"description": "Uses .from('tasks').select() or .from('tasks').select('*') to retrieve all tasks from the database in the getAllTasks function.",
"max_score": 15
},
{
"name": "Select with filtering",
"description": "Uses .from('tasks').select() combined with .eq() method to filter tasks by ID in the getTaskById function (e.g., .eq('id', id)).",
"max_score": 15
},
{
"name": "Single result handling",
"description": "Uses .single() or .maybeSingle() method to retrieve a single task object instead of an array when querying by ID.",
"max_score": 10
},
{
"name": "Boolean filtering",
"description": "Uses .eq('completed', true) and .eq('completed', false) to filter tasks by completion status in getCompletedTasks and getIncompleteTasks functions.",
"max_score": 15
},
{
"name": "Insert operation",
"description": "Uses .from('tasks').insert() to create new tasks in the createTask function, passing an object or array of task data.",
"max_score": 15
},
{
"name": "Update operation",
"description": "Uses .from('tasks').update() combined with .eq() to update specific tasks by ID in the updateTask function (e.g., .update(updates).eq('id', id)).",
"max_score": 10
},
{
"name": "Delete operation",
"description": "Uses .from('tasks').delete() combined with .eq() to remove specific tasks by ID in the deleteTask function (e.g., .delete().eq('id', id)).",
"max_score": 10
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-supabase--supabase-jsevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10