@l-v-yonsama/multi-platform-database-drivers 0.1.1 → 0.1.2

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 (130) hide show
  1. package/build/__tests__/db/drivers/AwsS3Driver.test.d.ts +1 -0
  2. package/build/__tests__/db/drivers/AwsS3Driver.test.js +83 -0
  3. package/build/__tests__/db/drivers/AwsS3Driver.test.js.map +1 -0
  4. package/build/__tests__/db/drivers/MySQLDriver.test.d.ts +1 -0
  5. package/build/__tests__/db/drivers/MySQLDriver.test.js +115 -0
  6. package/build/__tests__/db/drivers/MySQLDriver.test.js.map +1 -0
  7. package/build/__tests__/db/drivers/PostgresDriver.test.d.ts +1 -0
  8. package/build/__tests__/db/drivers/PostgresDriver.test.js +112 -0
  9. package/build/__tests__/db/drivers/PostgresDriver.test.js.map +1 -0
  10. package/build/__tests__/db/drivers/RedisDriver.test.d.ts +1 -0
  11. package/build/__tests__/db/drivers/RedisDriver.test.js +106 -0
  12. package/build/__tests__/db/drivers/RedisDriver.test.js.map +1 -0
  13. package/build/src/db/DBError.d.ts +7 -0
  14. package/build/src/db/DBError.js +20 -0
  15. package/build/src/db/DBError.js.map +1 -0
  16. package/build/src/db/drivers/AwsS3Driver.d.ts +38 -0
  17. package/build/src/db/drivers/AwsS3Driver.js +457 -0
  18. package/build/src/db/drivers/AwsS3Driver.js.map +1 -0
  19. package/build/src/db/drivers/BaseDriver.d.ts +40 -0
  20. package/build/src/db/drivers/BaseDriver.js +209 -0
  21. package/build/src/db/drivers/BaseDriver.js.map +1 -0
  22. package/build/src/db/drivers/MySQLDriver.d.ts +20 -0
  23. package/build/src/db/drivers/MySQLDriver.js +254 -0
  24. package/build/src/db/drivers/MySQLDriver.js.map +1 -0
  25. package/build/src/db/drivers/PostgresDriver.d.ts +22 -0
  26. package/build/src/db/drivers/PostgresDriver.js +297 -0
  27. package/build/src/db/drivers/PostgresDriver.js.map +1 -0
  28. package/build/src/db/drivers/RedisDriver.d.ts +23 -0
  29. package/build/src/db/drivers/RedisDriver.js +231 -0
  30. package/build/src/db/drivers/RedisDriver.js.map +1 -0
  31. package/build/src/db/manager.d.ts +8 -0
  32. package/build/src/db/manager.js +87 -0
  33. package/build/src/db/manager.js.map +1 -0
  34. package/build/src/db/resource/DbResource.d.ts +188 -0
  35. package/build/src/db/resource/DbResource.js +420 -0
  36. package/build/src/db/resource/DbResource.js.map +1 -0
  37. package/build/src/db/resource/MultipleResultSetDataHolder.d.ts +29 -0
  38. package/build/src/db/resource/MultipleResultSetDataHolder.js +106 -0
  39. package/build/src/db/resource/MultipleResultSetDataHolder.js.map +1 -0
  40. package/build/src/db/resource/ResourceUtil.d.ts +39 -0
  41. package/build/src/db/resource/ResourceUtil.js +337 -0
  42. package/build/src/db/resource/ResourceUtil.js.map +1 -0
  43. package/build/src/db/resource/ResultSetDataHolder.d.ts +126 -0
  44. package/build/src/db/resource/ResultSetDataHolder.js +722 -0
  45. package/build/src/db/resource/ResultSetDataHolder.js.map +1 -0
  46. package/build/src/db/resource/types/DBType.d.ts +18 -0
  47. package/build/src/db/resource/types/DBType.js +52 -0
  48. package/build/src/db/resource/types/DBType.js.map +1 -0
  49. package/build/src/db/resource/types/GeneralColumnType.d.ts +75 -0
  50. package/build/src/db/resource/types/GeneralColumnType.js +332 -0
  51. package/build/src/db/resource/types/GeneralColumnType.js.map +1 -0
  52. package/build/src/db/resource/types/MySQLColumnType.d.ts +42 -0
  53. package/build/src/db/resource/types/MySQLColumnType.js +142 -0
  54. package/build/src/db/resource/types/MySQLColumnType.js.map +1 -0
  55. package/build/src/db/resource/types/ODBCVendorType.d.ts +3 -0
  56. package/build/src/db/resource/types/ODBCVendorType.js +8 -0
  57. package/build/src/db/resource/types/ODBCVendorType.js.map +1 -0
  58. package/build/src/db/resource/types/PostgresColumnType.d.ts +53 -0
  59. package/build/src/db/resource/types/PostgresColumnType.js +105 -0
  60. package/build/src/db/resource/types/PostgresColumnType.js.map +1 -0
  61. package/build/src/db/resource/types/RedisKeyType.d.ts +12 -0
  62. package/build/src/db/resource/types/RedisKeyType.js +55 -0
  63. package/build/src/db/resource/types/RedisKeyType.js.map +1 -0
  64. package/build/src/db/resource/types/ResourceType.d.ts +10 -0
  65. package/build/src/db/resource/types/ResourceType.js +15 -0
  66. package/build/src/db/resource/types/ResourceType.js.map +1 -0
  67. package/build/src/main.d.ts +0 -0
  68. package/build/src/main.js +3 -0
  69. package/build/src/main.js.map +1 -0
  70. package/build/src/service/request/general_db_request.d.ts +18 -0
  71. package/build/src/service/request/general_db_request.js +14 -0
  72. package/build/src/service/request/general_db_request.js.map +1 -0
  73. package/{src/service/request/redis_request.ts → build/src/service/request/redis_request.d.ts} +8 -11
  74. package/build/src/service/request/redis_request.js +14 -0
  75. package/build/src/service/request/redis_request.js.map +1 -0
  76. package/build/src/service/request/s3_request.d.ts +14 -0
  77. package/build/src/service/request/s3_request.js +12 -0
  78. package/build/src/service/request/s3_request.js.map +1 -0
  79. package/build/src/service/response/GeneralReponse.d.ts +6 -0
  80. package/build/src/service/response/GeneralReponse.js +12 -0
  81. package/build/src/service/response/GeneralReponse.js.map +1 -0
  82. package/build/src/types/DateModifiedType.d.ts +14 -0
  83. package/build/src/types/DateModifiedType.js +68 -0
  84. package/build/src/types/DateModifiedType.js.map +1 -0
  85. package/build/src/types/FileKindType.d.ts +12 -0
  86. package/build/src/types/FileKindType.js +75 -0
  87. package/build/src/types/FileKindType.js.map +1 -0
  88. package/build/src/util/file_util.d.ts +22 -0
  89. package/build/src/util/file_util.js +143 -0
  90. package/build/src/util/file_util.js.map +1 -0
  91. package/package.json +5 -1
  92. package/.editorconfig +0 -15
  93. package/.eslintignore +0 -1
  94. package/.eslintrc.json +0 -30
  95. package/.github/workflows/npm-publish-github-packages.yml +0 -50
  96. package/.prettierrc +0 -12
  97. package/__tests__/db/drivers/AwsS3Driver.test.ts +0 -97
  98. package/__tests__/db/drivers/MySQLDriver.test.ts +0 -140
  99. package/__tests__/db/drivers/PostgresDriver.test.ts +0 -139
  100. package/__tests__/db/drivers/RedisDriver.test.ts +0 -156
  101. package/jest.config.js +0 -18
  102. package/src/db/DBError.ts +0 -26
  103. package/src/db/drivers/AwsS3Driver.ts +0 -539
  104. package/src/db/drivers/BaseDriver.ts +0 -256
  105. package/src/db/drivers/MongoDriver.js +0 -110
  106. package/src/db/drivers/MySQLDriver.ts +0 -318
  107. package/src/db/drivers/PostgresDriver.ts +0 -363
  108. package/src/db/drivers/RedisDriver.ts +0 -277
  109. package/src/db/manager.ts +0 -95
  110. package/src/db/resource/DbResource.ts +0 -579
  111. package/src/db/resource/MultipleResultSetDataHolder.ts +0 -119
  112. package/src/db/resource/ResourceUtil.ts +0 -366
  113. package/src/db/resource/ResultSetDataHolder.ts +0 -806
  114. package/src/db/resource/types/DBType.ts +0 -43
  115. package/src/db/resource/types/GeneralColumnType.ts +0 -321
  116. package/src/db/resource/types/MySQLColumnType.ts +0 -134
  117. package/src/db/resource/types/ODBCVendorType.ts +0 -3
  118. package/src/db/resource/types/PostgresColumnType.ts +0 -94
  119. package/src/db/resource/types/RedisKeyType.ts +0 -48
  120. package/src/db/resource/types/ResourceType.ts +0 -10
  121. package/src/main.ts +0 -1
  122. package/src/service/request/general_db_request.ts +0 -20
  123. package/src/service/request/s3_request.ts +0 -15
  124. package/src/service/response/GeneralReponse.ts +0 -10
  125. package/src/types/DateModifiedType.ts +0 -75
  126. package/src/types/FileKindType.ts +0 -80
  127. package/src/util/file_util.ts +0 -178
  128. package/tsconfig.json +0 -23
  129. package/tsconfig.release.json +0 -23
  130. package/unit-test.yml +0 -41
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DateModifiedType = void 0;
4
+ var DateModifiedType;
5
+ (function (DateModifiedType) {
6
+ DateModifiedType["None"] = "-";
7
+ DateModifiedType["Today"] = "Today";
8
+ DateModifiedType["Yesterday"] = "Yesterday";
9
+ DateModifiedType["ThisWeek"] = "This week";
10
+ DateModifiedType["LastWeek"] = "Last week";
11
+ DateModifiedType["ThisMonth"] = "This month";
12
+ DateModifiedType["LastMonth"] = "Last month";
13
+ DateModifiedType["ThisYear"] = "This year";
14
+ DateModifiedType["LastYear"] = "Last year";
15
+ })(DateModifiedType = exports.DateModifiedType || (exports.DateModifiedType = {}));
16
+ const DAY1 = 1000 * 60 * 60 * 24;
17
+ const cutoffHours = (dt) => {
18
+ const r = new Date();
19
+ r.setTime(dt.getTime());
20
+ r.setHours(0);
21
+ r.setMinutes(0);
22
+ r.setSeconds(0);
23
+ r.setMilliseconds(0);
24
+ return r;
25
+ };
26
+ (function (DateModifiedType) {
27
+ function isValid(type, inDate) {
28
+ const now = new Date();
29
+ const today = cutoffHours(now).getTime();
30
+ if (typeof inDate === 'number') {
31
+ inDate = new Date(inDate);
32
+ }
33
+ switch (type) {
34
+ case DateModifiedType.Today:
35
+ return today <= inDate.getTime() && inDate.getTime() <= today + DAY1;
36
+ case DateModifiedType.Yesterday:
37
+ return today - DAY1 <= inDate.getTime() && inDate.getTime() <= today;
38
+ case DateModifiedType.ThisWeek: {
39
+ const d = new Date();
40
+ d.setTime(d.getTime() - (d.getDay() ? d.getDay() : 7) * 24 * 60 * 60 * 1000);
41
+ const endOfWeek = cutoffHours(d).getTime();
42
+ d.setTime(d.getTime() - 6 * 24 * 60 * 60 * 1000);
43
+ const startOfWeek = cutoffHours(d).getTime();
44
+ return (endOfWeek <= inDate.getTime() &&
45
+ inDate.getTime() <= startOfWeek + DAY1);
46
+ }
47
+ case DateModifiedType.LastWeek: {
48
+ const d = new Date();
49
+ d.setTime(d.getTime() -
50
+ (d.getDay() ? d.getDay() : 7) * 24 * 60 * 60 * 1000 -
51
+ DAY1 * 7);
52
+ const endOfWeek = cutoffHours(d).getTime();
53
+ d.setTime(d.getTime() - 6 * 24 * 60 * 60 * 1000);
54
+ const startOfWeek = cutoffHours(d).getTime();
55
+ return (endOfWeek <= inDate.getTime() &&
56
+ inDate.getTime() <= startOfWeek + DAY1);
57
+ }
58
+ case DateModifiedType.ThisMonth:
59
+ return (now.getFullYear() === inDate.getFullYear() &&
60
+ now.getMonth() === inDate.getMonth());
61
+ case DateModifiedType.ThisYear:
62
+ return now.getFullYear() === inDate.getFullYear();
63
+ }
64
+ return true;
65
+ }
66
+ DateModifiedType.isValid = isValid;
67
+ })(DateModifiedType = exports.DateModifiedType || (exports.DateModifiedType = {}));
68
+ //# sourceMappingURL=DateModifiedType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateModifiedType.js","sourceRoot":"","sources":["../../../src/types/DateModifiedType.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare enum FileKindType {
2
+ All = "All",
3
+ Image = "Image",
4
+ Video = "Video",
5
+ Music = "Music",
6
+ Document = "Document",
7
+ Program = "Program",
8
+ Text = "Text"
9
+ }
10
+ export declare namespace FileKindType {
11
+ function isValid(type: FileKindType, file_name: string): boolean;
12
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileKindType = void 0;
4
+ var FileKindType;
5
+ (function (FileKindType) {
6
+ FileKindType["All"] = "All";
7
+ FileKindType["Image"] = "Image";
8
+ FileKindType["Video"] = "Video";
9
+ FileKindType["Music"] = "Music";
10
+ FileKindType["Document"] = "Document";
11
+ FileKindType["Program"] = "Program";
12
+ FileKindType["Text"] = "Text";
13
+ })(FileKindType = exports.FileKindType || (exports.FileKindType = {}));
14
+ (function (FileKindType) {
15
+ function isValid(type, file_name) {
16
+ if (FileKindType.All === type) {
17
+ return true;
18
+ }
19
+ file_name = file_name.toLocaleLowerCase().trim();
20
+ const idx = file_name.lastIndexOf('.');
21
+ if (file_name === '' || idx <= 0) {
22
+ return false;
23
+ }
24
+ const ext = file_name.substring(idx + 1);
25
+ switch (type) {
26
+ case FileKindType.Image:
27
+ return (ext === 'jpg' ||
28
+ ext === 'jpeg' ||
29
+ ext === 'png' ||
30
+ ext === 'gif' ||
31
+ ext === 'tiff' ||
32
+ ext === 'tif' ||
33
+ ext === 'bmp' ||
34
+ ext === 'webp');
35
+ case FileKindType.Video:
36
+ return (ext === 'mov' || ext === 'mp4' || ext === 'webm' || ext === 'avi');
37
+ case FileKindType.Music:
38
+ return ext === 'wav' || ext === 'mp3';
39
+ case FileKindType.Document:
40
+ return (ext === 'xls' ||
41
+ ext === 'doc' ||
42
+ ext === 'ppt' ||
43
+ ext === 'pdf' ||
44
+ ext === 'xlsx' ||
45
+ ext === 'docx' ||
46
+ ext === 'pptx');
47
+ case FileKindType.Text:
48
+ if (ext === 'txt' || ext === 'json') {
49
+ return true;
50
+ }
51
+ return (ext === 'js' ||
52
+ ext === 'ts' ||
53
+ ext === 'py' ||
54
+ ext === 'pyx' ||
55
+ ext === 'java' ||
56
+ ext === 'html' ||
57
+ ext === 'xml' ||
58
+ ext === 'vue' ||
59
+ ext === 'c');
60
+ case FileKindType.Program:
61
+ return (ext === 'js' ||
62
+ ext === 'ts' ||
63
+ ext === 'py' ||
64
+ ext === 'pyx' ||
65
+ ext === 'java' ||
66
+ ext === 'html' ||
67
+ ext === 'xml' ||
68
+ ext === 'vue' ||
69
+ ext === 'c');
70
+ }
71
+ return false;
72
+ }
73
+ FileKindType.isValid = isValid;
74
+ })(FileKindType = exports.FileKindType || (exports.FileKindType = {}));
75
+ //# sourceMappingURL=FileKindType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileKindType.js","sourceRoot":"","sources":["../../../src/types/FileKindType.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,+BAAe,CAAA;IACf,+BAAe,CAAA;IACf,+BAAe,CAAA;IACf,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;IACnB,6BAAa,CAAA;AACf,CAAC,EARW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAQvB;AAED,WAAiB,YAAY;IAC3B,SAAgB,OAAO,CAAC,IAAkB,EAAE,SAAiB;QAC3D,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,EAAE;YAC7B,OAAO,IAAI,CAAC;SACb;QACD,SAAS,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,SAAS,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QACD,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzC,QAAQ,IAAI,EAAE;YACZ,KAAK,YAAY,CAAC,KAAK;gBACrB,OAAO,CACL,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,MAAM;oBACd,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,MAAM;oBACd,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,MAAM,CACf,CAAC;YACJ,KAAK,YAAY,CAAC,KAAK;gBACrB,OAAO,CACL,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,CAClE,CAAC;YACJ,KAAK,YAAY,CAAC,KAAK;gBACrB,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,CAAC;YACxC,KAAK,YAAY,CAAC,QAAQ;gBACxB,OAAO,CACL,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,MAAM;oBACd,GAAG,KAAK,MAAM;oBACd,GAAG,KAAK,MAAM,CACf,CAAC;YACJ,KAAK,YAAY,CAAC,IAAI;gBACpB,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,EAAE;oBACnC,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,CACL,GAAG,KAAK,IAAI;oBACZ,GAAG,KAAK,IAAI;oBACZ,GAAG,KAAK,IAAI;oBACZ,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,MAAM;oBACd,GAAG,KAAK,MAAM;oBACd,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,GAAG,CACZ,CAAC;YACJ,KAAK,YAAY,CAAC,OAAO;gBACvB,OAAO,CACL,GAAG,KAAK,IAAI;oBACZ,GAAG,KAAK,IAAI;oBACZ,GAAG,KAAK,IAAI;oBACZ,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,MAAM;oBACd,GAAG,KAAK,MAAM;oBACd,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,GAAG,CACZ,CAAC;SACL;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAnEe,oBAAO,UAmEtB,CAAA;AACH,CAAC,EArEgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAqE5B"}
@@ -0,0 +1,22 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import * as fs from 'fs';
4
+ import GeneralResponse from '../service/response/GeneralReponse';
5
+ export { replaceSafeFileName, createKeyFolder, getAppPath, createAbsoluteFilePath, getAbsTmpDirPath, readFile, syncReadFile, isAsyncFileExists, sizeToString, stats, getKeyFile, };
6
+ declare function sizeToString(len?: number): string;
7
+ declare function stats(file_path: string): StatsExtra;
8
+ export interface StatsExtra extends fs.Stats {
9
+ size_string: string;
10
+ type: string;
11
+ basename: string;
12
+ extension: string;
13
+ }
14
+ declare function getAppPath(): string;
15
+ declare function createAbsoluteFilePath(category: string, relative_file_path: string): string;
16
+ declare function replaceSafeFileName(name?: string): string;
17
+ declare function createKeyFolder(bucket_name: string, key: string): Promise<string>;
18
+ declare function getAbsTmpDirPath(): string;
19
+ declare function isAsyncFileExists(full_path: string): Promise<boolean>;
20
+ declare function readFile(full_path: string, encoding?: string | null): Promise<string | Buffer>;
21
+ declare function syncReadFile(full_path: string, encoding?: BufferEncoding | null): string | Buffer;
22
+ declare function getKeyFile(bucket_name: string, key: string): Promise<GeneralResponse>;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getKeyFile = exports.stats = exports.sizeToString = exports.isAsyncFileExists = exports.syncReadFile = exports.readFile = exports.getAbsTmpDirPath = exports.createAbsoluteFilePath = exports.getAppPath = exports.createKeyFolder = exports.replaceSafeFileName = void 0;
4
+ /* eslint-disable @typescript-eslint/no-unused-vars */
5
+ const path = require("path");
6
+ const fs = require("fs");
7
+ const pretty_bytes_1 = require("pretty-bytes");
8
+ const util_1 = require("util");
9
+ const jconv = require("jconv");
10
+ const GeneralReponse_1 = require("../service/response/GeneralReponse");
11
+ const AWS = 'aws';
12
+ const TMP = 'tmp';
13
+ function sizeToString(len) {
14
+ if (len === undefined) {
15
+ return '';
16
+ }
17
+ return (0, pretty_bytes_1.default)(len);
18
+ }
19
+ exports.sizeToString = sizeToString;
20
+ function stats(file_path) {
21
+ const stat = fs.statSync(file_path);
22
+ const r = Object.assign({}, stat);
23
+ r.size_string = sizeToString(stat.size);
24
+ r.type = '';
25
+ r.extension = '';
26
+ r.basename = path.basename(file_path);
27
+ const dot = r.basename.lastIndexOf('.');
28
+ if (dot >= 0) {
29
+ r.extension = r.basename.substring(dot + 1);
30
+ if (r.extension.match(/(jpg|jpeg|png|gif|bmp|tiff|tif)/i)) {
31
+ r.type = 'image/' + r.extension;
32
+ }
33
+ }
34
+ return r;
35
+ }
36
+ exports.stats = stats;
37
+ function getAppPath() {
38
+ return './';
39
+ }
40
+ exports.getAppPath = getAppPath;
41
+ function createAbsoluteFilePath(category, relative_file_path) {
42
+ const userDataDir = getAppPath();
43
+ return path.join(userDataDir, category, relative_file_path);
44
+ }
45
+ exports.createAbsoluteFilePath = createAbsoluteFilePath;
46
+ const lpad = (n) => (n < 10 ? '0' + n : String(n));
47
+ function replaceSafeFileName(name = '') {
48
+ return name.replace(/[<>#%{}|\\^~[]`;\?:@=& ]/gi, '_').trim();
49
+ }
50
+ exports.replaceSafeFileName = replaceSafeFileName;
51
+ async function createKeyFolder(bucket_name, key) {
52
+ if (key.startsWith('/')) {
53
+ // remove.
54
+ key = key.substring(1);
55
+ }
56
+ let folders = [];
57
+ if (key.endsWith('/')) {
58
+ // this is folder
59
+ // remove.
60
+ key = key.substring(0, key.length - 1);
61
+ folders = key.split('/');
62
+ }
63
+ else {
64
+ // this is file
65
+ folders = key.split('/');
66
+ folders.pop(); // remove filename
67
+ }
68
+ const userDataDir = getAppPath();
69
+ const output_dir_path = path.join(userDataDir, AWS, bucket_name, ...folders);
70
+ fs.promises.mkdir(output_dir_path, { recursive: true });
71
+ return output_dir_path;
72
+ }
73
+ exports.createKeyFolder = createKeyFolder;
74
+ function getAbsTmpDirPath() {
75
+ const userDataDir = getAppPath();
76
+ return path.join(userDataDir, TMP);
77
+ }
78
+ exports.getAbsTmpDirPath = getAbsTmpDirPath;
79
+ async function isAsyncFileExists(full_path) {
80
+ const stat = (0, util_1.promisify)(fs.stat);
81
+ try {
82
+ await stat(full_path);
83
+ return true;
84
+ }
85
+ catch (e) {
86
+ return false;
87
+ }
88
+ }
89
+ exports.isAsyncFileExists = isAsyncFileExists;
90
+ async function readFile(full_path, encoding = null) {
91
+ return new Promise((resolve, reject) => {
92
+ if (encoding && encoding.match(/sjis|jis|eucjp|ucs2|utf16le/i)) {
93
+ fs.readFile(full_path, (err, buf) => {
94
+ if (err) {
95
+ reject(err);
96
+ }
97
+ else {
98
+ // var buf = new Buffer(data, 'binary');
99
+ const retStr = jconv.decode(buf, encoding);
100
+ resolve(retStr);
101
+ }
102
+ });
103
+ }
104
+ else {
105
+ // log.info(LOG_PREFIX, '#readFile', full_path)
106
+ fs.readFile(full_path, encoding, (err, data) => {
107
+ if (err) {
108
+ reject(err);
109
+ }
110
+ else {
111
+ resolve(data);
112
+ }
113
+ });
114
+ }
115
+ });
116
+ }
117
+ exports.readFile = readFile;
118
+ function syncReadFile(full_path, encoding = null) {
119
+ if (encoding) {
120
+ return fs.readFileSync(full_path, encoding);
121
+ }
122
+ return fs.readFileSync(full_path);
123
+ }
124
+ exports.syncReadFile = syncReadFile;
125
+ async function getKeyFile(bucket_name, key) {
126
+ if (key.startsWith('/')) {
127
+ key = key.substring(1);
128
+ }
129
+ if (key.endsWith('/')) {
130
+ // this is folder
131
+ // remove.
132
+ key = key.substring(0, key.length - 1);
133
+ }
134
+ const userDataDir = getAppPath();
135
+ const key_file_path = path.join(userDataDir, AWS, bucket_name, ...key.split('/'));
136
+ const exists = await isAsyncFileExists(key_file_path);
137
+ const res = new GeneralReponse_1.default(exists, '');
138
+ res.result = key_file_path;
139
+ // log.info(LOG_PREFIX, "key_file_path:res=", res);
140
+ return res;
141
+ }
142
+ exports.getKeyFile = getKeyFile;
143
+ //# sourceMappingURL=file_util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_util.js","sourceRoot":"","sources":["../../../src/util/file_util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@l-v-yonsama/multi-platform-database-drivers",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "multi-platform database drivers in TypeScript.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -29,6 +29,7 @@
29
29
  "build": "tsc -p tsconfig.json",
30
30
  "build:watch": "tsc -w -p tsconfig.json",
31
31
  "build:release": "npm run clean && tsc -p tsconfig.release.json",
32
+ "prepublishOnly": "npm run build:release",
32
33
  "lint": "eslint . --ext .ts --ext .mts",
33
34
  "lint:fix": "eslint --fix . --ext .ts --ext .mts",
34
35
  "test0": "jest --coverage",
@@ -62,6 +63,9 @@
62
63
  "volta": {
63
64
  "node": "18.12.1"
64
65
  },
66
+ "files": [
67
+ "build"
68
+ ],
65
69
  "repository": {
66
70
  "type": "git",
67
71
  "url": "git+https://github.com/l-v-yonsama/db-drivers.git"
package/.editorconfig DELETED
@@ -1,15 +0,0 @@
1
- root = true
2
-
3
- [*]
4
- charset = utf-8
5
- end_of_line = lf
6
- trim_trailing_whitespace = true
7
- insert_final_newline = true
8
-
9
- [*.md]
10
- insert_final_newline = false
11
- trim_trailing_whitespace = false
12
-
13
- [*.{js,json,ts,mts,yml,yaml}]
14
- indent_size = 2
15
- indent_style = space
package/.eslintignore DELETED
@@ -1 +0,0 @@
1
- /**/*.js
package/.eslintrc.json DELETED
@@ -1,30 +0,0 @@
1
- {
2
- "env": {
3
- "browser": false,
4
- "jest": true,
5
- "node": true
6
- },
7
- "parser": "@typescript-eslint/parser",
8
- "parserOptions": {
9
- "project": "tsconfig.json",
10
- "sourceType": "module"
11
- },
12
- "plugins": ["@typescript-eslint", "jest"],
13
- "extends": [
14
- "eslint:recommended",
15
- "plugin:@typescript-eslint/recommended",
16
- "plugin:jest/recommended",
17
- "prettier"
18
- ],
19
- "rules": {
20
- // The following rule is enabled only to supplement the inline suppression
21
- // examples, and because it is not a recommended rule, you should either
22
- // disable it, or understand what it enforces.
23
- // https://typescript-eslint.io/rules/explicit-function-return-type/
24
- "@typescript-eslint/explicit-function-return-type": "warn",
25
- "no-async-promise-executor": "warn",
26
- "@typescript-eslint/no-namespace": "off",
27
- "@typescript-eslint/no-explicit-any": "off",
28
- "@typescript-eslint/ban-types": "off"
29
- }
30
- }
@@ -1,50 +0,0 @@
1
- # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
2
- # For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
3
-
4
- name: Node.js Package
5
-
6
- on:
7
- release:
8
- types: [created]
9
-
10
- jobs:
11
- build:
12
- runs-on: ubuntu-latest
13
- steps:
14
- - uses: actions/checkout@v3
15
- - uses: actions/setup-node@v3
16
- with:
17
- node-version: 16
18
- # E2E テストを Docker Compose で実行する
19
- - name: run test on docker-compose
20
- run: |
21
- docker-compose -f ./unit-test.yml build
22
- docker-compose -f ./unit-test.yml up -d
23
- - name: wait
24
- run: docker-compose -f unit-test.yml exec -T mysql bash -c "mysqladmin --wait --count 60 ping -pp@ssw0rd --protocol=tcp || exit 1"
25
- - name: wait2
26
- run: |
27
- while [ "$(curl -I http://localhost:6003/minio/health/live -o /dev/null -w '%{http_code}\n' -s)" != "200" ]
28
- do
29
- echo "waiting"
30
- sleep 2
31
- done
32
- - run: npm ci
33
- - run: npm test
34
-
35
- publish-gpr:
36
- needs: build
37
- runs-on: ubuntu-latest
38
- permissions:
39
- contents: read
40
- packages: write
41
- steps:
42
- - uses: actions/checkout@v3
43
- - uses: actions/setup-node@v3
44
- with:
45
- node-version: 16
46
- registry-url: https://npm.pkg.github.com/
47
- - run: npm ci
48
- - run: npm publish
49
- env:
50
- NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
package/.prettierrc DELETED
@@ -1,12 +0,0 @@
1
- {
2
- "singleQuote": true,
3
- "trailingComma": "all",
4
- "overrides": [
5
- {
6
- "files": ["*.ts", "*.mts"],
7
- "options": {
8
- "parser": "typescript"
9
- }
10
- }
11
- ]
12
- }
@@ -1,97 +0,0 @@
1
- import AwsS3Driver from '../../../src/db/drivers/AwsS3Driver';
2
- import {
3
- DbConnection,
4
- DbDatabase,
5
- DbS3Bucket,
6
- DbS3Owner,
7
- } from '../../../src/db/resource/DbResource';
8
- import { DBType } from '../../../src/db/resource/types/DBType';
9
-
10
- const connectOption = {
11
- port: 6003,
12
- user: 'testuser', // aws:accessKeyId
13
- password: 'testpass', // aws:secretAccessKey
14
- url: 'http://127.0.0.1:6003',
15
- region: 'us-west-1',
16
- };
17
-
18
- describe('AwsS3Driver', () => {
19
- let driver: AwsS3Driver;
20
- const bucket = 'testbucket';
21
-
22
- beforeAll(async () => {
23
- driver = createDriver();
24
- await driver.asyncConnect();
25
- try {
26
- await driver.removeBucket({ bucket });
27
- } catch (e) {
28
- // The specified bucket does not exist
29
- // console.error('error:' + e.message);
30
- }
31
- await driver.createBucket({ bucket });
32
- await driver.putObject({ bucket, key: 'text/abc.txt', body: 'abc' });
33
- await driver.putObject({
34
- bucket,
35
- key: 'text/folder/abc.txt',
36
- body: 'abc',
37
- });
38
- await driver.putObject({ bucket, key: 'text/empty.txt', body: '' });
39
- });
40
-
41
- afterAll(async () => {
42
- await driver.asyncClose();
43
- });
44
-
45
- describe('getName', () => {
46
- it('should return constructor name', () => {
47
- expect(driver.getName()).toBe('AwsS3Driver');
48
- });
49
- });
50
-
51
- describe('asyncGetResouces', () => {
52
- let testDbRes: DbDatabase;
53
- let testBucketRes: DbS3Bucket;
54
-
55
- it('should return Database resource', async () => {
56
- const dbRootRes = await driver.getResouces({});
57
- expect(dbRootRes).toHaveLength(1);
58
- testDbRes = dbRootRes[0] as DbDatabase;
59
- expect(testDbRes.getName()).toBe('S3');
60
- });
61
-
62
- it('should have DbS3Bucket resource', async () => {
63
- testBucketRes = testDbRes.getChildByName(bucket) as DbS3Bucket;
64
- expect(testBucketRes.getName()).toBe(bucket);
65
- });
66
-
67
- it('should have DbS3Owner resource', async () => {
68
- const owner = testDbRes.getChildByName('minio') as DbS3Owner;
69
- expect(owner.getName()).toBe('minio');
70
- });
71
-
72
- it('should have values', async () => {
73
- const textValue = await driver.getValueByKey({
74
- bucket,
75
- key: 'text/abc.txt',
76
- });
77
- expect(textValue).toBe('abc');
78
-
79
- const textValue2 = await driver.getValueByKey({
80
- bucket,
81
- key: 'text/folder/abc.txt',
82
- });
83
- expect(textValue2).toBe('abc');
84
-
85
- const textValue3 = await driver.getValueByKey({
86
- bucket,
87
- key: 'text/empty.txt',
88
- });
89
- expect(textValue3).toBe('');
90
- });
91
- });
92
-
93
- function createDriver(): AwsS3Driver {
94
- const con = new DbConnection({ ...connectOption, db_type: DBType.Minio });
95
- return new AwsS3Driver(con);
96
- }
97
- });