샘플
neo-async 2.6.2: async.parallel
검증된 샘플 — npm neo-async 2.6.2: async.parallel. node 22 · linux debian/x64 · docker에서 contract를 실행해 통과했습니다: async.parallel executes an array of async tasks in…
sha256:9bbd0d25801b3a452088e407be32d6671574c29dccd060fb75c3de82fa30a6c6
이 네트워크가 제공하는 것은 하나입니다. 빌드되는 샘플. 샌드박스에서 돌리고 서명된 영수증을 보관합니다. 등급을 매기지 않고 무엇도 보증하지 않습니다 — 같은 코드가 당신 환경에서 빌드되는지는 측정한 적이 없습니다.
통과한 계약 영수증을 낸 서로 다른 서명 키의 수입니다. 하나면 작성자 혼자이고, 둘 이상이면 다른 사람도 빌드했다는 뜻입니다. 키는 스스로 만드는 것이고 뒤에 등록된 신원이 없으므로, 세는 것은 사람이 아니라 키입니다.
MIT-0
실행 증거
선언된 환경과 서명된 실행을 분리해 두었습니다. 이 샘플이 무엇을 어디서 실행했는지 그대로 볼 수 있습니다.
- 증거 기준
- 서명된 컨트랙트 통과
- 검증 영수증
- 1
- 빌드한 서명 키
- 1
선언된 환경
node 22.23 linux 24 · ubuntu · glibc 2.39 x64 node 22.23 javascript npm 10
검증 실행 환경
| 환경 | 컨트랙트 | 단계 | 실행일 |
|---|---|---|---|
| node 22 · linux debian/x64 · docker ed25519:c1973797be207ac4 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · node-typescript@1node:22@sha256:8a34c4ab3ea2… |
2026-09-02 |
케이스
HOW- 목표
- verify async.parallel in pkg:npm/neo-async@2.6.2
- 패키지
- 심벌
-
- async.parallel
- 환경
- node 22.23.2
- 생성일
- 2026-09-02T01:45:29Z
컨트랙트
- async.parallel executes an array of async tasks in parallel returning ordered results
- async.parallel executes an object of named async tasks in parallel and returns results object with matching keys
- async.parallel short-circuits immediately with error when any task fails
- async.parallel handles empty collections immediately without error
- async.parallel supports callback execution with synchronous and mixed tasks
파일
- PROMPT.md
- csx.json
- index.js
- package-lock.json
- package.json
- spec.json
- test/contract.cjs
소스
Clean-room public code sample — generation instructions
Write a brand-new, minimal, self-contained code sample in this clean-room directory.
Do not copy, paraphrase, or reference any existing project source. Work only from this spec.
A csx.json manifest scaffold already exists. Do not recreate it from memory. Preserve its case.goal, packages and symbols; fill its empty case.contract with exact assertions and correct its environment, commands and verifierAdapter for the files you generate.
Goal: verify async.parallel in pkg:npm/neo-async@2.6.2
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:npm/neo-async@2.6.2
Demonstrate these symbols/APIs:
- async.parallel
Constraints:
- executionContext: node
Required runtime conditions:
- ecosystem: npm
- language: javascript
- moduleSystem: cjs
- packageManager: npm@10.9.8
- runtime: node@22.23.2
Rules:
- One focused purpose; the smallest project that proves the goal.
- Include a contract test (test/contract.*) that runs OFFLINE and exits 0 exactly when the goal behavior works.
- Pin every dependency with a lockfile so resolution is reproducible.
- No secrets, credentials, or tokens. No real URLs (only example.com or localhost). No absolute paths.
- No personal names, emails, company names, or project identifiers of any kind.
- No binaries and no generated output (node_modules, dist, target, venv, .git, .env).
- Keep it under 200 files and 256KB packed.
{"case":{"caseId":"case:sha256:8de1e0381e68da3fd293f294cd964240dc9917302d01c332e7da498917060d7e","constraints":{"executionContext":"node"},"contract":["async.parallel executes an array of async tasks in parallel returning ordered results","async.parallel executes an object of named async tasks in parallel and returns results object with matching keys","async.parallel short-circuits immediately with error when any task fails","async.parallel handles empty collections immediately without error","async.parallel supports callback execution with synchronous and mixed tasks"],"goal":"verify async.parallel in pkg:npm/neo-async@2.6.2","kind":"HOW","packages":["pkg:npm/neo-async@2.6.2"],"schemaVersion":1,"symbols":["async.parallel"]},"contractCommand":["node","test/contract.cjs"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"npm","executionContext":"node","language":"javascript","libc":"glibc","libcVersion":"2.39","moduleSystem":"cjs","os":"linux","osVersionBucket":"24","packageManager":"npm","packageManagerVersion":"10.9.8","runtime":"node","runtimeVersion":"22.23.2","schemaVersion":1},"license":"MIT-0","packages":["pkg:npm/neo-async@2.6.2"],"schemaVersion":1,"subject":"pkg:npm/neo-async@2.6.2","symbols":["async.parallel"],"verifierAdapter":"node-typescript@1"}
'use strict';
const async = require('neo-async');
/**
* Executes an array of asynchronous task functions in parallel.
* @param {Array<Function>} tasks - Array of task functions: (callback) => void
* @returns {Promise<Array<*>>} - Resolves with array of task results in original order
*/
function runParallelArray(tasks) {
return new Promise((resolve, reject) => {
async.parallel(tasks, (err, results) => {
if (err) {
return reject(err);
}
resolve(results);
});
});
}
/**
* Executes a dictionary/object of named asynchronous task functions in parallel.
* @param {Object.<string, Function>} tasks - Object mapping task names to task functions
* @returns {Promise<Object.<string, *>>} - Resolves with object of task results mapped by key
*/
function runParallelObject(tasks) {
return new Promise((resolve, reject) => {
async.parallel(tasks, (err, results) => {
if (err) {
return reject(err);
}
resolve(results);
});
});
}
/**
* Executes tasks in parallel with raw callback.
* @param {Array<Function>|Object.<string, Function>} tasks
* @param {Function} callback - (err, results) => void
*/
function executeParallel(tasks, callback) {
return async.parallel(tasks, callback);
}
module.exports = {
async,
runParallelArray,
runParallelObject,
executeParallel,
};
{
"name": "sample-neo-async-parallel",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "sample-neo-async-parallel",
"version": "1.0.0",
"license": "MIT-0",
"dependencies": {
"neo-async": "2.6.2"
}
},
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"license": "MIT"
}
}
}
{
"name": "sample-neo-async-parallel",
"version": "1.0.0",
"description": "verify async.parallel in pkg:npm/neo-async@2.6.2",
"main": "index.js",
"license": "MIT-0",
"dependencies": {
"neo-async": "2.6.2"
}
}
{
"schemaVersion": 1,
"goal": "verify async.parallel in pkg:npm/neo-async@2.6.2",
"kind": "HOW",
"packages": [
"pkg:npm/neo-async@2.6.2"
],
"symbols": [
"async.parallel"
],
"constraints": {
"executionContext": "node"
},
"runtimeConditions": {
"ecosystem": "npm",
"language": "javascript",
"moduleSystem": "cjs",
"packageManager": "npm@10.9.8",
"runtime": "node@22.23.2"
}
}
'use strict';
const assert = require('node:assert');
const {
async,
runParallelArray,
runParallelObject,
executeParallel,
} = require('../index.js');
async function runTests() {
// Contract 1: async.parallel executes an array of async tasks in parallel returning ordered results
{
assert.strictEqual(typeof async.parallel, 'function', 'async.parallel must be a function');
let task1Started = false;
let task2Started = false;
let task1Finished = false;
let task2Finished = false;
const tasks = [
(callback) => {
task1Started = true;
setTimeout(() => {
task1Finished = true;
callback(null, 'first-result');
}, 30);
},
(callback) => {
task2Started = true;
setTimeout(() => {
task2Finished = true;
callback(null, 'second-result');
}, 10);
},
];
const results = await runParallelArray(tasks);
assert.strictEqual(task1Started, true, 'Task 1 must have started');
assert.strictEqual(task2Started, true, 'Task 2 must have started');
assert.strictEqual(task1Finished, true, 'Task 1 must have finished');
assert.strictEqual(task2Finished, true, 'Task 2 must have finished');
assert.deepStrictEqual(results, ['first-result', 'second-result'], 'Results must maintain input array order regardless of completion time');
}
// Contract 2: async.parallel executes an object of named async tasks in parallel and returns results object with matching keys
{
const tasks = {
taskA: (callback) => {
setTimeout(() => callback(null, 100), 20);
},
taskB: (callback) => {
setTimeout(() => callback(null, 'hello'), 10);
},
taskC: (callback) => {
callback(null, { nested: true });
},
};
const results = await runParallelObject(tasks);
assert.deepStrictEqual(
results,
{
taskA: 100,
taskB: 'hello',
taskC: { nested: true },
},
'Results object must match task keys'
);
}
// Contract 3: async.parallel short-circuits immediately with error when any task fails
{
let taskAfterErrorCompleted = false;
const tasks = [
(callback) => {
setTimeout(() => {
callback(new Error('Task 1 failed'));
}, 10);
},
(callback) => {
setTimeout(() => {
taskAfterErrorCompleted = true;
callback(null, 'Task 2 success');
}, 100);
},
];
await assert.rejects(
async () => {
await runParallelArray(tasks);
},
(err) => {
assert.strictEqual(err.message, 'Task 1 failed');
return true;
},
'Must reject with error from the failed task'
);
}
// Contract 4: async.parallel handles empty collections immediately without error
{
const emptyArrayResult = await runParallelArray([]);
assert.deepStrictEqual(emptyArrayResult, [], 'Empty array tasks must resolve with empty array');
const emptyObjectResult = await runParallelObject({});
assert.deepStrictEqual(emptyObjectResult, {}, 'Empty object tasks must resolve with empty object');
}
// Contract 5: async.parallel supports callback execution with synchronous and mixed tasks
{
await new Promise((resolve, reject) => {
executeParallel(
[
(cb) => cb(null, 1),
(cb) => cb(null, 2),
(cb) => process.nextTick(() => cb(null, 3)),
],
(err, results) => {
if (err) return reject(err);
try {
assert.deepStrictEqual(results, [1, 2, 3]);
resolve();
} catch (e) {
reject(e);
}
}
);
});
}
console.log('All contract tests passed successfully.');
}
runTests().catch((err) => {
console.error('Contract tests failed:', err);
process.exit(1);
});
오리진 시더
익명