(item: Touch)
| 81 | } |
| 82 | |
| 83 | async function entryCore(item: Touch): Promise<Core> { |
| 84 | const spec = item.spec |
| 85 | const target = item.target |
| 86 | const source = pluginSource(spec) |
| 87 | if (source === "file") { |
| 88 | const file = fileTarget(spec, target) |
| 89 | return { |
| 90 | id: item.id, |
| 91 | source, |
| 92 | spec, |
| 93 | target, |
| 94 | modified: file ? await modifiedAt(file) : undefined, |
| 95 | } |
| 96 | } |
| 97 | |
| 98 | return { |
| 99 | id: item.id, |
| 100 | source, |
| 101 | spec, |
| 102 | target, |
| 103 | requested: parsePluginSpecifier(spec).version, |
| 104 | version: await npmVersion(target), |
| 105 | } |
| 106 | } |
| 107 | |
| 108 | function fingerprint(value: Core) { |
| 109 | if (value.source === "file") return [value.target, value.modified ?? ""].join("|") |
no test coverage detected