tsledge 0.1.1 → 0.1.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.
@@ -0,0 +1,15 @@
1
+ import { HTTPRequestConfig } from './types';
2
+ /**
3
+ * Converts an object to a URL-encoded string for form submission.
4
+ * With content type application/x-www-form-urlencoded, the body should be a string in the format of key=value&key2=value2.
5
+ * @param obj
6
+ * @returns
7
+ */
8
+ export declare function formDataParser(obj: Record<string, any>): string;
9
+ /**
10
+ * Executes the HTTP request using axios or fetch as fallback
11
+ * @param config RequestConfig
12
+ * @returns Promise<T> The response data
13
+ */
14
+ export declare function httpRequest<T = any>(config: HTTPRequestConfig): Promise<T>;
15
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAE/D;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CAgEhF"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formDataParser = formDataParser;
4
+ exports.httpRequest = httpRequest;
5
+ /**
6
+ * Converts an object to a URL-encoded string for form submission.
7
+ * With content type application/x-www-form-urlencoded, the body should be a string in the format of key=value&key2=value2.
8
+ * @param obj
9
+ * @returns
10
+ */
11
+ function formDataParser(obj) {
12
+ return new URLSearchParams(obj).toString();
13
+ }
14
+ /**
15
+ * Executes the HTTP request using axios or fetch as fallback
16
+ * @param config RequestConfig
17
+ * @returns Promise<T> The response data
18
+ */
19
+ async function httpRequest(config) {
20
+ const url = new URL(config.url);
21
+ if (config.urlSearchParams) {
22
+ Object.keys(config.urlSearchParams).forEach((key) => {
23
+ url.searchParams.set(key, String(config.urlSearchParams[key]));
24
+ });
25
+ }
26
+ let body;
27
+ let defaultContentType = 'application/x-www-form-urlencoded';
28
+ if (config.body) {
29
+ if (typeof config.body === 'object') {
30
+ body = JSON.stringify(config.body);
31
+ defaultContentType = 'application/json';
32
+ }
33
+ else {
34
+ body = String(config.body);
35
+ }
36
+ }
37
+ const fetchImpl = globalThis.fetch;
38
+ if (!fetchImpl) {
39
+ throw new Error('fetch() is not available. Please use Node.js 18+ or add a fetch polyfill.');
40
+ }
41
+ const defaultHeaders = {};
42
+ if (!config.headers ||
43
+ !Object.keys(config.headers).find((key) => key.toLowerCase() === 'content-type')) {
44
+ defaultHeaders['Content-Type'] = defaultContentType;
45
+ }
46
+ const response = await fetchImpl(url.toString(), {
47
+ method: config.method?.toUpperCase() || 'GET',
48
+ body,
49
+ headers: {
50
+ ...defaultHeaders,
51
+ ...config.headers,
52
+ },
53
+ });
54
+ const contentType = response.headers.get('content-type') || '';
55
+ const isJson = contentType.includes('application/json');
56
+ const isBlob = contentType.includes('application/octet-stream');
57
+ if (!response.ok) {
58
+ const text = await response.text().catch(() => '');
59
+ throw new Error(`HTTP ${response.status} ${response.statusText}: ${text}`);
60
+ }
61
+ let result;
62
+ if (isJson) {
63
+ result = await response.json().catch(async (error) => {
64
+ throw new Error(`Failed to parse JSON response: ${error.message}`);
65
+ });
66
+ }
67
+ else if (isBlob) {
68
+ result = await response.blob().catch(async (error) => {
69
+ throw new Error(`Failed to get blob response: ${error.message}`);
70
+ });
71
+ }
72
+ else {
73
+ result = await response.text().catch(async (error) => {
74
+ throw new Error(`Failed to get text response: ${error.message}`);
75
+ });
76
+ }
77
+ return result;
78
+ }
79
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './query-builder';
2
2
  export * from './types';
3
+ export * from './http';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./query-builder"), exports);
18
18
  __exportStar(require("./types"), exports);
19
+ __exportStar(require("./http"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,0CAAwB;AACxB,yCAAuB"}
@@ -1,4 +1,4 @@
1
- import mongoose from "mongoose";
1
+ import mongoose from 'mongoose';
2
2
  export interface DefaultResponseBody extends Record<string, any> {
3
3
  data?: any[] | any;
4
4
  meta?: {
@@ -30,4 +30,26 @@ export interface QueryBuilderConfig<T = any> {
30
30
  eachFunc?: (doc: any) => any;
31
31
  asyncEachFunc?: (doc: any) => Promise<any>;
32
32
  }
33
+ export declare enum HttpMethod {
34
+ POST = "post",
35
+ GET = "get",
36
+ DELETE = "delete",
37
+ PUT = "put"
38
+ }
39
+ export interface HTTPRequestConfig {
40
+ url: string;
41
+ method?: HttpMethod;
42
+ /**
43
+ * Optional query parameters to be appended to the URL. They will be automatically URL-encoded. For example, { search: 'test', page: '1' } will result in ?search=test&page=1 being appended to the URL.
44
+ */
45
+ urlSearchParams?: Record<string, string>;
46
+ /**
47
+ * The body can be an object or a string. If it's an object, it will be automatically stringified as JSON and the Content-Type header will be set to application/json. If it's a string, it will be sent as-is and the Content-Type header will default to application/x-www-form-urlencoded unless explicitly set in the headers.
48
+ */
49
+ body?: any;
50
+ /**
51
+ * Optional headers to include in the request. If the body is an object and Content-Type is not explicitly set, it will default to application/json. If the body is a string and Content-Type is not explicitly set, it will default to application/x-www-form-urlencoded. You can override these defaults by providing your own Content-Type header.
52
+ */
53
+ headers?: Record<string, string>;
54
+ }
33
55
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC9D,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;gBAEP,OAAO,EAAE,CAAC,EAAE,IAAI,GAAE,MAAY;IAK1C,YAAY,CAAC,GAAG,EAAE,GAAG;IAOrB,KAAK;IAGL,KAAK;IAGL,KAAK;IAGL,KAAK;CAGN;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEtE,qBAAa,YAAY,CAAC,CAAC,GAAG,GAAG;IAC/B,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;gBAEF,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAE,MAAM,GAAG,SAAqB;CAK9F;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC5C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC9D,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;gBAEP,OAAO,EAAE,CAAC,EAAE,IAAI,GAAE,MAAY;IAK1C,YAAY,CAAC,GAAG,EAAE,GAAG;IAOrB,KAAK;IAGL,KAAK;IAGL,KAAK;IAGL,KAAK;CAGN;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEtE,qBAAa,YAAY,CAAC,CAAC,GAAG,GAAG;IAC/B,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;gBAEF,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAE,MAAM,GAAG,SAAqB;CAK9F;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC5C;AAED,oBAAY,UAAU;IACpB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;IACX;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JoinRelation = exports.Codec = void 0;
3
+ exports.HttpMethod = exports.JoinRelation = exports.Codec = void 0;
4
4
  class Codec {
5
5
  content;
6
6
  returnCode;
@@ -39,4 +39,11 @@ class JoinRelation {
39
39
  }
40
40
  }
41
41
  exports.JoinRelation = JoinRelation;
42
+ var HttpMethod;
43
+ (function (HttpMethod) {
44
+ HttpMethod["POST"] = "post";
45
+ HttpMethod["GET"] = "get";
46
+ HttpMethod["DELETE"] = "delete";
47
+ HttpMethod["PUT"] = "put";
48
+ })(HttpMethod || (exports.HttpMethod = HttpMethod = {}));
42
49
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";;;AAQA,MAAa,KAAK;IAChB,OAAO,CAAI;IACX,UAAU,CAAS;IAEnB,YAAY,OAAU,EAAE,OAAe,GAAG;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,GAAQ;QACnB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1D,CAAC;IACD,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1D,CAAC;IACD,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1D,CAAC;IACD,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1D,CAAC;CACF;AA5BD,sBA4BC;AAKD,MAAa,YAAY;IACvB,GAAG,CAAoB;IACvB,UAAU,CAAS;IACnB,KAAK,CAAS;IAEd,YAAY,UAAkB,EAAE,GAAsB,EAAE,QAA4B,SAAS;QAC3F,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;IACnD,CAAC;CACF;AAVD,oCAUC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";;;AAQA,MAAa,KAAK;IAChB,OAAO,CAAI;IACX,UAAU,CAAS;IAEnB,YAAY,OAAU,EAAE,OAAe,GAAG;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,GAAQ;QACnB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1D,CAAC;IACD,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1D,CAAC;IACD,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1D,CAAC;IACD,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1D,CAAC;CACF;AA5BD,sBA4BC;AAKD,MAAa,YAAY;IACvB,GAAG,CAAoB;IACvB,UAAU,CAAS;IACnB,KAAK,CAAS;IAEd,YAAY,UAAkB,EAAE,GAAsB,EAAE,QAA4B,SAAS;QAC3F,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;IACnD,CAAC;CACF;AAVD,oCAUC;AASD,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,yBAAW,CAAA;AACb,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../src/db/mongodb.ts"],"names":[],"mappings":"AAGA,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,iBAY/C"}
1
+ {"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../src/db/mongodb.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,iBAY/C"}
@@ -6,17 +6,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.connectMongoDB = connectMongoDB;
7
7
  const mongoose_1 = __importDefault(require("mongoose"));
8
8
  const exitCodes_1 = require("../exitCodes");
9
+ const utils_1 = require("../utils");
9
10
  async function connectMongoDB(uri) {
10
11
  if (uri == null || uri == undefined || uri.length == 0) {
11
- console.error(`🛑 [${new Date().toISOString()}] Error: MongoDB URI is not provided`);
12
+ console.error(`🛑 [${(0, utils_1.getCurrentDateString)()}] Error: MongoDB URI is not provided`);
12
13
  process.exit(exitCodes_1.EXIT_CODE_INVALID_CONFIG);
13
14
  }
14
15
  try {
15
16
  await mongoose_1.default.connect(uri);
16
- console.log(`✅ [${new Date().toISOString()}] MongoDB connected`);
17
+ console.log(`✅ [${(0, utils_1.getCurrentDateString)()}] MongoDB connected`);
17
18
  }
18
19
  catch (err) {
19
- console.error(`🛑 [${new Date().toISOString()}] Error: MongoDB connection failed`, err);
20
+ console.error(`🛑 [${(0, utils_1.getCurrentDateString)()}] Error: MongoDB connection failed`, err);
20
21
  process.exit(exitCodes_1.EXIT_CODE_GENERAL_ERROR);
21
22
  }
22
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../../src/db/mongodb.ts"],"names":[],"mappings":";;;;;AAGA,wCAYC;AAfD,wDAAgC;AAChC,4CAAiF;AAE1E,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,IAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,sCAAsC,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,kBAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,mCAAuB,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../../src/db/mongodb.ts"],"names":[],"mappings":";;;;;AAIA,wCAYC;AAhBD,wDAAgC;AAChC,4CAAiF;AACjF,oCAAgD;AAEzC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,IAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,OAAO,IAAA,4BAAoB,GAAE,sCAAsC,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,kBAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,IAAA,4BAAoB,GAAE,qBAAqB,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,OAAO,IAAA,4BAAoB,GAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,mCAAuB,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/middleware/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,QAc5E;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,QAG3E"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/middleware/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1D,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,QAc5E;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,QAG3E"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.requestLogger = requestLogger;
4
4
  exports.errorLogger = errorLogger;
5
+ const utils_1 = require("../utils");
5
6
  function requestLogger(req, res, next) {
6
7
  res.on('finish', () => {
7
8
  const now = new Date().toISOString();
@@ -23,7 +24,7 @@ function requestLogger(req, res, next) {
23
24
  next();
24
25
  }
25
26
  function errorLogger(err, req, res, next) {
26
- console.error(`🛑 [${new Date().toISOString()}] Error in ${req.method} ${req.originalUrl}:`, err);
27
+ console.error(`🛑 [${(0, utils_1.getCurrentDateString)()}] Error in ${req.method} ${req.originalUrl}:`, err);
27
28
  res.status(500).json();
28
29
  }
29
30
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/middleware/logger.ts"],"names":[],"mappings":";;AAEA,sCAcC;AAED,kCAGC;AAnBD,SAAgB,aAAa,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;IAC3E,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aAC3D,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,GAAG,CAAC;aAC/D,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aAChE,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aACxC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aAChE,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IACH,IAAI,EAAE,CAAC;AACT,CAAC;AAED,SAAgB,WAAW,CAAC,GAAQ,EAAE,GAAQ,EAAE,GAAQ,EAAE,IAAkB;IAC1E,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,cAAc,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC;IAClG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/middleware/logger.ts"],"names":[],"mappings":";;AAGA,sCAcC;AAED,kCAGC;AArBD,oCAAgD;AAEhD,SAAgB,aAAa,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;IAC3E,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aAC3D,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,GAAG,CAAC;aAC/D,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aAChE,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aACxC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aAChE,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IACH,IAAI,EAAE,CAAC;AACT,CAAC;AAED,SAAgB,WAAW,CAAC,GAAQ,EAAE,GAAQ,EAAE,GAAQ,EAAE,IAAkB;IAC1E,OAAO,CAAC,KAAK,CAAC,OAAO,IAAA,4BAAoB,GAAE,cAAc,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC;IAChG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -2,13 +2,12 @@
2
2
  "author": "Niklas Wockenfuß",
3
3
  "homepage": "https://niklaswockenfuss.de/",
4
4
  "name": "tsledge",
5
- "version": "0.1.1",
5
+ "version": "0.1.3",
6
6
  "license": "MIT",
7
7
  "description": "My playground and some helpful tools for web development ",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
10
10
  "files": [
11
- "docs/*",
12
11
  "dist/**/*",
13
12
  "README.md",
14
13
  "LICENSE"
@@ -19,7 +18,8 @@
19
18
  "scripts": {
20
19
  "dev": "ts-node-dev --respawn tests/main.ts",
21
20
  "repl": "ts-node --project tsconfig.json ./scripts/repl.ts",
22
- "build": "tsc"
21
+ "build": "tsc",
22
+ "publish": "tsc && npm publish"
23
23
  },
24
24
  "dependencies": {
25
25
  "cors": "^2.8.6",
package/docs/TODO.md DELETED
@@ -1,64 +0,0 @@
1
- ## Kern Thema:
2
- Überarbeitung und Erweiterung der API Endpunkte für Ressourcen.
3
- Es soll Userfreundlicher und flexibler werden.
4
- Außerdem möchte ich Kernelemente die ich in verschiedenen Projekten nutzen könnte auch hier Isoliert bereitstellen.
5
-
6
- ### Offene Fragen:
7
-
8
- - Wie soll die Id dargestellt werden?
9
-
10
- ```
11
- /api/v1/users?id=xx
12
- ```
13
- (und?)/oder
14
- ```
15
- /api/v1/users/42
16
- ```
17
-
18
- ### Filter
19
- - Die Filter müssen pro Endpunkt in einer Config festgelegt werden
20
- ```
21
- /users?role=admin&sort=createdAt,desc
22
- /users?skip=25&limit=25
23
- /user-profiles
24
- ```
25
-
26
- ## RETURN
27
-
28
- - Multiple Resources
29
- ```
30
- {
31
- "data": [],
32
- "meta": {
33
- "total": 0
34
- }
35
- }
36
- ```
37
-
38
- - Single Resource
39
- ```
40
- {
41
- "data": {}
42
- }
43
- ```
44
-
45
- ### TODO
46
-
47
- - Es fehlt noch eine Dynamische Auth Validierung im FluentPatternExecutor
48
- - Es fehlt auch noch die EOL Abfrage, das ganze soll auch möglichst Dynamisch sein
49
- - Die Filter(Felder der Collection, also nicht nach q und den feldern filtern) Überprüfen/Überarbeiten
50
- - Das Auth verfahren darf/muss für jede route speziell an und aus geschaltet werden
51
-
52
-
53
- ## Unsortiert
54
- GET /api/v1/users
55
- GET /api/v1/users/42
56
- POST /api/v1/users
57
- PATCH /api/v1/users/42
58
- DELETE /api/v1/users/42
59
- GET /api/v1/users/42/orders?status=open
60
- GET /user-roles
61
- GET /user-roles?userId=42
62
- GET /user-roles?roleId=7
63
- GET /users/42/roles
64
- GET /roles/7/users
Binary file