fix(core): update

This commit is contained in:
Philipp Kunz 2021-04-19 12:12:48 +00:00
parent ea6c514a40
commit 17eda1e56a
2 changed files with 28 additions and 2 deletions

View File

@ -49,7 +49,8 @@ tap.test('should download a package from the registry', async () => {
); );
}); });
tap.test('should extract a package using tarStream', async () => { tap.test('should extract a package using tarStream', async (tools) => {
const done = tools.defer();
const testSmartarchive = new smartarchive.SmartArchive(); const testSmartarchive = new smartarchive.SmartArchive();
const testTgzBuffer = ( const testTgzBuffer = (
await testPlugins.smartfile.Smartfile.fromFilePath( await testPlugins.smartfile.Smartfile.fromFilePath(
@ -61,8 +62,22 @@ tap.test('should extract a package using tarStream', async () => {
); );
const subscription = extractionFileObservable.subscribe(file => { const subscription = extractionFileObservable.subscribe(file => {
console.log(file.path); console.log(file.path);
}); });
await tools.delayFor(2000);
done.resolve();
await done.promise;
});
tap.test('should extract a file from url to replaySubject', async (tools) => {
const done = tools.defer();
const testSmartarchive = new smartarchive.SmartArchive();
const extractionFileObservable = await testSmartarchive.extractArchiveFromUrlToObservable('https://verdaccio.lossless.one/@pushrocks%2fwebsetup/-/websetup-2.0.14.tgz');
const subscription = extractionFileObservable.subscribe(file => {
console.log(file.path);
});
await tools.delayFor(2000);
done.resolve();
await done.promise;
}); });
tap.start(); tap.start();

View File

@ -78,4 +78,15 @@ export class SmartArchive {
intake.signalEnd(); intake.signalEnd();
return replaySubject; return replaySubject;
} }
/**
* extracts to Observable
*/
public async extractArchiveFromUrlToObservable(
urlArg: string
): Promise<plugins.smartrx.rxjs.ReplaySubject<plugins.smartfile.Smartfile>> {
const response = await plugins.smartrequest.getBinary(urlArg);
const replaySubject = this.extractArchiveFromBufferToObservable(response.body);
return replaySubject;
}
} }