MCPcopy Create free account
hub / github.com/deepnote/vscode-deepnote / hasNativeDependencies

Function hasNativeDependencies

gulpfile.js:227–251  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

225}
226
227function hasNativeDependencies() {
228 let nativeDependencies = nativeDependencyChecker.check(path.join(__dirname, 'node_modules'));
229 if (!Array.isArray(nativeDependencies) || nativeDependencies.length === 0) {
230 return false;
231 }
232 const dependencies = JSON.parse(spawn.sync('npm', ['ls', '--json', '--prod']).stdout.toString());
233 const jsonProperties = Object.keys(flat.flatten(dependencies));
234 nativeDependencies = nativeDependencies
235 .flatMap((item) =>
236 path.dirname(item.substring(item.indexOf('node_modules') + 'node_modules'.length)).split(path.sep)
237 )
238 .filter((item) => item.length > 0)
239 .filter((item) => !item.includes('zeromq') && !item.includes('canvas') && !item.includes('keytar')) // Known native modules
240 .filter(
241 (item) =>
242 jsonProperties.findIndex((flattenedDependency) =>
243 flattenedDependency.endsWith(`dependencies.${item}.version`)
244 ) >= 0
245 );
246 if (nativeDependencies.length > 0) {
247 console.error('Native dependencies detected', nativeDependencies);
248 return true;
249 }
250 return false;
251}
252
253async function generateTelemetry() {
254 const generator = await import('./out/telemetryGenerator.node.js');

Callers 1

gulpfile.jsFile · 0.85

Calls 7

joinMethod · 0.80
filterMethod · 0.80
parseMethod · 0.65
toStringMethod · 0.65
dirnameMethod · 0.65
errorMethod · 0.65
keysMethod · 0.45

Tested by

no test coverage detected