onecore 0.6.1 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "onecore",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "description": "onecore",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
package/src/db.ts CHANGED
@@ -17,9 +17,9 @@ interface StringMap {
17
17
  export interface Executor {
18
18
  driver: string
19
19
  param(i: number): string
20
- execute(sql: string, args?: any[], ctx?: any): Promise<number>
21
- executeBatch(statements: Statement[], firstSuccess?: boolean, ctx?: any): Promise<number>
22
- query<T>(sql: string, args?: any[], m?: StringMap, bools?: Attribute[], ctx?: any): Promise<T[]>
20
+ execute(sql: string, args?: any[]): Promise<number>
21
+ executeBatch(statements: Statement[], firstSuccess?: boolean): Promise<number>
22
+ query<T>(sql: string, args?: any[], m?: StringMap, bools?: Attribute[]): Promise<T[]>
23
23
  }
24
24
  export interface Transaction extends Executor {
25
25
  commit(): Promise<void>
package/src/formatter.ts CHANGED
@@ -24,8 +24,8 @@ export interface LocaleStringFormatter<T> {
24
24
  format(obj: T, locale: Locale): string;
25
25
  }
26
26
 
27
- export interface Formatter<T> {
28
- format(obj: T): T;
27
+ export interface Formatter<T, S> {
28
+ format(obj: T): S;
29
29
  }
30
30
  export interface LocaleFormatter<T> {
31
31
  format(obj: T, locale: Locale): T;
package/src/index.ts CHANGED
@@ -12,7 +12,7 @@ export * from './logger';
12
12
  export * from './io';
13
13
 
14
14
  import { GenericRepository, SearchRepository, GenericSearchRepository, Transaction } from './db';
15
- import { GenericSearchService, GenericService } from './service';
15
+ import { GenericSearchService, CRUDService } from './service';
16
16
  export * from './service';
17
17
 
18
18
  export * from './mail/model/AttachmentData';
@@ -200,7 +200,7 @@ export class UseCase<T, ID, F extends Filter> extends SearchWriter<T, F> impleme
200
200
  }
201
201
 
202
202
  // tslint:disable-next-line:max-classes-per-file
203
- export class GenericUseCase<T, ID> extends Writer<T> implements GenericService<T, ID, number> {
203
+ export class CRUDUseCase<T, ID> extends Writer<T> implements CRUDService<T, ID, number> {
204
204
  constructor(protected repository: GenericRepository<T, ID>) {
205
205
  super(repository);
206
206
  this.metadata = this.metadata.bind(this);
@@ -221,9 +221,9 @@ export class GenericUseCase<T, ID> extends Writer<T> implements GenericService<T
221
221
  return this.repository.delete(id);
222
222
  }
223
223
  }
224
- export const CRUDUseCase = GenericUseCase
225
- export const GenericManager = GenericUseCase
226
- export const CRUDManager = GenericUseCase
224
+ export const GenericUseCase = CRUDUseCase
225
+ export const GenericManager = CRUDUseCase
226
+ export const CRUDManager = CRUDUseCase
227
227
 
228
228
  export interface SavedRepository<UID, ID> {
229
229
  isSaved(userId: UID, id: ID): Promise<boolean>
package/src/io.ts CHANGED
@@ -7,10 +7,15 @@ export interface Transformer<T, S> {
7
7
  transform: (data: S) => Promise<T>
8
8
  }
9
9
 
10
- export interface ICSVFieldParser<T> {
10
+ export interface CSVFieldParser<T> {
11
11
  name: string
12
12
  toString(data: T, key: string, v: string): void
13
13
  }
14
+ export interface FixedLengthFieldParser<T> {
15
+ name: string
16
+ length: number
17
+ parse(data: T, key: string, v: string): void
18
+ }
14
19
 
15
20
  export interface Writer<T> {
16
21
  write: (obj: T) => Promise<number>
package/src/service.ts CHANGED
@@ -25,21 +25,26 @@ export interface QueryRepository<T, ID, F extends Filter> extends SearchService<
25
25
  load(id: ID): Promise<T|null>;
26
26
  }
27
27
 
28
+ export interface CRUDService<T, ID, R> extends ViewService<T, ID> {
29
+ create(obj: T): Promise<R>;
30
+ update(obj: T): Promise<R>;
31
+ patch(obj: Partial<T>): Promise<R>;
32
+ delete(id: ID): Promise<number>;
33
+ }
28
34
  export interface GenericService<T, ID, R> extends ViewService<T, ID> {
29
35
  create(obj: T): Promise<R>;
30
36
  update(obj: T): Promise<R>;
31
37
  patch(obj: Partial<T>): Promise<R>;
32
38
  delete(id: ID): Promise<number>;
33
39
  }
34
-
35
40
  export interface ViewSearchService<T, ID, F extends Filter>
36
41
  extends ViewService<T, ID>, SearchService<T, F> {
37
42
  }
38
43
 
39
44
  export interface GenericSearchService<T, ID, R, F extends Filter>
40
- extends GenericService<T, ID, R>, SearchService<T, F> {
45
+ extends CRUDService<T, ID, R>, SearchService<T, F> {
41
46
  }
42
47
 
43
48
  export interface Service<T, ID, F extends Filter>
44
- extends GenericService<T, ID, Result<T>>, SearchService<T, F> {
49
+ extends CRUDService<T, ID, Result<T>>, SearchService<T, F> {
45
50
  }
package/lib/index.js DELETED
@@ -1,84 +0,0 @@
1
- export class SearchUseCase {
2
- constructor(repository) {
3
- this.repository = repository;
4
- this.search = this.search.bind(this);
5
- }
6
- search(s, limit, page, fields) {
7
- return this.repository.search(s, limit, page, fields);
8
- }
9
- }
10
- export const SearchManager = SearchUseCase;
11
- export class Writer {
12
- constructor(repository) {
13
- this.repository = repository;
14
- this.create = this.create.bind(this);
15
- this.update = this.update.bind(this);
16
- this.patch = this.patch.bind(this);
17
- }
18
- create(obj) {
19
- return this.repository.create(obj);
20
- }
21
- update(obj) {
22
- return this.repository.update(obj);
23
- }
24
- patch(obj) {
25
- return (this.repository.patch ? this.repository.patch(obj) : Promise.resolve(-1));
26
- }
27
- }
28
- export class SearchWriter extends Writer {
29
- constructor(repository) {
30
- super(repository);
31
- this.repository = repository;
32
- this.search = this.search.bind(this);
33
- }
34
- search(s, limit, page, fields) {
35
- return this.repository.search(s, limit, page, fields);
36
- }
37
- }
38
- export class UseCase extends SearchWriter {
39
- constructor(repository) {
40
- super(repository);
41
- this.repository = repository;
42
- this.metadata = this.metadata.bind(this);
43
- this.keys = this.keys.bind(this);
44
- this.load = this.load.bind(this);
45
- this.delete = this.delete.bind(this);
46
- }
47
- metadata() {
48
- return (this.repository.metadata ? this.repository.metadata() : undefined);
49
- }
50
- keys() {
51
- return (this.repository.keys ? this.repository.keys() : []);
52
- }
53
- load(id) {
54
- return this.repository.load(id);
55
- }
56
- delete(id) {
57
- return this.repository.delete(id);
58
- }
59
- }
60
- export class GenericUseCase extends Writer {
61
- constructor(repository) {
62
- super(repository);
63
- this.repository = repository;
64
- this.metadata = this.metadata.bind(this);
65
- this.keys = this.keys.bind(this);
66
- this.load = this.load.bind(this);
67
- this.delete = this.delete.bind(this);
68
- }
69
- metadata() {
70
- return (this.repository.metadata ? this.repository.metadata() : undefined);
71
- }
72
- keys() {
73
- return (this.repository.keys ? this.repository.keys() : []);
74
- }
75
- load(id) {
76
- return this.repository.load(id);
77
- }
78
- delete(id) {
79
- return this.repository.delete(id);
80
- }
81
- }
82
- export const CRUDUseCase = GenericUseCase;
83
- export const GenericManager = GenericUseCase;
84
- export const CRUDManager = GenericUseCase;