@pittica/google-business-intelligence-helpers 1.15.3 → 1.16.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.
- package/dist/contents/storage.js +14 -6
- package/dist/index.js +3 -1
- package/dist/naming/file.js +14 -3
- package/dist/naming/split.js +2 -2
- package/package.json +6 -6
package/dist/contents/storage.js
CHANGED
|
@@ -93,12 +93,20 @@ exports.extractStorageResponse = (response, schemas = "", dateFormat = "YYYY-MM-
|
|
|
93
93
|
* @param {string} folder Google Storage folder path.
|
|
94
94
|
* @returns {object} A safe name of a file in the given folder in the given bucket.
|
|
95
95
|
*/
|
|
96
|
-
exports.getSafeFilename = (storage, bucket, filename, folder = "") =>
|
|
97
|
-
const
|
|
98
|
-
name
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
});
|
|
96
|
+
exports.getSafeFilename = (storage, bucket, filename, folder = "") => {
|
|
97
|
+
const {
|
|
98
|
+
name,
|
|
99
|
+
ext
|
|
100
|
+
} = path.parse(filename);
|
|
101
|
+
const regex = new RegExp(`${name}(_\\d+)?\\${ext}$`, "gs");
|
|
102
|
+
return getFiles(storage, bucket, folder ? `${folder}/${name}` : name).then(response => {
|
|
103
|
+
const [files] = response;
|
|
104
|
+
const file = files.flat(3).filter(value => value && typeof value.name !== "undefined" && regex.test(value.name)).map(({
|
|
105
|
+
name
|
|
106
|
+
}) => folder ? name.replace(new RegExp(`^${folder}\/`, "gs"), "") : name).slice(-1).pop();
|
|
107
|
+
return typeof file !== "undefined" && file ? incrementFilenameVersion(splitName(file)) : splitName(filename);
|
|
108
|
+
});
|
|
109
|
+
};
|
|
102
110
|
|
|
103
111
|
/**
|
|
104
112
|
* Ritrieves a safe name of a file in the given folder in the given bucket.
|
package/dist/index.js
CHANGED
|
@@ -58,7 +58,8 @@ const {
|
|
|
58
58
|
getJsonStorageName,
|
|
59
59
|
createFilename,
|
|
60
60
|
mergeFilename,
|
|
61
|
-
mergeFiledata
|
|
61
|
+
mergeFiledata,
|
|
62
|
+
isFiledataMatch
|
|
62
63
|
} = require("./naming/file");
|
|
63
64
|
const {
|
|
64
65
|
splitName,
|
|
@@ -114,6 +115,7 @@ exports.getJsonStorageName = getJsonStorageName;
|
|
|
114
115
|
exports.createFilename = createFilename;
|
|
115
116
|
exports.mergeFilename = mergeFilename;
|
|
116
117
|
exports.mergeFiledata = mergeFiledata;
|
|
118
|
+
exports.isFiledataMatch = isFiledataMatch;
|
|
117
119
|
exports.splitName = splitName;
|
|
118
120
|
exports.splitIdByKeys = splitIdByKeys;
|
|
119
121
|
exports.scripts = {
|
package/dist/naming/file.js
CHANGED
|
@@ -58,9 +58,10 @@ exports.getJsonStorageName = (date, file) => `${format(date, "YYYY-MM-DD")}/${fo
|
|
|
58
58
|
* Generates a filename from the givend data.
|
|
59
59
|
*
|
|
60
60
|
* @param {object} filedata File data.
|
|
61
|
+
* @param {string} format Date format.
|
|
61
62
|
* @returns {string} A filename from the givend data.
|
|
62
63
|
*/
|
|
63
|
-
exports.createFilename = filedata => `${format(filedata.date,
|
|
64
|
+
exports.createFilename = (filedata, format = "YYYY-MM-DD") => `${format(filedata.date, format)}-${filedata.fullname}.${filedata.extension}`;
|
|
64
65
|
|
|
65
66
|
/**
|
|
66
67
|
* Merges the given filename parts.
|
|
@@ -69,9 +70,10 @@ exports.createFilename = filedata => `${format(filedata.date, "YYYY-MM-DD")}-${f
|
|
|
69
70
|
* @param {string} name File or function name.
|
|
70
71
|
* @param {string} extension File extension.
|
|
71
72
|
* @param {int} version File version.
|
|
73
|
+
* @param {string} format Date format.
|
|
72
74
|
* @returns {string} The merged given filename parts.
|
|
73
75
|
*/
|
|
74
|
-
exports.mergeFilename = (date, name, extension, version = 0) => `${format(date,
|
|
76
|
+
exports.mergeFilename = (date, name, extension, version = 0, format = "YYYY-MM-DD") => `${format(date, format)}-${name}${version ? `_${version}` : ""}.${extension.toLowerCase()}`;
|
|
75
77
|
|
|
76
78
|
/**
|
|
77
79
|
* Merges the given filename data.
|
|
@@ -85,4 +87,13 @@ exports.mergeFiledata = ({
|
|
|
85
87
|
name,
|
|
86
88
|
extension,
|
|
87
89
|
version
|
|
88
|
-
}, increment = false) => exports.mergeFilename(date, name, extension, increment ? typeof version !== "undefined" ? version + 1 : 1 : version);
|
|
90
|
+
}, increment = false) => exports.mergeFilename(date, name, extension, increment ? typeof version !== "undefined" ? version + 1 : 1 : version);
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Checks if two file data objects have matching filenames.
|
|
94
|
+
*
|
|
95
|
+
* @param {object} first First object compare.
|
|
96
|
+
* @param {object} second Second object compare.
|
|
97
|
+
* @returns {boolean} True if the filenames match, false otherwise.
|
|
98
|
+
*/
|
|
99
|
+
exports.isFiledataMatch = (first, second) => exports.mergeFilename(first) === exports.mergeFilename(second);
|
package/dist/naming/split.js
CHANGED
|
@@ -16,7 +16,7 @@ const {
|
|
|
16
16
|
getFilenameVersion
|
|
17
17
|
} = require("./file");
|
|
18
18
|
const {
|
|
19
|
-
|
|
19
|
+
partsToDateUTC
|
|
20
20
|
} = require("./date");
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -30,7 +30,7 @@ exports.splitName = name => {
|
|
|
30
30
|
const split = name.split(/^(\d{4})\-(\d{2})\-(\d{2})\-(([\w_-]+)(?:\_[0-9]+)|([\w_-]+))(?:\.(\w+))$/gis);
|
|
31
31
|
if (split.length >= 8) {
|
|
32
32
|
return {
|
|
33
|
-
date:
|
|
33
|
+
date: partsToDateUTC(split),
|
|
34
34
|
name: typeof split[5] !== "undefined" ? split[5] : split[6],
|
|
35
35
|
fullname: typeof split[4] !== "undefined" ? split[4] : name,
|
|
36
36
|
extension: split[7],
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pittica/google-business-intelligence-helpers",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.16.0",
|
|
5
5
|
"description": "Helpers for business intelligence for Google Cloud.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"scripts": {
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@pittica/google-bigquery-helpers": "^1.7.0",
|
|
40
|
-
"@pittica/google-cloud-storage-helpers": "^1.
|
|
40
|
+
"@pittica/google-cloud-storage-helpers": "^1.7.1",
|
|
41
41
|
"@pittica/logger-helpers": "^1.2.2",
|
|
42
|
-
"date-and-time": "^4.7.
|
|
42
|
+
"date-and-time": "^4.7.1"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@babel/cli": "^8.0
|
|
45
|
+
"@babel/cli": "^8.1.0",
|
|
46
46
|
"mkdirp": "^3.0.1",
|
|
47
|
-
"prettier": "^3.
|
|
48
|
-
"rimraf": "^6.1.
|
|
47
|
+
"prettier": "^3.10.0",
|
|
48
|
+
"rimraf": "^6.1.4",
|
|
49
49
|
"run-func": "^3.0.0"
|
|
50
50
|
}
|
|
51
51
|
}
|