onecore 0.0.41 → 0.0.43

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/lib/index.js CHANGED
@@ -32,6 +32,14 @@ var ViewManager = (function () {
32
32
  return ViewManager;
33
33
  }());
34
34
  exports.ViewManager = ViewManager;
35
+ var DefaultViewService = (function (_super) {
36
+ __extends(DefaultViewService, _super);
37
+ function DefaultViewService() {
38
+ return _super !== null && _super.apply(this, arguments) || this;
39
+ }
40
+ return DefaultViewService;
41
+ }(ViewManager));
42
+ exports.DefaultViewService = DefaultViewService;
35
43
  var ViewSearchManager = (function (_super) {
36
44
  __extends(ViewSearchManager, _super);
37
45
  function ViewSearchManager(find, repo) {
@@ -86,6 +94,30 @@ var GenericManager = (function (_super) {
86
94
  return GenericManager;
87
95
  }(ViewManager));
88
96
  exports.GenericManager = GenericManager;
97
+ var DefaultGenericService = (function (_super) {
98
+ __extends(DefaultGenericService, _super);
99
+ function DefaultGenericService() {
100
+ return _super !== null && _super.apply(this, arguments) || this;
101
+ }
102
+ return DefaultGenericService;
103
+ }(GenericManager));
104
+ exports.DefaultGenericService = DefaultGenericService;
105
+ var DefaultService = (function (_super) {
106
+ __extends(DefaultService, _super);
107
+ function DefaultService() {
108
+ return _super !== null && _super.apply(this, arguments) || this;
109
+ }
110
+ return DefaultService;
111
+ }(GenericManager));
112
+ exports.DefaultService = DefaultService;
113
+ var DefaultGenericSearchService = (function (_super) {
114
+ __extends(DefaultGenericSearchService, _super);
115
+ function DefaultGenericSearchService() {
116
+ return _super !== null && _super.apply(this, arguments) || this;
117
+ }
118
+ return DefaultGenericSearchService;
119
+ }(GenericManager));
120
+ exports.DefaultGenericSearchService = DefaultGenericSearchService;
89
121
  var Manager = (function (_super) {
90
122
  __extends(Manager, _super);
91
123
  function Manager(find, repo) {
@@ -100,16 +132,20 @@ var Manager = (function (_super) {
100
132
  return Manager;
101
133
  }(GenericManager));
102
134
  exports.Manager = Manager;
103
- exports.DefaultViewService = ViewManager;
104
- exports.DefaultGenericService = GenericManager;
105
- exports.GenericSearchManager = Manager;
106
- exports.DefaultService = GenericManager;
107
- exports.DefaultGenericSearchService = GenericManager;
135
+ var GenericSearchManager = (function (_super) {
136
+ __extends(GenericSearchManager, _super);
137
+ function GenericSearchManager() {
138
+ return _super !== null && _super.apply(this, arguments) || this;
139
+ }
140
+ return GenericSearchManager;
141
+ }(Manager));
142
+ exports.GenericSearchManager = GenericSearchManager;
108
143
  var SavedService = (function () {
109
- function SavedService(repository, query, max) {
144
+ function SavedService(repository, query, max, autoRemove) {
110
145
  this.repository = repository;
111
146
  this.query = query;
112
147
  this.max = max;
148
+ this.autoRemove = autoRemove;
113
149
  this.load = this.load.bind(this);
114
150
  this.save = this.save.bind(this);
115
151
  this.remove = this.remove.bind(this);
@@ -136,9 +172,17 @@ var SavedService = (function () {
136
172
  else {
137
173
  items.push(itemId);
138
174
  if (items.length > _this.max) {
139
- items.shift();
175
+ if (_this.autoRemove) {
176
+ items.shift();
177
+ return _this.repository.update(id, items);
178
+ }
179
+ else {
180
+ return Promise.resolve(-1);
181
+ }
182
+ }
183
+ else {
184
+ return _this.repository.update(id, items);
140
185
  }
141
- return _this.repository.update(id, items);
142
186
  }
143
187
  }
144
188
  });
@@ -165,3 +209,11 @@ var SavedService = (function () {
165
209
  return SavedService;
166
210
  }());
167
211
  exports.SavedService = SavedService;
212
+ var SavedManager = (function (_super) {
213
+ __extends(SavedManager, _super);
214
+ function SavedManager() {
215
+ return _super !== null && _super.apply(this, arguments) || this;
216
+ }
217
+ return SavedManager;
218
+ }(SavedService));
219
+ exports.SavedManager = SavedManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "onecore",
3
- "version": "0.0.41",
3
+ "version": "0.0.43",
4
4
  "description": "onecore",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
package/src/db.ts CHANGED
@@ -3,6 +3,9 @@ export interface Statement {
3
3
  query: string;
4
4
  params?: any[];
5
5
  }
6
+ export interface QueryBuilder {
7
+ build(cxt?: any): Promise<Statement>;
8
+ }
6
9
  export interface SimpleDB {
7
10
  driver: string;
8
11
  query<T>(sql: string): Promise<T[]>;
package/src/index.ts CHANGED
@@ -80,6 +80,18 @@ export interface ImportService {
80
80
  export interface Importer {
81
81
  import(): Promise<ImportResult>;
82
82
  }
83
+ export interface Parser<T> {
84
+ parse: (data: string) => Promise<T>;
85
+ }
86
+ export interface Transformer<T> {
87
+ transform: (data: string) => Promise<T>;
88
+ }
89
+ export interface ExportService {
90
+ export(ctx?: any): Promise<number>;
91
+ }
92
+ export interface Exporter {
93
+ export(ctx?: any): Promise<number>;
94
+ }
83
95
  export class ViewManager<T, ID> implements ViewService<T, ID> {
84
96
  constructor(private r: ViewRepository<T, ID>) {
85
97
  this.metadata = this.metadata.bind(this);
@@ -96,6 +108,10 @@ export class ViewManager<T, ID> implements ViewService<T, ID> {
96
108
  return this.r.load(id, ctx);
97
109
  }
98
110
  }
111
+ // tslint:disable-next-line:max-classes-per-file
112
+ export class DefaultViewService<T, ID> extends ViewManager<T, ID> {
113
+ }
114
+
99
115
  // tslint:disable-next-line:max-classes-per-file
100
116
  export class ViewSearchManager<T, ID, F extends Filter> extends ViewManager<T, ID> implements ViewSearchService<T, ID, F> {
101
117
  constructor(public find: Search<T, F>, repo: ViewRepository<T, ID>) {
@@ -139,6 +155,15 @@ export class GenericManager<T, ID> extends ViewManager<T, ID> implements Generic
139
155
  }
140
156
  }
141
157
  // tslint:disable-next-line:max-classes-per-file
158
+ export class DefaultGenericService<T, ID> extends GenericManager<T, ID> {
159
+ }
160
+ // tslint:disable-next-line:max-classes-per-file
161
+ export class DefaultService<T, ID> extends GenericManager<T, ID> {
162
+ }
163
+ // tslint:disable-next-line:max-classes-per-file
164
+ export class DefaultGenericSearchService<T, ID> extends GenericManager<T, ID> {
165
+ }
166
+ // tslint:disable-next-line:max-classes-per-file
142
167
  export class Manager<T, ID, F extends Filter> extends GenericManager<T, ID> implements GenericSearchService<T, ID, number, F> {
143
168
  constructor(public find: Search<T, F>, repo: GenericRepository<T, ID>) {
144
169
  super(repo);
@@ -148,11 +173,9 @@ export class Manager<T, ID, F extends Filter> extends GenericManager<T, ID> impl
148
173
  return this.find(s, limit, offset, fields);
149
174
  }
150
175
  }
151
- export const DefaultViewService = ViewManager;
152
- export const DefaultGenericService = GenericManager;
153
- export const GenericSearchManager = Manager;
154
- export const DefaultService = GenericManager;
155
- export const DefaultGenericSearchService = GenericManager;
176
+ // tslint:disable-next-line:max-classes-per-file
177
+ export class GenericSearchManager<T, ID, F extends Filter> extends Manager<T, ID, F> {
178
+ }
156
179
  export interface SavedRepository<ID> {
157
180
  load(id: ID): Promise<string[]|null>;
158
181
  insert(id: ID, arr: string[]): Promise<number>;
@@ -160,7 +183,7 @@ export interface SavedRepository<ID> {
160
183
  }
161
184
  // tslint:disable-next-line:max-classes-per-file
162
185
  export class SavedService<ID, T> {
163
- constructor(protected repository: SavedRepository<ID>, protected query: (ids: string[]) => Promise<T[]>, public max: number) {
186
+ constructor(protected repository: SavedRepository<ID>, protected query: (ids: string[]) => Promise<T[]>, public max: number, public autoRemove?: boolean) {
164
187
  this.load = this.load.bind(this);
165
188
  this.save = this.save.bind(this);
166
189
  this.remove = this.remove.bind(this);
@@ -183,9 +206,15 @@ export class SavedService<ID, T> {
183
206
  } else {
184
207
  items.push(itemId);
185
208
  if (items.length > this.max) {
186
- items.shift();
209
+ if (this.autoRemove) {
210
+ items.shift();
211
+ return this.repository.update(id, items);
212
+ } else {
213
+ return Promise.resolve(-1);
214
+ }
215
+ } else {
216
+ return this.repository.update(id, items);
187
217
  }
188
- return this.repository.update(id, items);
189
218
  }
190
219
  }
191
220
  });
@@ -207,3 +236,6 @@ export class SavedService<ID, T> {
207
236
  });
208
237
  }
209
238
  }
239
+ // tslint:disable-next-line:max-classes-per-file
240
+ export class SavedManager<ID, T> extends SavedService<ID, T> {
241
+ }
package/src/metadata.ts CHANGED
@@ -50,6 +50,7 @@ export interface Attribute {
50
50
  typeof?: Attributes;
51
51
  true?: string|number;
52
52
  false?: string|number;
53
+ getString?: (v: any) => string;
53
54
  }
54
55
  export interface Attributes {
55
56
  [key: string]: Attribute;