MCPcopy
hub / github.com/google/gts / init

Function init

src/init.ts:305–362  ·  view source on GitHub ↗
(options: Options)

Source from the content-addressed store, hash-verified

303}
304
305export async function init(options: Options): Promise<boolean> {
306 let generatedPackageJson = false;
307 let packageJson;
308 try {
309 packageJson = await readJson('./package.json');
310 } catch (e) {
311 const err = e as Error & {code?: string};
312 if (err.code !== 'ENOENT') {
313 throw new Error(`Unable to open package.json file: ${err.message}`);
314 }
315 const generate = await query(
316 `${chalk.bold('package.json')} does not exist.`,
317 'Generate',
318 true,
319 options,
320 );
321
322 if (!generate) {
323 options.logger.log('Please run from a directory with your package.json.');
324 return false;
325 }
326
327 packageJson = DEFAULT_PACKAGE_JSON;
328 generatedPackageJson = true;
329 }
330
331 const [addedDeps, addedScripts] = await Promise.all([
332 addDependencies(packageJson, options),
333 addScripts(packageJson, options),
334 ]);
335 if (generatedPackageJson || addedDeps || addedScripts) {
336 await writePackageJson(packageJson, options);
337 } else {
338 options.logger.log('No edits needed in package.json.');
339 }
340 await Promise.all([
341 generateTsConfig(options),
342 generateESLintConfig(options),
343 generateESLintIgnore(options),
344 generatePrettierConfig(options),
345 generateEditorConfig(options),
346 ]);
347 await installDefaultTemplate(options);
348
349 // Run `npm install` after initial setup so `npm run lint` works right away.
350 if (!options.dryRun) {
351 // --ignore-scripts so that compilation doesn't happen because there's no
352 // source files yet.
353
354 cp.spawnSync(
355 getPkgManagerCommand(options.yarn),
356 ['install', '--ignore-scripts'],
357 {stdio: 'inherit'},
358 );
359 }
360
361 return true;
362}

Callers 1

runFunction · 0.90

Calls 11

getPkgManagerCommandFunction · 0.90
queryFunction · 0.85
addDependenciesFunction · 0.85
addScriptsFunction · 0.85
writePackageJsonFunction · 0.85
generateTsConfigFunction · 0.85
generateESLintConfigFunction · 0.85
generateESLintIgnoreFunction · 0.85
generatePrettierConfigFunction · 0.85
generateEditorConfigFunction · 0.85
installDefaultTemplateFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…