Mirror: The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.
at main 1.8 kB view raw
1#!/usr/bin/env node 2 3import glob from 'glob'; 4import { execa } from 'execa'; 5 6import { 7 getPackageManifest, 8 updatePackageManifest, 9 listPackages, 10} from '../actions/lib/packages.mjs'; 11import { updateJsr } from './jsr.mjs'; 12 13const versionRe = /^\d+\.\d+\.\d+/i; 14const execaOpts = { stdio: 'inherit' }; 15 16await execa('changeset', ['version'], execaOpts); 17await execa('pnpm', ['install', '--lockfile-only'], execaOpts); 18 19const packages = (await listPackages()).reduce((map, dir) => { 20 const manifest = getPackageManifest(dir); 21 const versionMatch = manifest.version.match(versionRe); 22 if (versionMatch) { 23 const { name } = manifest; 24 const version = `^${versionMatch[0]}`; 25 map[name] = version; 26 } 27 return map; 28}, {}); 29 30const examples = (await glob('./examples/*/')).filter( 31 x => !/node_modules$/.test(x) 32); 33for (const example of examples) { 34 let hadMatch = false; 35 36 const manifest = getPackageManifest(example); 37 38 if (manifest.dependencies) { 39 for (const name in manifest.dependencies) { 40 hadMatch = hadMatch || !!packages[name]; 41 if (packages[name] && packages[name] !== manifest.dependencies) 42 manifest.dependencies[name] = packages[name]; 43 } 44 } 45 46 if (manifest.devDependencies) { 47 for (const name in manifest.devDependencies) { 48 hadMatch = hadMatch || !!packages[name]; 49 if (packages[name] && packages[name] !== manifest.devDependencies) 50 manifest.devDependencies[name] = packages[name]; 51 } 52 } 53 54 if ( 55 hadMatch && 56 !(manifest.devDependencies || {})['@urql/core'] && 57 !(manifest.dependencies || {})['@urql/core'] 58 ) { 59 (manifest.dependencies || manifest.devDependencies || {})['@urql/core'] = 60 packages['@urql/core']; 61 } 62 63 await updatePackageManifest(example, manifest); 64} 65 66await updateJsr();