MCPcopy Create free account
hub / github.com/MoonshotAI/kimi-code / collectPackageFiles

Function collectPackageFiles

apps/kimi-code/scripts/native/assets.mjs:158–199  ·  view source on GitHub ↗
({
  packageName,
  packageRoot,
  includeNativeFiles,
  includeEntryJs = true,
  nativeFileRelatives = [],
})

Source from the content-addressed store, hash-verified

156}
157
158async function collectPackageFiles({
159 packageName,
160 packageRoot,
161 includeNativeFiles,
162 includeEntryJs = true,
163 nativeFileRelatives = [],
164}) {
165 const packageJsonPath = join(packageRoot, 'package.json');
166 const packageJson = await readJson(packageJsonPath);
167 const selected = new Set([packageJsonPath]);
168
169 if (includeEntryJs) {
170 const entry = resolvePackageEntry(packageRoot, packageJson);
171 if (entry !== null) {
172 selected.add(entry);
173 await addRuntimeDependencyFiles(packageRoot, entry, selected);
174 }
175 }
176
177 for (const nativeFileRelative of nativeFileRelatives) {
178 const nativeFile = resolve(packageRoot, nativeFileRelative);
179 if (!existsSync(nativeFile)) {
180 fail(`Native package ${packageName} does not contain ${nativeFileRelative} at ${packageRoot}`);
181 }
182 selected.add(nativeFile);
183 }
184
185 if (includeNativeFiles) {
186 const files = await listFiles(packageRoot);
187 for (const file of files) {
188 if (file.endsWith('.node')) {
189 selected.add(file);
190 }
191 }
192 }
193
194 const sorted = [...selected].sort((a, b) => a.localeCompare(b));
195 if (includeNativeFiles && !sorted.some((file) => file.endsWith('.node'))) {
196 fail(`Native package ${packageName} does not contain a .node file at ${packageRoot}`);
197 }
198 return sorted;
199}
200
201async function packageManifestEntries({ packageName, packageRoot, files, target }) {
202 const root = `node_modules/${packageName}`;

Callers 1

collectNativeAssetsFunction · 0.85

Calls 7

resolvePackageEntryFunction · 0.85
readJsonFunction · 0.70
failFunction · 0.70
listFilesFunction · 0.70
addMethod · 0.65
resolveFunction · 0.50

Tested by

no test coverage detected