Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,14 @@
},
"libpg-query": {
"host": "https://cdn.npmmirror.com/binaries"
},
"@lvce-editor/ripgrep": {
"replaceHostFiles": [
"src/downloadRipGrep.js"
],
"replaceHostMap": {
"https://github.com/microsoft/ripgrep-prebuilt/releases/download/": "https://cdn.npmmirror.com/binaries/ripgrep-prebuilt/"
}
}
}
}
Expand Down
4 changes: 4 additions & 0 deletions test/fixtures/@lvce-editor/ripgrep/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "@lvce-editor/ripgrep",
"version": "1.0.0"
}
4 changes: 4 additions & 0 deletions test/fixtures/@lvce-editor/ripgrep/src/downloadRipGrep.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// Example URL construction similar to the actual package
const url = 'https://github.com/microsoft/ripgrep-prebuilt/releases/download/v13.0.0-10/ripgrep-v13.0.0-10-x86_64-pc-windows-msvc.zip';

module.exports.url = url;
28 changes: 28 additions & 0 deletions test/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ describe('test/index.test.js', () => {
await fs.mkdir(path.join(fixtures, 'canvas'), { recursive: true });
await fs.mkdir(path.join(fixtures, 'cwebp-bin'), { recursive: true });
await fs.mkdir(path.join(fixtures, 'sqlite3'), { recursive: true });
await fs.mkdir(path.join(fixtures, '@lvce-editor/ripgrep/src'), { recursive: true });
setGlobalDispatcher(mockAgent);
});

Expand All @@ -30,6 +31,9 @@ describe('test/index.test.js', () => {
assert.equal(mirrors.china.fsevents.host, 'https://cdn.npmmirror.com/binaries/fsevents');
assert.equal(mirrors.china['flow-bin'].host, 'https://cdn.npmmirror.com/binaries/flow/v');
assert.equal(mirrors.china.ENVS.CHROMEDRIVER_CDNURL, 'https://cdn.npmmirror.com/binaries/chromedriver');
assert.deepEqual(mirrors.china['@lvce-editor/ripgrep'].replaceHostMap, {
'https://github.com/microsoft/ripgrep-prebuilt/releases/download/': 'https://cdn.npmmirror.com/binaries/ripgrep-prebuilt/',
});
});

describe('failure', () => {
Expand Down Expand Up @@ -349,6 +353,30 @@ describe('test/index.test.js', () => {
assert.match(latestFileIndex, /https:\/\/cdn.npmmirror.com\/binaries\/cwebp-bin/);
assert.match(latestFileInstall, /https:\/\/cdn.npmmirror.com\/binaries\/cwebp-bin/);
});

it('should work with @lvce-editor/ripgrep', async () => {
const mirrorConfig = new MirrorConfig({
console: globalThis.console,
});
await mirrorConfig.init();

const pkg = {
name: '@lvce-editor/ripgrep',
version: '1.0.0',
};

const downloadRipGrepPath = path.join(fixtures, '@lvce-editor/ripgrep/src/downloadRipGrep.js');
const originalContent = await fs.readFile(downloadRipGrepPath, 'utf8');

await mirrorConfig.updatePkg(path.join(fixtures, '@lvce-editor/ripgrep'), pkg);

const modifiedContent = await fs.readFile(downloadRipGrepPath, 'utf8');
assert.match(modifiedContent, /https:\/\/cdn\.npmmirror\.com\/binaries\/ripgrep-prebuilt\//);
assert.doesNotMatch(modifiedContent, /https:\/\/github\.com\/microsoft\/ripgrep-prebuilt\/releases\/download\//);

// Restore original file
await fs.writeFile(downloadRipGrepPath, originalContent, 'utf8');
});
});
});
});