CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-linkify-it

Links recognition library with FULL unicode support for detecting high-quality link patterns in plain text

Overall
score

97%

Overview
Eval results
Files

task.mdevals/scenario-4/

Email Extractor

A tool for extracting email addresses from plain text content.

Capabilities

Extract emails from text

  • It extracts a single email address from plain text @test
  • It extracts multiple email addresses from plain text @test
  • It returns an empty array when no email addresses are found @test
  • It extracts emails from text with mixed content (URLs, emails, regular text) @test

Implementation

The solution should parse text and identify all valid email addresses, returning them as an array of strings. Each email should be returned in normalized form (with the mailto: prefix added if necessary).

@generates

API

/**
 * Extracts all email addresses from the given text.
 *
 * @param {string} text - The text to extract email addresses from.
 * @returns {string[]} An array of normalized email URLs (e.g., ['mailto:user@example.com']).
 */
function extractEmails(text) {
  // IMPLEMENTATION HERE
}

module.exports = { extractEmails };

Dependencies { .dependencies }

linkify-it { .dependency }

Provides link recognition and email detection support.

Test Cases

The following test cases should be implemented:

Extract single email @test

const { extractEmails } = require('../src/email-extractor');

test('extracts a single email address', () => {
  const text = 'Contact me at john.doe@example.com for more information.';
  const result = extractEmails(text);
  expect(result).toEqual(['mailto:john.doe@example.com']);
});

Extract multiple emails @test

const { extractEmails } = require('../src/email-extractor');

test('extracts multiple email addresses', () => {
  const text = 'You can reach us at support@company.org or sales@company.org';
  const result = extractEmails(text);
  expect(result).toEqual(['mailto:support@company.org', 'mailto:sales@company.org']);
});

No emails found @test

const { extractEmails } = require('../src/email-extractor');

test('returns empty array when no emails found', () => {
  const text = 'This text has no email addresses, just a website: example.com';
  const result = extractEmails(text);
  expect(result).toEqual([]);
});

Mixed content @test

const { extractEmails } = require('../src/email-extractor');

test('extracts emails from text with mixed content', () => {
  const text = 'Visit https://example.com or email admin@example.com and support@test.org';
  const result = extractEmails(text);
  expect(result).toEqual(['mailto:admin@example.com', 'mailto:support@test.org']);
});

Install with Tessl CLI

npx tessl i tessl/npm-linkify-it

tile.json