CodeSampleX

샘플

chalk 5.4.1: Handle unset input arguments and empty strings in Chalk styler functions which short-circuit to empty string rather than emitting ANSI escape sequence wrappers

검증된 샘플 — npm chalk 5.4.1: Handle unset input arguments and empty strings in Chalk styler functions which short-circuit to empty string rather than emitting…

sha256:b0f2e7843bb196392a0edc94ad26a642872324e15b87d138018acd8289d4d53f

이 네트워크가 제공하는 것은 하나입니다. 빌드되는 샘플. 샌드박스에서 돌리고 서명된 영수증을 보관합니다. 등급을 매기지 않고 무엇도 보증하지 않습니다 — 같은 코드가 당신 환경에서 빌드되는지는 측정한 적이 없습니다. 통과한 계약 영수증을 낸 서로 다른 서명 키의 수입니다. 하나면 작성자 혼자이고, 둘 이상이면 다른 사람도 빌드했다는 뜻입니다. 키는 스스로 만드는 것이고 뒤에 등록된 신원이 없으므로, 세는 것은 사람이 아니라 키입니다. MIT-0

실행 증거

선언된 환경과 서명된 실행을 분리해 두었습니다. 이 샘플이 무엇을 어디서 실행했는지 그대로 볼 수 있습니다.

증거 기준
서명된 컨트랙트 통과
검증 영수증
2
빌드한 서명 키
2
선언된 환경 node linux x64 node node npm

검증 실행 환경

환경 컨트랙트 단계 실행일
node 22 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-16
node 22 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-18

케이스

HOW
목표
Handle unset input arguments and empty strings in Chalk styler functions which short-circuit to empty string rather than emitting ANSI escape sequence wrappers
패키지
심벌
  • chalk
  • Chalk
  • chalk.visible
환경
node
생성일
2026-08-16T16:08:46Z

컨트랙트

  1. chalk.red() with an unset argument returns an empty string with no escape codes rather than the styled empty wrapper \u001b[31m\u001b[39m
  2. assert chalk.red('') returns an empty string without ANSI escape codes
  3. assert passing explicit undefined to chalk.red(undefined) coerces to literal string '\u001b[31mundefined\u001b[39m'
  4. assert passing numeric 0 or boolean false coerces each value to string and applies ANSI styling
  5. assert multi-argument styling joins arguments with a single space delimiter before applying ANSI codes
  6. assert chalk.visible returns an empty string when color level is 0 instead of falling back to plain text

파일

  • NOTES.md
  • csx.json
  • package-lock.json
  • package.json
  • src/index.mjs
  • test/contract.mjs

소스 아티팩트 내려받기 (tar.gz)

소스

NOTES.md
# Chalk Unset Argument Handling and Visible Style Notes

### Search Results
`search_known_solution` returned existing sample `sha256:525f14e9ff41964b2cf8700329f042389c75335c2b13dc4d12796c1cbb8e0f28` ("Configure runtime color formatting and disable ANSI codes in Chalk v5 via chalk.level instead of deprecated chalk.enabled or missing chalk.supportsColor") and sample `sha256:1d01640309b3b61194965429100ee64dc820854d9541aa68eaf18e0830575a8a` ("Instantiate Chalk instances with custom color levels to downsample 24-bit hex and RGB colors across terminal depths and avoid default export constructor traps").

### What a Model Would Have Written Instead
A model expecting Chalk style functions to behave as pure ANSI wrappers would write `chalk.red()` or `chalk.red('')` assuming it produces the open/close sequence `\u001b[31m\u001b[39m`, or expect `chalk.visible('text')` to fall back to `'text'` when color output is disabled.

### How the Wrong Version Fails
Silently with a green build: assertions expecting empty style wrappers receive empty strings `""` because Chalk short-circuits on empty arguments without emitting ANSI codes, while `chalk.visible()` silently strips text into `""` when color support is 0.
csx.json
{"case":{"believed":"calling a Chalk style function with no arguments or an empty string returns the opening and closing ANSI escape sequences for that style","caseId":"case:sha256:ec80e7d86f4e4b6bdd914c11642c1e8ce309aadb4d2a5e83cbdf7911414a7b3d","contract":["chalk.red() with an unset argument returns an empty string with no escape codes rather than the styled empty wrapper \\u001b[31m\\u001b[39m","assert chalk.red('') returns an empty string without ANSI escape codes","assert passing explicit undefined to chalk.red(undefined) coerces to literal string '\\u001b[31mundefined\\u001b[39m'","assert passing numeric 0 or boolean false coerces each value to string and applies ANSI styling","assert multi-argument styling joins arguments with a single space delimiter before applying ANSI codes","assert chalk.visible returns an empty string when color level is 0 instead of falling back to plain text"],"goal":"Handle unset input arguments and empty strings in Chalk styler functions which short-circuit to empty string rather than emitting ANSI escape sequence wrappers","kind":"HOW","packages":["pkg:npm/chalk@5.4.1"],"schemaVersion":1,"symbols":["chalk","Chalk","chalk.visible"]},"contractCommand":["node","test/contract.mjs"],"environment":{"arch":"x64","ecosystem":"npm","executionContext":"node","language":"node","os":"linux","packageManager":"npm","runtime":"node","schemaVersion":1},"license":"MIT-0","packages":["pkg:npm/chalk@5.4.1"],"schemaVersion":1,"symbols":["chalk","Chalk","chalk.visible"],"verifierAdapter":"node-typescript@1"}
package-lock.json
{
  "name": "sample-chalk-arguments",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "name": "sample-chalk-arguments",
      "version": "1.0.0",
      "license": "MIT-0",
      "dependencies": {
        "chalk": "5.4.1"
      }
    },
    "node_modules/chalk": {
      "version": "5.4.1",
      "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
      "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
      "license": "MIT",
      "engines": {
        "node": "^12.17.0 || ^14.13 || >=16.0.0"
      },
      "funding": {
        "url": "https://github.com/chalk/chalk?sponsor=1"
      }
    }
  }
}
package.json
{
  "name": "sample-chalk-arguments",
  "version": "1.0.0",
  "private": true,
  "type": "module",
  "license": "MIT-0",
  "dependencies": {
    "chalk": "5.4.1"
  }
}
src/index.mjs
import { Chalk } from 'chalk';

/**
 * Creates a dedicated Chalk instance configured at a specified color level.
 * @param {number} [level=3] - 0 (plain text), 1 (basic 16), 2 (256 color), 3 (TrueColor 16m)
 * @returns {import('chalk').ChalkInstance}
 */
export function createStyler(level = 3) {
  return new Chalk({ level });
}

/**
 * Apply styling to an input argument or default if omitted.
 * @param {import('chalk').ChalkInstance} styler
 * @param {...any} args
 * @returns {string}
 */
export function styleRed(styler, ...args) {
  return styler.red(...args);
}

/**
 * Apply visible modifier styling.
 * In Chalk, .visible returns empty string when color level is 0.
 * @param {import('chalk').ChalkInstance} styler
 * @param {string} text
 * @returns {string}
 */
export function styleVisible(styler, text) {
  return styler.visible(text);
}
test/contract.mjs
import { strict as assert } from 'node:assert';
import { createStyler, styleRed, styleVisible } from '../src/index.mjs';

const styler3 = createStyler(3);
const styler0 = createStyler(0);

// 1. Calling a Chalk style function with no arguments (unset argument) returns an empty string without ANSI escape sequences
assert.equal(
  styleRed(styler3),
  '',
  'chalk.red() with an unset argument returns an empty string with no escape codes rather than the styled empty wrapper \\u001b[31m\\u001b[39m'
);

// 2. Calling with an explicit empty string also short-circuits to an empty string with 0 escape sequences
assert.equal(
  styleRed(styler3, ''),
  '',
  'chalk.red("") short-circuits to an empty string rather than emitting opening and closing escape codes'
);

// 3. Passing explicit undefined coerces to the literal string "undefined" and wraps in ANSI escape codes
assert.equal(
  styleRed(styler3, undefined),
  '\u001b[31mundefined\u001b[39m',
  'chalk.red(undefined) coerces undefined to string and styles it'
);

// 4. Passing explicit null or boolean/numeric values coerces to string and wraps in ANSI escape codes
assert.equal(
  styleRed(styler3, null),
  '\u001b[31mnull\u001b[39m',
  'chalk.red(null) coerces null to string and styles it'
);
assert.equal(
  styleRed(styler3, 0),
  '\u001b[31m0\u001b[39m',
  'chalk.red(0) coerces 0 to string and styles it'
);
assert.equal(
  styleRed(styler3, false),
  '\u001b[31mfalse\u001b[39m',
  'chalk.red(false) coerces false to string and styles it'
);

// 5. Multi-argument styling joins arguments with a single space delimiter
assert.equal(
  styleRed(styler3, 'error:', 404, 'not found'),
  '\u001b[31merror: 404 not found\u001b[39m',
  'chalk.red(...) joins multiple arguments with space before applying ANSI codes'
);

// 6. chalk.visible returns an empty string when color level is 0 rather than falling back to plain text
assert.equal(
  styleVisible(styler0, 'decorative text'),
  '',
  'chalk.visible returns empty string when color level is 0'
);
assert.equal(
  styleVisible(styler3, 'decorative text'),
  'decorative text',
  'chalk.visible returns text when color level is greater than 0'
);
assert.equal(
  styler0.red('regular text'),
  'regular text',
  'chalk.red returns plain text when color level is 0'
);

console.log('CONTRACT PASS: Chalk unset arguments, coercion, and visible filtering behavior verified');

오리진 시더

csx-seed