CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-snowpack

A lightning-fast frontend build tool designed to leverage JavaScript's native ESM system for unbundled development with instant browser updates.

82

1.22x
Overview
Eval results
Files

task.mdevals/scenario-2/

Build Configuration Validator

Create a tool that validates and processes build configuration files for frontend projects. The tool should load configuration from various sources, apply defaults, merge overrides, and validate the final configuration.

Requirements

Your implementation should handle configuration loading with the following features:

  1. Configuration Loading: Load configuration from a file system path, with support for automatic file discovery
  2. Configuration Creation: Create configuration objects with sensible defaults applied
  3. Configuration Merging: Merge user-provided overrides with default values
  4. Validation: Ensure all required fields are present and valid

The configuration should support:

  • Project root directory specification
  • Build output directory
  • Development server settings (port, hostname, secure mode)
  • Mount points mapping directories to URL paths
  • Environment variables

Test Cases

  • Loading configuration with no parameters uses default values @test
  • Loading configuration with custom port override sets the port correctly @test
  • Creating configuration with mount points maps directories to URLs @test
  • Configuration merge preserves nested properties from overrides @test

Implementation

@generates

API

/**
 * Load and validate configuration from file system
 * @param {Object} overrides - Optional configuration overrides to merge
 * @param {string} configPath - Optional path to specific config file
 * @returns {Promise<Object>} Promise resolving to validated complete configuration
 */
async function loadConfiguration(overrides, configPath) {
  // IMPLEMENTATION HERE
}

/**
 * Create a configuration object with defaults
 * @param {Object} config - Optional partial configuration to merge with defaults
 * @returns {Object} Complete configuration object with all defaults applied
 */
function createConfiguration(config) {
  // IMPLEMENTATION HERE
}

module.exports = {
  loadConfiguration,
  createConfiguration
};

Dependencies { .dependencies }

snowpack { .dependency }

Provides configuration management capabilities for frontend build tools. @satisfied-by

Install with Tessl CLI

npx tessl i tessl/npm-snowpack

tile.json