couchset 0.0.17 → 0.2.0

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.
Files changed (70) hide show
  1. package/dist/config/index.d.ts +0 -1
  2. package/dist/config/index.js +1 -3
  3. package/dist/config/index.js.map +1 -1
  4. package/dist/connection.d.ts +1 -1
  5. package/dist/connection.js +6 -27
  6. package/dist/connection.js.map +1 -1
  7. package/dist/couchbase.d.ts +2 -0
  8. package/dist/couchbase.js +13 -0
  9. package/dist/couchbase.js.map +1 -0
  10. package/dist/index.d.ts +0 -2
  11. package/dist/index.js +1 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/model/index.d.ts +1 -8
  14. package/dist/model/index.js +2 -11
  15. package/dist/model/index.js.map +1 -1
  16. package/dist/pagination/pagination.js +1 -1
  17. package/dist/query/interface/query.types.d.ts +22 -22
  18. package/dist/query/query.cluster.d.ts +1 -1
  19. package/dist/query/query.cluster.js +1 -1
  20. package/dist/query/query.cluster.js.map +1 -1
  21. package/dist/search/customQuery.js +1 -1
  22. package/dist/shared/common.model.d.ts +0 -28
  23. package/dist/shared/common.model.js +5 -86
  24. package/dist/shared/common.model.js.map +1 -1
  25. package/dist/shared/index.d.ts +0 -1
  26. package/dist/shared/index.js +0 -1
  27. package/dist/shared/index.js.map +1 -1
  28. package/dist/utils/edge.d.ts +1 -0
  29. package/dist/utils/edge.js +16 -0
  30. package/dist/utils/edge.js.map +1 -0
  31. package/dist/utils/index.d.ts +1 -0
  32. package/dist/utils/index.js +1 -0
  33. package/dist/utils/index.js.map +1 -1
  34. package/dist/utils/lodash.d.ts +1 -0
  35. package/dist/utils/lodash.js +20 -0
  36. package/dist/utils/lodash.js.map +1 -0
  37. package/dist/utils/log.js +1 -2
  38. package/dist/utils/log.js.map +1 -1
  39. package/dist/utils/text.utils.d.ts +0 -6
  40. package/dist/utils/text.utils.js +1 -12
  41. package/dist/utils/text.utils.js.map +1 -1
  42. package/dist/utils/utils.schema.d.ts +1 -1
  43. package/package.json +5 -13
  44. package/dist/automate/index.d.ts +0 -4
  45. package/dist/automate/index.js +0 -21
  46. package/dist/automate/index.js.map +0 -1
  47. package/dist/automate/middlewares/blankMiddleware.d.ts +0 -8
  48. package/dist/automate/middlewares/blankMiddleware.js +0 -16
  49. package/dist/automate/middlewares/blankMiddleware.js.map +0 -1
  50. package/dist/automate/middlewares/index.d.ts +0 -2
  51. package/dist/automate/middlewares/index.js +0 -19
  52. package/dist/automate/middlewares/index.js.map +0 -1
  53. package/dist/automate/middlewares/isAuth.d.ts +0 -8
  54. package/dist/automate/middlewares/isAuth.js +0 -29
  55. package/dist/automate/middlewares/isAuth.js.map +0 -1
  56. package/dist/automate/model/client.d.ts +0 -12
  57. package/dist/automate/model/client.js +0 -33
  58. package/dist/automate/model/client.js.map +0 -1
  59. package/dist/automate/model/index.d.ts +0 -47
  60. package/dist/automate/model/index.js +0 -341
  61. package/dist/automate/model/index.js.map +0 -1
  62. package/dist/automate/morpheus/index.d.ts +0 -14
  63. package/dist/automate/morpheus/index.js +0 -171
  64. package/dist/automate/morpheus/index.js.map +0 -1
  65. package/dist/automate/writer/index.d.ts +0 -10
  66. package/dist/automate/writer/index.js +0 -72
  67. package/dist/automate/writer/index.js.map +0 -1
  68. package/dist/shared/ContextType.d.ts +0 -27
  69. package/dist/shared/ContextType.js +0 -55
  70. package/dist/shared/ContextType.js.map +0 -1
@@ -1,341 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
- return c > 3 && r && Object.defineProperty(target, key, r), r;
18
- };
19
- var __param = (this && this.__param) || function (paramIndex, decorator) {
20
- return function (target, key) { decorator(target, key, paramIndex); }
21
- };
22
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
23
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
24
- return new (P || (P = Promise))(function (resolve, reject) {
25
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
26
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
27
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
28
- step((generator = generator.apply(thisArg, _arguments || [])).next());
29
- });
30
- };
31
- var __generator = (this && this.__generator) || function (thisArg, body) {
32
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
33
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
34
- function verb(n) { return function (v) { return step([n, v]); }; }
35
- function step(op) {
36
- if (f) throw new TypeError("Generator is already executing.");
37
- while (_) try {
38
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
39
- if (y = 0, t) op = [op[0] & 2, t.value];
40
- switch (op[0]) {
41
- case 0: case 1: t = op; break;
42
- case 4: _.label++; return { value: op[1], done: false };
43
- case 5: _.label++; y = op[1]; op = [0]; continue;
44
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
45
- default:
46
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
47
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
48
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
49
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
50
- if (t[2]) _.ops.pop();
51
- _.trys.pop(); continue;
52
- }
53
- op = body.call(thisArg, _);
54
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
55
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
56
- }
57
- };
58
- var __read = (this && this.__read) || function (o, n) {
59
- var m = typeof Symbol === "function" && o[Symbol.iterator];
60
- if (!m) return o;
61
- var i = m.call(o), r, ar = [], e;
62
- try {
63
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
64
- }
65
- catch (error) { e = { error: error }; }
66
- finally {
67
- try {
68
- if (r && !r.done && (m = i["return"])) m.call(i);
69
- }
70
- finally { if (e) throw e.error; }
71
- }
72
- return ar;
73
- };
74
- var __importDefault = (this && this.__importDefault) || function (mod) {
75
- return (mod && mod.__esModule) ? mod : { "default": mod };
76
- };
77
- Object.defineProperty(exports, "__esModule", { value: true });
78
- exports.automateImplementation = void 0;
79
- /* eslint-disable @typescript-eslint/ban-ts-comment */
80
- var camelCase_1 = __importDefault(require("lodash/camelCase"));
81
- var pickBy_1 = __importDefault(require("lodash/pickBy"));
82
- var graphql_type_json_1 = __importDefault(require("graphql-type-json"));
83
- var lodash_1 = require("lodash");
84
- var type_graphql_1 = require("type-graphql");
85
- var utils_1 = require("../../utils");
86
- var middlewares_1 = require("../middlewares");
87
- var shared_1 = require("../../shared");
88
- var client_1 = require("./client");
89
- /**
90
- *
91
- * @param c
92
- * @returns
93
- */
94
- var automateImplementation = function (ClassModelType, options) {
95
- var _a, _b, _c, _d;
96
- // createUpdate
97
- var createUpdateOptions = options === null || options === void 0 ? void 0 : options.createUpdate;
98
- var createUpdateOptionsPublic = (_a = options === null || options === void 0 ? void 0 : options.createUpdate) === null || _a === void 0 ? void 0 : _a.public;
99
- // deleteById
100
- var deleteByIdOptions = options === null || options === void 0 ? void 0 : options.deleteById;
101
- var deleteByIdOptionsPublic = (_b = options === null || options === void 0 ? void 0 : options.deleteById) === null || _b === void 0 ? void 0 : _b.public;
102
- // getById
103
- var getByIdOptions = options === null || options === void 0 ? void 0 : options.getById;
104
- var getByIdOptionsPublic = (_c = options === null || options === void 0 ? void 0 : options.getById) === null || _c === void 0 ? void 0 : _c.public;
105
- // pagination
106
- var paginationOptions = options === null || options === void 0 ? void 0 : options.pagination;
107
- var paginationOptionsPublic = (_d = options === null || options === void 0 ? void 0 : options.pagination) === null || _d === void 0 ? void 0 : _d.public;
108
- var ClassModel = options.model;
109
- var name = ClassModelType.name;
110
- var _type = ClassModel.collectionName;
111
- var nameCamel = (0, camelCase_1.default)(name);
112
- // const nameSNAKE_CASE = toUpper(snakeCase(name));
113
- var modelKeys = Object.getOwnPropertyNames(new ClassModelType());
114
- var authMiddleware = options.authMiddleware || middlewares_1.isAuth;
115
- var blankMiddleware = [];
116
- var ClassResType = /** @class */ (function () {
117
- function ClassResType() {
118
- }
119
- __decorate([
120
- (0, type_graphql_1.Field)(function () { return Boolean; })
121
- ], ClassResType.prototype, "success", void 0);
122
- __decorate([
123
- (0, type_graphql_1.Field)(function () { return String; }, { nullable: true })
124
- ], ClassResType.prototype, "message", void 0);
125
- __decorate([
126
- (0, type_graphql_1.Field)(function (type) { return graphql_type_json_1.default; }, { nullable: true })
127
- ], ClassResType.prototype, "data", void 0);
128
- ClassResType = __decorate([
129
- (0, type_graphql_1.ObjectType)("".concat(nameCamel, "ResType"))
130
- ], ClassResType);
131
- return ClassResType;
132
- }());
133
- var PaginationClass = /** @class */ (function () {
134
- function PaginationClass() {
135
- this.items = [ClassModelType];
136
- this.hasNext = false;
137
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
138
- this.params = {};
139
- }
140
- __decorate([
141
- (0, type_graphql_1.Field)(function () { return [ClassModelType]; }, { nullable: true })
142
- ], PaginationClass.prototype, "items", void 0);
143
- __decorate([
144
- (0, type_graphql_1.Field)(function () { return Boolean; }, { nullable: true })
145
- ], PaginationClass.prototype, "hasNext", void 0);
146
- __decorate([
147
- (0, type_graphql_1.Field)(function (type) { return graphql_type_json_1.default; }, { nullable: true })
148
- ], PaginationClass.prototype, "params", void 0);
149
- PaginationClass = __decorate([
150
- (0, type_graphql_1.InputType)("".concat(nameCamel, "PaginationInput")),
151
- (0, type_graphql_1.ObjectType)("".concat(nameCamel, "Pagination"))
152
- ], PaginationClass);
153
- return PaginationClass;
154
- }());
155
- // return Pagination;
156
- var ResolverClass = /** @class */ (function () {
157
- function ResolverClass() {
158
- }
159
- ResolverClass.prototype[_e = "".concat(nameCamel, "Pagination")] = function (filter, sort, before, after, limitArg) {
160
- return __awaiter(this, void 0, void 0, function () {
161
- var limit, copyParams, bucket, query, _a, errorFetching, _b, data, _c, _d, rows, _j, options_1, dataToSend, error_1;
162
- return __generator(this, function (_k) {
163
- switch (_k.label) {
164
- case 0:
165
- limit = limitArg || 10;
166
- copyParams = (0, pickBy_1.default)({
167
- filter: filter,
168
- sort: sort,
169
- before: before,
170
- after: after,
171
- limit: limit,
172
- }, lodash_1.identity);
173
- (0, utils_1.log)("".concat(nameCamel, "Pagination -->"), copyParams);
174
- _k.label = 1;
175
- case 1:
176
- _k.trys.push([1, 5, , 6]);
177
- if (!(paginationOptions && paginationOptions.method)) return [3 /*break*/, 3];
178
- return [4 /*yield*/, paginationOptions.method(copyParams)];
179
- case 2: return [2 /*return*/, _k.sent()];
180
- case 3:
181
- bucket = ClassModel.getBucketName();
182
- query = "\n SELECT ".concat(modelKeys.join(','), "\n FROM `").concat(bucket, "` ").concat(nameCamel, "\n WHERE ").concat(nameCamel, "._type = \"").concat(_type, "\"\n LIMIT ").concat(limit, ";\n ");
183
- return [4 /*yield*/, (0, utils_1.awaitTo)(ClassModel.customQuery({
184
- limit: limit,
185
- query: query,
186
- params: copyParams,
187
- }))];
188
- case 4:
189
- _a = __read.apply(void 0, [_k.sent(), 2]), errorFetching = _a[0], _b = _a[1], data = _b === void 0 ? [] : _b;
190
- if (errorFetching) {
191
- throw errorFetching;
192
- }
193
- _c = __read(data, 2), _d = _c[0], rows = _d === void 0 ? [] : _d, _j = _c[1], options_1 = _j === void 0 ? { hasNext: false, params: copyParams } : _j;
194
- dataToSend = rows.map(function (d) { return ClassModel.parse(d); });
195
- return [2 /*return*/, __assign({ items: dataToSend }, options_1)];
196
- case 5:
197
- error_1 = _k.sent();
198
- (0, utils_1.log)("error paginating ".concat(nameCamel), error_1);
199
- return [2 /*return*/, { items: [], hasNext: false, params: copyParams }];
200
- case 6: return [2 /*return*/];
201
- }
202
- });
203
- });
204
- };
205
- ResolverClass.prototype[_f = "".concat(nameCamel, "Get")] = function (id, owner) {
206
- return __awaiter(this, void 0, void 0, function () {
207
- var foundDocument, error_2;
208
- return __generator(this, function (_a) {
209
- switch (_a.label) {
210
- case 0:
211
- _a.trys.push([0, 4, , 5]);
212
- (0, utils_1.log)("".concat(nameCamel, "Get -->"), { id: id, owner: owner });
213
- if (!(getByIdOptions && getByIdOptions.method)) return [3 /*break*/, 2];
214
- return [4 /*yield*/, getByIdOptions.method({ id: id, owner: owner })];
215
- case 1: return [2 /*return*/, _a.sent()];
216
- case 2: return [4 /*yield*/, ClassModel.findById(id)];
217
- case 3:
218
- foundDocument = _a.sent();
219
- if (!foundDocument) {
220
- throw new Error("".concat(nameCamel, " not found"));
221
- }
222
- return [2 /*return*/, foundDocument];
223
- case 4:
224
- error_2 = _a.sent();
225
- (0, utils_1.log)("error finding ".concat(nameCamel), error_2);
226
- return [2 /*return*/, null];
227
- case 5: return [2 /*return*/];
228
- }
229
- });
230
- });
231
- };
232
- ResolverClass.prototype[_g = "".concat(nameCamel, "Delete")] = function (id, owner) {
233
- return __awaiter(this, void 0, void 0, function () {
234
- var deleted, error_3;
235
- return __generator(this, function (_a) {
236
- switch (_a.label) {
237
- case 0:
238
- (0, utils_1.log)("".concat(nameCamel, "Delete -->"), { id: id, owner: owner });
239
- _a.label = 1;
240
- case 1:
241
- _a.trys.push([1, 5, , 6]);
242
- if (!(deleteByIdOptions && deleteByIdOptions.method)) return [3 /*break*/, 3];
243
- return [4 /*yield*/, deleteByIdOptions.method({ id: id, owner: owner })];
244
- case 2: return [2 /*return*/, _a.sent()];
245
- case 3: return [4 /*yield*/, ClassModel.delete(id)];
246
- case 4:
247
- deleted = _a.sent();
248
- if (!deleted) {
249
- throw new Error("".concat(nameCamel, " not deleted"));
250
- }
251
- return [2 /*return*/, {
252
- success: true,
253
- }];
254
- case 5:
255
- error_3 = _a.sent();
256
- (0, utils_1.log)("error deleting ".concat(nameCamel), error_3);
257
- return [2 /*return*/, { success: false, message: error_3 && error_3.message }];
258
- case 6: return [2 /*return*/];
259
- }
260
- });
261
- });
262
- };
263
- ResolverClass.prototype[_h = "".concat(nameCamel, "Create")] = function (
264
- // @ts-ignore
265
- args) {
266
- return __awaiter(this, void 0, void 0, function () {
267
- var createdOrUpdate, err_1;
268
- return __generator(this, function (_a) {
269
- switch (_a.label) {
270
- case 0:
271
- (0, utils_1.log)("".concat(nameCamel, "Create -->"), args);
272
- _a.label = 1;
273
- case 1:
274
- _a.trys.push([1, 5, , 6]);
275
- if (!(createUpdateOptions && createUpdateOptions.method)) return [3 /*break*/, 3];
276
- return [4 /*yield*/, createUpdateOptions.method(args)];
277
- case 2: return [2 /*return*/, _a.sent()];
278
- case 3: return [4 /*yield*/, (0, shared_1.createUpdate)(__assign({ model: ClassModel, data: __assign({}, args) }, args))];
279
- case 4:
280
- createdOrUpdate = _a.sent();
281
- if (createdOrUpdate) {
282
- return [2 /*return*/, { success: true, data: createdOrUpdate }];
283
- }
284
- throw new Error("error creating ".concat(nameCamel, " method "));
285
- case 5:
286
- err_1 = _a.sent();
287
- console.error(err_1 && err_1.message, err_1);
288
- return [2 /*return*/, { success: false, message: err_1 && err_1.message }];
289
- case 6: return [2 /*return*/];
290
- }
291
- });
292
- });
293
- };
294
- var _e, _f, _g, _h;
295
- __decorate([
296
- (0, type_graphql_1.Query)(function () { return PaginationClass; }),
297
- (0, type_graphql_1.UseMiddleware)(paginationOptionsPublic ? blankMiddleware : authMiddleware),
298
- __param(0, (0, type_graphql_1.Arg)('filter', function () { return String; }, { nullable: true })),
299
- __param(1, (0, type_graphql_1.Arg)('sort', function () { return String; }, { nullable: true })),
300
- __param(2, (0, type_graphql_1.Arg)('before', function () { return Date; }, { nullable: true })),
301
- __param(3, (0, type_graphql_1.Arg)('after', function () { return Date; }, { nullable: true })),
302
- __param(4, (0, type_graphql_1.Arg)('limit', function () { return Number; }, { nullable: true }))
303
- ], ResolverClass.prototype, _e, null);
304
- __decorate([
305
- (0, type_graphql_1.Query)(function () { return ClassModelType; }),
306
- (0, type_graphql_1.UseMiddleware)(getByIdOptionsPublic ? blankMiddleware : authMiddleware),
307
- __param(0, (0, type_graphql_1.Arg)('id', function () { return String; }, { nullable: false })),
308
- __param(1, (0, type_graphql_1.Arg)('owner', function () { return String; }, { nullable: true }))
309
- ], ResolverClass.prototype, _f, null);
310
- __decorate([
311
- (0, type_graphql_1.Mutation)(function () { return ClassResType; }),
312
- (0, type_graphql_1.UseMiddleware)(deleteByIdOptionsPublic ? blankMiddleware : authMiddleware),
313
- __param(0, (0, type_graphql_1.Arg)('id', function () { return String; }, { nullable: false })),
314
- __param(1, (0, type_graphql_1.Arg)('owner', function () { return String; }, { nullable: true }))
315
- ], ResolverClass.prototype, _g, null);
316
- __decorate([
317
- (0, type_graphql_1.Mutation)(function () { return ClassResType; }),
318
- (0, type_graphql_1.UseMiddleware)(createUpdateOptionsPublic ? blankMiddleware : authMiddleware),
319
- __param(0, (0, type_graphql_1.Arg)('args', function () { return ClassModelType; }))
320
- ], ResolverClass.prototype, _h, null);
321
- ResolverClass = __decorate([
322
- (0, type_graphql_1.Resolver)()
323
- ], ResolverClass);
324
- return ResolverClass;
325
- }());
326
- // GQL
327
- // { FRAGMENT, GET, DELETE, CREATE, PAGE }
328
- var client = (0, client_1.generateClient)({
329
- name: name,
330
- fields: modelKeys,
331
- });
332
- return {
333
- resType: ClassResType,
334
- pagination: PaginationClass,
335
- resolver: ResolverClass,
336
- modelKeys: modelKeys,
337
- client: client,
338
- };
339
- };
340
- exports.automateImplementation = automateImplementation;
341
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automate/model/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport camelCase from 'lodash/camelCase';\nimport pickBy from 'lodash/pickBy';\nimport GraphQLJSON from 'graphql-type-json';\nimport {identity} from 'lodash';\nimport {\n Field,\n Mutation,\n ObjectType,\n UseMiddleware,\n Arg,\n ClassType,\n Resolver,\n Query,\n InputType,\n} from 'type-graphql';\nimport {DocumentNode} from 'graphql';\n\nimport {awaitTo, log} from '../../utils';\nimport {Model} from '../../model';\nimport {isAuth} from '../middlewares';\nimport {createUpdate, ResType} from '../../shared';\n\nimport {generateClient} from './client';\n\ninterface PaginationResults {\n items: any[];\n hasNext: boolean;\n params: any;\n}\n\nexport interface AutomaticModelOptions extends AutomaticMethodOptions {\n model: Model;\n}\n\nexport interface AutomaticMethodOptions {\n authMiddleware?: any; // authentication middleware\n\n // Query\n pagination?: {\n public?: boolean;\n method?: (params: any) => Promise<PaginationResults>;\n };\n\n getById?: {\n public?: boolean;\n matchOwner?: boolean;\n method?: <T>(params: any) => Promise<T & any>;\n };\n\n // Mutations\n deleteById?: {\n public?: boolean; // NEVER SET IN PROD\n method?: (args: any) => Promise<ResType>;\n matchOwner?: boolean;\n };\n\n createUpdate?: {\n public?: boolean; // NEVER SET IN PROD\n method?: <T>(args: T) => Promise<ResType>;\n };\n\n // TODO in the future\n // fragmentMapping\n}\n\nexport interface AutomaticOutput {\n resType: ResType;\n pagination: ClassType;\n resolver: ClassType;\n modelKeys: string[];\n client: Record<string, DocumentNode>;\n}\n\n/**\n *\n * @param c\n * @returns\n */\nexport const automateImplementation = <T>(\n ClassModelType: T & ClassType,\n options: AutomaticModelOptions\n): AutomaticOutput => {\n // createUpdate\n const createUpdateOptions = options?.createUpdate;\n const createUpdateOptionsPublic = options?.createUpdate?.public;\n\n // deleteById\n const deleteByIdOptions = options?.deleteById;\n const deleteByIdOptionsPublic = options?.deleteById?.public;\n\n // getById\n const getByIdOptions = options?.getById;\n const getByIdOptionsPublic = options?.getById?.public;\n\n // pagination\n const paginationOptions = options?.pagination;\n const paginationOptionsPublic = options?.pagination?.public;\n\n type ClassModelTYPE = typeof ClassModelType;\n\n const ClassModel = options.model;\n const name = (ClassModelType as any).name;\n const _type = ClassModel.collectionName;\n const nameCamel = camelCase(name);\n // const nameSNAKE_CASE = toUpper(snakeCase(name));\n const modelKeys: string[] = Object.getOwnPropertyNames(new ClassModelType());\n\n const authMiddleware = options.authMiddleware || isAuth;\n\n const blankMiddleware = [];\n\n @ObjectType(`${nameCamel}ResType`)\n class ClassResType {\n @Field(() => Boolean)\n success: boolean;\n\n @Field(() => String, {nullable: true})\n message?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n @Field((type) => GraphQLJSON, {nullable: true})\n data?: any;\n }\n\n @InputType(`${nameCamel}PaginationInput`)\n @ObjectType(`${nameCamel}Pagination`)\n class PaginationClass {\n @Field(() => [ClassModelType], {nullable: true})\n items: [typeof ClassModelType] = [ClassModelType];\n\n @Field(() => Boolean, {nullable: true})\n hasNext?: boolean = false;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n @Field((type) => GraphQLJSON, {nullable: true})\n params?: any = {};\n }\n // return Pagination;\n\n @Resolver()\n class ResolverClass {\n @Query(() => PaginationClass)\n @UseMiddleware(paginationOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Pagination`](\n @Arg('filter', () => String, {nullable: true}) filter?: string,\n @Arg('sort', () => String, {nullable: true}) sort?: string,\n @Arg('before', () => Date, {nullable: true}) before?: Date,\n @Arg('after', () => Date, {nullable: true}) after?: Date,\n @Arg('limit', () => Number, {nullable: true}) limitArg?: number\n ): Promise<{\n items: ClassModelTYPE[];\n hasNext: boolean;\n params: any;\n }> {\n const limit = limitArg || 10;\n\n const copyParams = pickBy(\n {\n filter,\n sort,\n before,\n after,\n limit,\n },\n identity\n );\n\n log(`${nameCamel}Pagination -->`, copyParams);\n\n try {\n // Apply it from the methods\n if (paginationOptions && paginationOptions.method) {\n return await paginationOptions.method(copyParams);\n }\n\n const bucket = ClassModel.getBucketName();\n\n const query = `\n SELECT ${modelKeys.join(',')}\n FROM \\`${bucket}\\` ${nameCamel}\n WHERE ${nameCamel}._type = \"${_type}\"\n LIMIT ${limit};\n `;\n\n const [errorFetching, data = []] = await awaitTo(\n ClassModel.customQuery<any>({\n limit,\n query,\n params: copyParams,\n })\n );\n\n if (errorFetching) {\n throw errorFetching;\n }\n\n const [rows = [], options = {hasNext: false, params: copyParams}] = data;\n\n const dataToSend = rows.map((d) => ClassModel.parse(d));\n\n return {items: dataToSend, ...options};\n } catch (error) {\n log(`error paginating ${nameCamel}`, error);\n return {items: [], hasNext: false, params: copyParams};\n }\n }\n\n @Query(() => ClassModelType)\n @UseMiddleware(getByIdOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Get`](\n @Arg('id', () => String, {nullable: false}) id: string,\n @Arg('owner', () => String, {nullable: true}) owner?: string\n ): Promise<typeof ClassModelType> {\n try {\n log(`${nameCamel}Get -->`, {id, owner});\n // Apply it from the methods\n if (getByIdOptions && getByIdOptions.method) {\n return await getByIdOptions.method({id, owner});\n }\n\n // TODO check if we own this payment method\n const foundDocument = await ClassModel.findById(id);\n if (!foundDocument) {\n throw new Error(`${nameCamel} not found`);\n }\n\n return foundDocument;\n } catch (error) {\n log(`error finding ${nameCamel}`, error);\n return null;\n }\n }\n\n @Mutation(() => ClassResType)\n @UseMiddleware(deleteByIdOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Delete`](\n @Arg('id', () => String, {nullable: false}) id: string,\n @Arg('owner', () => String, {nullable: true}) owner?: string\n ): Promise<ResType> {\n log(`${nameCamel}Delete -->`, {id, owner});\n try {\n // Apply it from the methods\n if (deleteByIdOptions && deleteByIdOptions.method) {\n return await deleteByIdOptions.method({id, owner});\n }\n\n // TODO check if we own this payment method\n const deleted = await ClassModel.delete(id);\n if (!deleted) {\n throw new Error(`${nameCamel} not deleted`);\n }\n\n return {\n success: true,\n };\n } catch (error) {\n log(`error deleting ${nameCamel}`, error);\n return {success: false, message: error && error.message};\n }\n }\n\n @Mutation(() => ClassResType)\n @UseMiddleware(createUpdateOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Create`](\n // @ts-ignore\n @Arg('args', () => ClassModelType) args: ClassModelType\n ): Promise<ResType> {\n log(`${nameCamel}Create -->`, args);\n\n try {\n // Apply it from the methods\n if (createUpdateOptions && createUpdateOptions.method) {\n return await createUpdateOptions.method(args);\n }\n\n // If updating\n const createdOrUpdate = await createUpdate({\n model: ClassModel,\n data: {\n ...args,\n },\n ...args, // id and owner if it exists\n });\n\n if (createdOrUpdate) {\n return {success: true, data: createdOrUpdate};\n }\n\n throw new Error(`error creating ${nameCamel} method `);\n } catch (err) {\n console.error(err && err.message, err);\n return {success: false, message: err && err.message};\n }\n }\n }\n\n // GQL\n // { FRAGMENT, GET, DELETE, CREATE, PAGE }\n const client = generateClient({\n name,\n fields: modelKeys,\n });\n\n return {\n resType: ClassResType as unknown as ResType,\n pagination: PaginationClass,\n resolver: ResolverClass,\n modelKeys,\n client,\n };\n};\n"]}
@@ -1,14 +0,0 @@
1
- import { DocumentNode } from 'graphql';
2
- interface ClientModels {
3
- name: string;
4
- client: Record<string, DocumentNode>;
5
- }
6
- interface IWriteClient {
7
- path: string;
8
- clients: ClientModels[];
9
- }
10
- /**
11
- * Morpheus in actions
12
- */
13
- export declare const writeAllClientSchemas: ({ clients, path }: IWriteClient) => Promise<void>;
14
- export {};
@@ -1,171 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __rest = (this && this.__rest) || function (s, e) {
39
- var t = {};
40
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
41
- t[p] = s[p];
42
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
43
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
44
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
45
- t[p[i]] = s[p[i]];
46
- }
47
- return t;
48
- };
49
- var __values = (this && this.__values) || function(o) {
50
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
51
- if (m) return m.call(o);
52
- if (o && typeof o.length === "number") return {
53
- next: function () {
54
- if (o && i >= o.length) o = void 0;
55
- return { value: o && o[i++], done: !o };
56
- }
57
- };
58
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
59
- };
60
- var __importDefault = (this && this.__importDefault) || function (mod) {
61
- return (mod && mod.__esModule) ? mod : { "default": mod };
62
- };
63
- Object.defineProperty(exports, "__esModule", { value: true });
64
- exports.writeAllClientSchemas = void 0;
65
- /**
66
- * Define all models that should be morphed
67
- */
68
- var ts_morph_1 = require("ts-morph");
69
- var isEmpty_1 = __importDefault(require("lodash/isEmpty"));
70
- var utils_1 = require("../../utils");
71
- var writer_1 = require("../writer");
72
- var config_1 = require("../../config");
73
- /**
74
- * Morpheus in actions
75
- */
76
- var writeAllClientSchemas = function (_a) {
77
- var clients = _a.clients, path = _a.path;
78
- return __awaiter(void 0, void 0, void 0, function () {
79
- var writeFilesTasks, allFileExports;
80
- return __generator(this, function (_b) {
81
- switch (_b.label) {
82
- case 0:
83
- if (!config_1.isDev) {
84
- return [2 /*return*/];
85
- }
86
- writeFilesTasks = clients.map(function (clt) {
87
- var e_1, _a;
88
- var modelName = clt.name;
89
- var nameSNAKE_CASE = (0, utils_1.toSnakeUpper)(modelName);
90
- // write fragments and all queries
91
- var _b = clt.client, FRAGMENT = _b.FRAGMENT, GET = _b.GET, PAGE = _b.PAGE, DELETE = _b.DELETE, CREATE = _b.CREATE, otherClient = __rest(_b, ["FRAGMENT", "GET", "PAGE", "DELETE", "CREATE"]);
92
- var constStatements = [
93
- {
94
- name: "".concat(nameSNAKE_CASE, "_FRAGMENT"),
95
- value: FRAGMENT,
96
- leadingTrivia: "/** ".concat(nameSNAKE_CASE, " Fragment **/"),
97
- },
98
- {
99
- name: "".concat(nameSNAKE_CASE, "_CREATE"),
100
- value: CREATE,
101
- leadingTrivia: "/** ".concat(nameSNAKE_CASE, " Create Mutation **/"),
102
- },
103
- { name: "".concat(nameSNAKE_CASE, "_DELETE"), value: DELETE },
104
- { name: "".concat(nameSNAKE_CASE, "_GET"), value: GET },
105
- { name: "".concat(nameSNAKE_CASE, "_PAGE"), value: PAGE },
106
- ];
107
- try {
108
- // Add other defined queries
109
- for (var _c = __values(Object.keys(otherClient)), _d = _c.next(); !_d.done; _d = _c.next()) {
110
- var keyQuery = _d.value;
111
- if (!(0, isEmpty_1.default)(keyQuery)) {
112
- constStatements.push({
113
- name: keyQuery,
114
- value: otherClient["".concat(keyQuery)],
115
- });
116
- }
117
- }
118
- }
119
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
120
- finally {
121
- try {
122
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
123
- }
124
- finally { if (e_1) throw e_1.error; }
125
- }
126
- return {
127
- filename: nameSNAKE_CASE,
128
- task: (0, writer_1.writeTsFile)({
129
- pathToClient: path,
130
- filename: nameSNAKE_CASE,
131
- variables: constStatements.map(function (con) { return ({
132
- name: con.name,
133
- initializer: JSON.stringify(con.value),
134
- leadingTrivia: function (writer) {
135
- writer.writeLine('\n');
136
- if (con === null || con === void 0 ? void 0 : con.leadingTrivia) {
137
- writer.writeLine(con.leadingTrivia);
138
- }
139
- },
140
- trailingTrivia: function (writer) { return writer.writeLine('\n'); },
141
- }); }),
142
- }),
143
- };
144
- });
145
- // write all files
146
- return [4 /*yield*/, Promise.all(writeFilesTasks.map(function (i) { return i.task; }))];
147
- case 1:
148
- // write all files
149
- _b.sent();
150
- allFileExports = writeFilesTasks
151
- .map(function (i) { return i.filename; })
152
- .map(function (c) { return ({
153
- kind: ts_morph_1.StructureKind.ExportDeclaration,
154
- // namespaceExport: "*",
155
- moduleSpecifier: "./".concat(c),
156
- }); });
157
- // write final index file
158
- return [4 /*yield*/, (0, writer_1.writeTsFile)({
159
- filename: 'index',
160
- exports: allFileExports,
161
- })];
162
- case 2:
163
- // write final index file
164
- _b.sent();
165
- return [2 /*return*/];
166
- }
167
- });
168
- });
169
- };
170
- exports.writeAllClientSchemas = writeAllClientSchemas;
171
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automate/morpheus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,qCAAmE;AACnE,2DAAqC;AAGrC,qCAAyC;AACzC,oCAAsC;AACtC,uCAAmC;AAYnC;;GAEG;AACI,IAAM,qBAAqB,GAAG,UAAO,EAA6B;QAA5B,OAAO,aAAA,EAAE,IAAI,UAAA;;;;;;oBACtD,IAAI,CAAC,cAAK,EAAE;wBACR,sBAAO;qBACV;oBAEK,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,GAAG;;wBACpC,IAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;wBAC3B,IAAM,cAAc,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC;wBAE/C,kCAAkC;wBAClC,IAAM,KAAwD,GAAG,CAAC,MAAM,EAAjE,QAAQ,cAAA,EAAE,GAAG,SAAA,EAAE,IAAI,UAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA,EAAK,WAAW,cAApD,+CAAqD,CAAa,CAAC;wBAEzE,IAAM,eAAe,GAAG;4BACpB;gCACI,IAAI,EAAE,UAAG,cAAc,cAAW;gCAClC,KAAK,EAAE,QAAQ;gCACf,aAAa,EAAE,cAAO,cAAc,kBAAe;6BACtD;4BACD;gCACI,IAAI,EAAE,UAAG,cAAc,YAAS;gCAChC,KAAK,EAAE,MAAM;gCACb,aAAa,EAAE,cAAO,cAAc,yBAAsB;6BAC7D;4BACD,EAAC,IAAI,EAAE,UAAG,cAAc,YAAS,EAAE,KAAK,EAAE,MAAM,EAAC;4BACjD,EAAC,IAAI,EAAE,UAAG,cAAc,SAAM,EAAE,KAAK,EAAE,GAAG,EAAC;4BAC3C,EAAC,IAAI,EAAE,UAAG,cAAc,UAAO,EAAE,KAAK,EAAE,IAAI,EAAC;yBAChD,CAAC;;4BAEF,4BAA4B;4BAC5B,KAAuB,IAAA,KAAA,SAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA,gBAAA,4BAAE;gCAA5C,IAAM,QAAQ,WAAA;gCACf,IAAI,CAAC,IAAA,iBAAO,EAAC,QAAQ,CAAC,EAAE;oCACpB,eAAe,CAAC,IAAI,CAAC;wCACjB,IAAI,EAAE,QAAQ;wCACd,KAAK,EAAG,WAAmB,CAAC,UAAG,QAAQ,CAAE,CAAC;qCAC7C,CAAC,CAAC;iCACN;6BACJ;;;;;;;;;wBAED,OAAO;4BACH,QAAQ,EAAE,cAAc;4BACxB,IAAI,EAAE,IAAA,oBAAW,EAAC;gCACd,YAAY,EAAE,IAAI;gCAClB,QAAQ,EAAE,cAAc;gCACxB,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC;oCACrC,IAAI,EAAE,GAAG,CAAC,IAAI;oCACd,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;oCACtC,aAAa,EAAE,UAAC,MAAM;wCAClB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wCAEvB,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,aAAa,EAAE;4CACpB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;yCACvC;oCACL,CAAC;oCACD,cAAc,EAAE,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAtB,CAAsB;iCACrD,CAAC,EAXsC,CAWtC,CAAC;6BACN,CAAC;yBACL,CAAC;oBACN,CAAC,CAAC,CAAC;oBAEH,mBAAmB;oBACnB,qBAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC,EAAA;;oBADrD,mBAAmB;oBACnB,SAAqD,CAAC;oBAGhD,cAAc,GAAiC,eAAe;yBAC/D,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,EAAV,CAAU,CAAC;yBACtB,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC;wBACT,IAAI,EAAE,wBAAa,CAAC,iBAAiB;wBACrC,0BAA0B;wBAC1B,eAAe,EAAE,YAAK,CAAC,CAAE;qBAC5B,CAAC,EAJU,CAIV,CAAC,CAAC;oBAER,yBAAyB;oBACzB,qBAAM,IAAA,oBAAW,EAAC;4BACd,QAAQ,EAAE,OAAO;4BACjB,OAAO,EAAE,cAAc;yBAC1B,CAAC,EAAA;;oBAJF,yBAAyB;oBACzB,SAGE,CAAC;;;;;CACN,CAAC;AA5EW,QAAA,qBAAqB,yBA4EhC","sourcesContent":["/**\n * Define all models that should be morphed\n */\nimport {ExportDeclarationStructure, StructureKind} from 'ts-morph';\nimport isEmpty from 'lodash/isEmpty';\nimport {DocumentNode} from 'graphql';\n\nimport {toSnakeUpper} from '../../utils';\nimport {writeTsFile} from '../writer';\nimport {isDev} from '../../config';\n\ninterface ClientModels {\n name: string;\n client: Record<string, DocumentNode>;\n}\n\ninterface IWriteClient {\n path: string;\n clients: ClientModels[];\n}\n\n/**\n * Morpheus in actions\n */\nexport const writeAllClientSchemas = async ({clients, path}: IWriteClient): Promise<void> => {\n if (!isDev) {\n return;\n }\n // write each file\n const writeFilesTasks = clients.map((clt) => {\n const modelName = clt.name;\n const nameSNAKE_CASE = toSnakeUpper(modelName);\n\n // write fragments and all queries\n const {FRAGMENT, GET, PAGE, DELETE, CREATE, ...otherClient} = clt.client;\n\n const constStatements = [\n {\n name: `${nameSNAKE_CASE}_FRAGMENT`,\n value: FRAGMENT,\n leadingTrivia: `/** ${nameSNAKE_CASE} Fragment **/`,\n },\n {\n name: `${nameSNAKE_CASE}_CREATE`,\n value: CREATE,\n leadingTrivia: `/** ${nameSNAKE_CASE} Create Mutation **/`,\n },\n {name: `${nameSNAKE_CASE}_DELETE`, value: DELETE},\n {name: `${nameSNAKE_CASE}_GET`, value: GET},\n {name: `${nameSNAKE_CASE}_PAGE`, value: PAGE},\n ];\n\n // Add other defined queries\n for (const keyQuery of Object.keys(otherClient)) {\n if (!isEmpty(keyQuery)) {\n constStatements.push({\n name: keyQuery,\n value: (otherClient as any)[`${keyQuery}`],\n });\n }\n }\n\n return {\n filename: nameSNAKE_CASE,\n task: writeTsFile({\n pathToClient: path,\n filename: nameSNAKE_CASE,\n variables: constStatements.map((con) => ({\n name: con.name,\n initializer: JSON.stringify(con.value),\n leadingTrivia: (writer) => {\n writer.writeLine('\\n');\n\n if (con?.leadingTrivia) {\n writer.writeLine(con.leadingTrivia);\n }\n },\n trailingTrivia: (writer) => writer.writeLine('\\n'),\n })),\n }),\n };\n });\n\n // write all files\n await Promise.all(writeFilesTasks.map((i) => i.task));\n\n // write all exports\n const allFileExports: ExportDeclarationStructure[] = writeFilesTasks\n .map((i) => i.filename)\n .map((c) => ({\n kind: StructureKind.ExportDeclaration,\n // namespaceExport: \"*\",\n moduleSpecifier: `./${c}`,\n }));\n\n // write final index file\n await writeTsFile({\n filename: 'index',\n exports: allFileExports,\n });\n};\n"]}
@@ -1,10 +0,0 @@
1
- import { StatementedNodeStructure, VariableDeclarationStructure, OptionalKind, InterfaceDeclarationStructure, ExportDeclarationStructure } from 'ts-morph';
2
- interface WriteFileProps extends StatementedNodeStructure {
3
- filename: string;
4
- variables?: OptionalKind<VariableDeclarationStructure>[];
5
- interfaces?: OptionalKind<InterfaceDeclarationStructure>[];
6
- exports?: OptionalKind<ExportDeclarationStructure>[];
7
- pathToClient?: string;
8
- }
9
- export declare const writeTsFile: (props: WriteFileProps) => Promise<any>;
10
- export {};