Download scripts/bind_package_dependencies.js from Jimmi42/openCLI: direct link, hf CLI and curl.
- Browser
- Download file 1.51 kB
-
https://huggingface.co/Jimmi42/openCLI/resolve/main/scripts/bind_package_dependencies.js
- Command line
-
hf download hf://Jimmi42/openCLI/scripts/bind_package_dependencies.js
-
curl -L -o bind_package_dependencies.js https://huggingface.co/Jimmi42/openCLI/resolve/main/scripts/bind_package_dependencies.js
1.51 kB
| /** | |
| * @license | |
| * Copyright 2025 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import fs from 'node:fs'; | |
| import path from 'node:path'; | |
| import _ from 'lodash'; | |
| function bindPackageDependencies() { | |
| const scriptDir = process.cwd(); | |
| const currentPkgJsonPath = path.join(scriptDir, 'package.json'); | |
| const currentPkg = JSON.parse(fs.readFileSync(currentPkgJsonPath)); | |
| // assume packages are all under /<repo_root>/packages/ | |
| const packagesDir = path.join(path.dirname(scriptDir)); | |
| const geminiCodePkgs = fs | |
| .readdirSync(packagesDir) | |
| .filter( | |
| (name) => | |
| fs.statSync(path.join(packagesDir, name)).isDirectory() && | |
| fs.existsSync(path.join(packagesDir, name, 'package.json')), | |
| ) | |
| .map((packageDirname) => { | |
| const packageJsonPath = path.join( | |
| packagesDir, | |
| packageDirname, | |
| 'package.json', | |
| ); | |
| return JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); | |
| }) | |
| .reduce((pkgs, pkg) => ({ ...pkgs, [pkg.name]: pkg }), {}); | |
| currentPkg.dependencies = _.mapValues( | |
| currentPkg.dependencies, | |
| (value, key) => { | |
| if (geminiCodePkgs[key]) { | |
| console.log( | |
| `Package ${currentPkg.name} has a dependency on ${key}. Updating dependent version.`, | |
| ); | |
| return geminiCodePkgs[key].version; | |
| } | |
| return value; | |
| }, | |
| ); | |
| const updatedPkgJson = JSON.stringify(currentPkg, null, 2) + '\n'; | |
| fs.writeFileSync(currentPkgJsonPath, updatedPkgJson); | |
| } | |
| bindPackageDependencies(); | |