1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/usr/bin/env node
- /// Usage: oe-npm-cache <cache-dir> <type> <key> <file-name>
- /// <type> ... meta - metainformation about package
- /// tgz - tarball
- const process = require("node:process");
- module.paths.unshift("@@libdir@@/node_modules/npm/node_modules");
- const cacache = require('cacache')
- const fs = require('fs')
- // argv[0] is 'node', argv[1] is this script
- const cache_dir = process.argv[2]
- const type = process.argv[3]
- const key = process.argv[4]
- const file = process.argv[5]
- const data = fs.readFileSync(file)
- // metadata content is highly nodejs dependent; when cache entries are not
- // found, place debug statements in 'make-fetch-happen/lib/cache/policy.js'
- // (CachePolicy::satisfies())
- const xlate = {
- 'meta': {
- 'key_prefix': 'make-fetch-happen:request-cache:',
- 'metadata': function() {
- return {
- time: Date.now(),
- url: key,
- reqHeaders: {
- 'accept': 'application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*',
- },
- resHeaders: {
- "content-type": "application/json",
- "status": 200,
- },
- options: {
- compress: true,
- }
- };
- },
- },
- 'tgz': {
- 'key_prefix': 'make-fetch-happen:request-cache:',
- 'metadata': function() {
- return {
- time: Date.now(),
- url: key,
- reqHeaders: {
- 'accept': '*/*',
- },
- resHeaders: {
- "content-type": "application/octet-stream",
- "status": 200,
- },
- options: {
- compress: true,
- },
- };
- },
- },
- };
- const info = xlate[type];
- let opts = {}
- if (info.metadata) {
- opts['metadata'] = info.metadata();
- }
- cacache.put(cache_dir, info.key_prefix + key, data, opts)
- .then(integrity => {
- console.log(`Saved content of ${key} (${file}).`);
- })
|