MCPcopy Create free account
hub / github.com/adobe/react-spectrum / migratePackage

Function migratePackage

scripts/migrateDeps.mjs:348–413  ·  view source on GitHub ↗
(scope, name, monopackage)

Source from the content-addressed store, hash-verified

346}
347
348function migratePackage(scope, name, monopackage) {
349 let packageJSON = JSON.parse(fs.readFileSync(`packages/${scope}/${name}/package.json`, 'utf8'));
350 let monopackageJSON = JSON.parse(fs.readFileSync(`packages/${monopackage}/package.json`, 'utf8'));
351
352 // Move files
353 moveTree(scope, name, 'src', monopackage);
354 moveTree(scope, name, 'test', monopackage);
355 moveTree(scope, name, 'stories', monopackage);
356 moveTree(scope, name, 'chromatic', monopackage);
357 moveTree(scope, name, 'chromatic-fc', monopackage);
358 moveTree(scope, name, 'docs', monopackage);
359 moveTree(scope, name, 'intl', monopackage);
360
361 for (let dep in packageJSON.dependencies || {}) {
362 let depScope = dep.match(/@(react-aria|react-spectrum|react-stately)/);
363 if (!depScope && !monopackageJSON.dependencies[dep]) {
364 monopackageJSON.dependencies[dep] = packageJSON.dependencies[dep];
365 } else if (depScope && depScope[0] !== scope && !monopackageJSON.dependencies[depScope[1]]) {
366 monopackageJSON.dependencies[depScope[1]] = JSON.parse(
367 fs.readFileSync(`packages/${depScope[1]}/package.json`, 'utf8')
368 ).version;
369 }
370
371 if (depScope) {
372 let p = depScope[1] === 'react-spectrum' ? '@adobe/react-spectrum' : depScope[1];
373 if (!packageJSON.dependencies[p]) {
374 packageJSON.dependencies[p] =
375 '^' + JSON.parse(fs.readFileSync(`packages/${p}/package.json`, 'utf8')).version;
376 }
377 delete packageJSON.dependencies[dep];
378 }
379 }
380
381 fs.writeFileSync(
382 `packages/${monopackage}/package.json`,
383 JSON.stringify(monopackageJSON, false, 2) + '\n'
384 );
385
386 packageJSON.source = 'src/index.ts';
387 packageJSON.dependencies[monopackage] = '^' + monopackageJSON.version;
388 packageJSON.targets = {
389 types: false // TODO: i18n package
390 };
391
392 if (!packageJSON.exports['.']) {
393 packageJSON.exports = {
394 '.': {...packageJSON.exports}
395 };
396 }
397 packageJSON.exports['./package.json'] = './package.json';
398
399 Object.assign((packageJSON.peerDependencies ??= {}), {
400 react: '^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1',
401 'react-dom': '^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1'
402 });
403
404 delete packageJSON.peerDependencies['@react-spectrum/provider'];
405

Callers 1

migrateScopeFunction · 0.85

Calls 3

moveTreeFunction · 0.85
createPublicExportsFunction · 0.85
parseMethod · 0.45

Tested by

no test coverage detected