Skip to content

Commit f55302b

Browse files
@jotadevelopersergiohgz
authored andcommitted
feat: local database method are async
1 parent f63823d commit f55302b

File tree

4 files changed

+51
-26
lines changed

4 files changed

+51
-26
lines changed

plugins/memory/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"@commitlint/cli": "6.0.2",
2424
"@commitlint/config-conventional": "6.0.4",
2525
"@commitlint/travis-cli": "6.0.2",
26-
"@verdaccio/types": "0.2.4",
26+
"@verdaccio/types": "2.1.0",
2727
"babel-cli": "6.26.0",
2828
"babel-core": "6.26.0",
2929
"babel-eslint": "8.2.3",

plugins/memory/src/local-memory.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// @flow
22

33
import MemoryHandler from './memory-handler';
4-
import type { Logger } from '@verdaccio/types';
4+
import type { Logger, Callback } from '@verdaccio/types';
55
import type { ILocalData } from '@verdaccio/local-storage';
66

77
export type ConfigMemory = { limit?: number };
@@ -31,29 +31,33 @@ class LocalMemory implements ILocalData {
3131
this.data.secret = secret;
3232
}
3333

34-
add(name: string) {
34+
add(name: string, cb: Callback) {
3535
const { list } = this.data;
3636

3737
if (list.length < this.limit) {
3838
if (list.indexOf(name) === -1) {
3939
list.push(name);
4040
}
41+
cb(null);
4142
} else {
4243
this.logger.info({ limit: this.limit }, 'Storage memory has reached limit of @{limit} packages');
43-
return new Error('Storage memory has reached limit of limit packages');
44+
cb(new Error('Storage memory has reached limit of limit packages'));
4445
}
4546
}
4647

47-
remove(name: string) {
48+
remove(name: string, cb: Callback) {
4849
const { list } = this.data;
49-
const i = list.indexOf(name);
50-
if (i !== -1) {
51-
list.splice(i, 1);
50+
const item = list.indexOf(name);
51+
52+
if (item !== -1) {
53+
list.splice(item, 1);
5254
}
55+
56+
cb(null);
5357
}
5458

55-
get() {
56-
return this.data.list;
59+
get(cb: Callback) {
60+
cb(null, this.data.list);
5761
}
5862

5963
sync() {

plugins/memory/test/memory.spec.js

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,28 +26,49 @@ describe('memory unit test .', () => {
2626
expect(localMemory).toBeDefined();
2727
});
2828

29-
test('should create add a package', () => {
29+
test('should create add a package', done => {
3030
const localMemory: ILocalData = new LocalMemory(config, { logger });
31-
localMemory.add('test');
32-
33-
expect(localMemory.get()).toHaveLength(1);
31+
localMemory.add('test', err => {
32+
expect(err).toBeNull();
33+
localMemory.get((err, data) => {
34+
expect(err).toBeNull();
35+
expect(data).toHaveLength(1);
36+
done();
37+
});
38+
});
3439
});
3540

36-
test('should reach max limit', () => {
41+
test('should reach max limit', done => {
3742
config.limit = 2;
3843
const localMemory: ILocalData = new LocalMemory(config, { logger });
39-
expect(localMemory.add('test1')).toBeUndefined();
40-
expect(localMemory.add('test2')).toBeUndefined();
41-
expect(localMemory.add('test3')).not.toBeNull();
44+
45+
localMemory.add('test1', err => {
46+
expect(err).toBeNull();
47+
localMemory.add('test2', err => {
48+
expect(err).toBeNull();
49+
localMemory.add('test3', err => {
50+
expect(err).not.toBeNull();
51+
expect(err.message).toMatch(/Storage memory has reached limit of limit packages/);
52+
done();
53+
});
54+
});
55+
});
4256
});
4357

44-
test('should remove a package', () => {
58+
test('should remove a package', done => {
4559
const pkgName: string = 'test';
4660
const localMemory: ILocalData = new LocalMemory(config, { logger });
47-
localMemory.add(pkgName);
48-
localMemory.remove(pkgName);
49-
50-
expect(localMemory.get()).toHaveLength(0);
61+
localMemory.add(pkgName, err => {
62+
expect(err).toBeNull();
63+
localMemory.remove(pkgName, err => {
64+
expect(err).toBeNull();
65+
localMemory.get((err, data) => {
66+
expect(err).toBeNull();
67+
expect(data).toHaveLength(0);
68+
done();
69+
});
70+
});
71+
});
5172
});
5273
});
5374

plugins/memory/yarn.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,9 @@
218218
version "1.0.0"
219219
resolved "https://registry.npmjs.org/@verdaccio/streams/-/streams-1.0.0.tgz#d5d24c6747208728b9fd16b908e3932c3fb1f864"
220220

221-
"@verdaccio/types@0.2.4":
222-
version "2.0.5"
223-
resolved "https://registry.npmjs.org/@verdaccio/types/-/types-2.0.5.tgz#a35682b0268a242c5fefded54f79a6b4d34dfa88"
221+
"@verdaccio/types@2.1.0":
222+
version "2.1.0"
223+
resolved "https://registry.npmjs.org/@verdaccio/types/-/types-2.1.0.tgz#1a0b330f96bc63fbc87391c2b5c625fd3be5da84"
224224

225225
JSONStream@^1.0.4:
226226
version "1.3.2"

0 commit comments

Comments
 (0)