MCPcopy Index your code
hub / github.com/ocsjs/ocsjs / createUserScriptMetadata

Function createUserScriptMetadata

packages/utils/src/common/script.builder.ts:68–87  ·  view source on GitHub ↗
(formatter: MetaDataFormatter, metadata: Metadata)

Source from the content-addressed store, hash-verified

66 * @returns
67 */
68export function createUserScriptMetadata(formatter: MetaDataFormatter, metadata: Metadata) {
69 const contents = [];
70 // 最长字段
71 const maxLength = Object.keys(metadata).reduce<number>((pre, cur) => Math.max(cur.length, pre), 0);
72
73 const lineBuilder = (key: string, value: string) =>
74 [formatter.symbol, key.padEnd(maxLength, ' '), formatter.gap, value || ''].join('');
75
76 for (const key in metadata) {
77 if (Object.prototype.hasOwnProperty.call(metadata, key)) {
78 const element = metadata[key];
79 if (Array.isArray(element)) {
80 contents.push(...element.map((el) => lineBuilder(key, el)));
81 } else {
82 contents.push(lineBuilder(key, element));
83 }
84 }
85 }
86 return [formatter.header, ...contents, formatter.footer].map((line) => formatter.prefix + line).join('\n');
87}
88
89/**
90 * 解析脚本头部信息

Callers 1

createUserScriptFunction · 0.85

Calls 2

lineBuilderFunction · 0.85
maxMethod · 0.80

Tested by

no test coverage detected