feat: initialize XAS test console with native execution
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
export function parseLines(value) {
|
||||
return value.split(/\r?\n/).map(line => line.trim()).filter(Boolean);
|
||||
}
|
||||
|
||||
export function parseArgs(value) {
|
||||
if (!value.trim().startsWith('[')) return parseLines(value);
|
||||
let args;
|
||||
try { args = JSON.parse(value); }
|
||||
catch { throw new Error('参数 JSON 格式不正确,请填写字符串数组。'); }
|
||||
if (!Array.isArray(args) || args.some(arg => typeof arg !== 'string')) {
|
||||
throw new Error('参数必须是 JSON 字符串数组,或每行一个参数。');
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
export function appendLog(previous, incoming, limit = 240000) {
|
||||
const all = previous + incoming;
|
||||
return {text: all.slice(-limit), trimmed: all.length > limit};
|
||||
}
|
||||
|
||||
export function requestId() {
|
||||
if (typeof crypto.randomUUID === 'function') return crypto.randomUUID();
|
||||
// LAN HTTP can lack randomUUID; getRandomValues remains available there.
|
||||
const bytes = crypto.getRandomValues(new Uint8Array(16));
|
||||
bytes[6] = (bytes[6] & 15) | 64;
|
||||
bytes[8] = (bytes[8] & 63) | 128;
|
||||
const hex = Array.from(bytes, byte => byte.toString(16).padStart(2, '0')).join('');
|
||||
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
||||
}
|
||||
Reference in New Issue
Block a user