@uxf/resizer 2.1.0 → 2.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.
- package/.resizer-config.json +4 -5
- package/README.md +4 -29
- package/index.js +14 -16
- package/package.json +1 -1
package/.resizer-config.json
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
[
|
|
2
2
|
{
|
|
3
3
|
"route": "/generated/:namespace/:p1/:p2/:filename([a-f0-9\\-]+)_:width(\\d+)_:height(\\d+)_:fit([a-z]+)_:position([a-z]+)_:background([a-z]+)_:trim([a-z]+)_:extension.:toFormat",
|
|
4
|
-
"
|
|
4
|
+
"source": "/Users/vejvis/UXF/projects/resizer/example-upload/:namespace/:p1/:p2/:filename.:extension"
|
|
5
5
|
},
|
|
6
6
|
{
|
|
7
7
|
"route": "/generated/:namespace/:p1/:p2/:filename([a-f0-9\\-]+)_:width(\\d+)_:height(\\d+)_:fit([a-z]+).:extension",
|
|
8
|
-
"
|
|
8
|
+
"source": "/Users/vejvis/UXF/projects/resizer/example-upload/:namespace/:p1/:p2/:filename.:extension"
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
|
-
"route": "/generated/opentopo/:width(\\d+)_:height(\\d+)
|
|
12
|
-
"
|
|
13
|
-
"sourceDomain": "https://opentopo.app"
|
|
11
|
+
"route": "/generated/opentopo/:width(\\d+)_:height(\\d+)/:filename",
|
|
12
|
+
"source": "https://opentopo.app/:filename"
|
|
14
13
|
}
|
|
15
14
|
]
|
package/README.md
CHANGED
|
@@ -22,16 +22,15 @@ You can use configuration file `.resizer-config.json` or environment variable `U
|
|
|
22
22
|
[
|
|
23
23
|
{
|
|
24
24
|
"route": "/generated/:namespace/:p1/:p2/:filename([a-f0-9\\-]+)_:width(\\d+)_:height(\\d+)_:fit([a-z]+)_:position([a-z]+)_:background([a-z]+)_:trim([a-z]+)_:extension.:toFormat",
|
|
25
|
-
"
|
|
25
|
+
"source": "/var/www/UXF/projects/resizer/example-upload/:namespace/:p1/:p2/:filename.:extension"
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
"route": "/generated/:namespace/:p1/:p2/:filename([a-f0-9\\-]+)_:width(\\d+)_:height(\\d+)_:fit([a-z]+).:extension",
|
|
29
|
-
"
|
|
29
|
+
"source": "/var/www/UXF/projects/resizer/example-upload/:namespace/:p1/:p2/:filename.:extension"
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"route": "/generated/opentopo/:width(\\d+)_:height(\\d+)_:fit([a-z]+)/:filename",
|
|
33
|
-
"
|
|
34
|
-
"sourceDomain": "https://opentopo.app"
|
|
33
|
+
"source": "https://opentopo.app/:filename"
|
|
35
34
|
}
|
|
36
35
|
]
|
|
37
36
|
```
|
|
@@ -65,28 +64,4 @@ You can use configuration file `.resizer-config.json` or environment variable `U
|
|
|
65
64
|
- `r`: right
|
|
66
65
|
- `rb`: right bottom
|
|
67
66
|
- `rt`: right top
|
|
68
|
-
- `t`: top
|
|
69
|
-
|
|
70
|
-
## Help
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
Usage:
|
|
74
|
-
uxf-resizer
|
|
75
|
-
|
|
76
|
-
Environment variables:
|
|
77
|
-
UXF_RESIZER_SOURCE_PATH - required
|
|
78
|
-
UXF_RESIZER_GENERATE_PATH - required
|
|
79
|
-
|
|
80
|
-
Options
|
|
81
|
-
--disable-namespace [boolean] [default: false]
|
|
82
|
-
--source-folder-depth Depth of the source folder [number] [default: 2]
|
|
83
|
-
--generated-folder-depth Depth of the generated folder
|
|
84
|
-
[number] [default: 2]
|
|
85
|
-
--filename-regexp Filename regexp (see:
|
|
86
|
-
https://github.com/pillarjs/path-to-regexp)
|
|
87
|
-
[string]
|
|
88
|
-
-h, --help Show help [boolean]
|
|
89
|
-
|
|
90
|
-
Options:
|
|
91
|
-
--version Show version number [boolean]
|
|
92
|
-
```
|
|
67
|
+
- `t`: top
|
package/index.js
CHANGED
|
@@ -104,20 +104,18 @@ var resizerMiddleware = function (config) {
|
|
|
104
104
|
var middleware = (0, express_1.Router)();
|
|
105
105
|
config.forEach(function (c, i) {
|
|
106
106
|
log("Config #".concat(i + 1, ":"));
|
|
107
|
-
log(" Route:
|
|
108
|
-
log(" Source
|
|
109
|
-
if (c.sourceDomain) {
|
|
110
|
-
log(" Domain: ".concat(c.sourceDomain));
|
|
111
|
-
}
|
|
107
|
+
log(" Route: ".concat(c.route));
|
|
108
|
+
log(" Source: ".concat(c.source));
|
|
112
109
|
middleware.get(c.route, function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
|
|
113
|
-
var domain, sourceFilename, generatedFilename, generatedDirectory, params, sourceFile, _a, pipeline, trim;
|
|
114
|
-
var _b;
|
|
115
|
-
return __generator(this, function (
|
|
116
|
-
switch (
|
|
110
|
+
var url, domain, sourceFilename, generatedFilename, generatedDirectory, params, sourceFile, _a, pipeline, trim;
|
|
111
|
+
var _b, _c;
|
|
112
|
+
return __generator(this, function (_d) {
|
|
113
|
+
switch (_d.label) {
|
|
117
114
|
case 0:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
115
|
+
url = c.source.startsWith("http") ? new URL(c.source) : null;
|
|
116
|
+
domain = url === null || url === void 0 ? void 0 : url.origin;
|
|
117
|
+
sourceFilename = (0, path_to_regexp_1.compile)((_b = url === null || url === void 0 ? void 0 : url.pathname) !== null && _b !== void 0 ? _b : c.source, {})(req.params);
|
|
118
|
+
generatedFilename = ((_c = process.env.UXF_RESIZER_GENERATE_PATH) !== null && _c !== void 0 ? _c : process.cwd()) + req.path;
|
|
121
119
|
if ((0, fs_1.existsSync)(generatedFilename)) {
|
|
122
120
|
return [2 /*return*/, res.sendFile(generatedFilename)];
|
|
123
121
|
}
|
|
@@ -132,13 +130,13 @@ var resizerMiddleware = function (config) {
|
|
|
132
130
|
params = req.params;
|
|
133
131
|
if (!domain) return [3 /*break*/, 3];
|
|
134
132
|
return [4 /*yield*/, (0, node_fetch_1.default)(domain + sourceFilename)];
|
|
135
|
-
case 1: return [4 /*yield*/, (
|
|
133
|
+
case 1: return [4 /*yield*/, (_d.sent()).buffer()];
|
|
136
134
|
case 2:
|
|
137
|
-
_a =
|
|
135
|
+
_a = _d.sent();
|
|
138
136
|
return [3 /*break*/, 4];
|
|
139
137
|
case 3:
|
|
140
138
|
_a = sourceFilename;
|
|
141
|
-
|
|
139
|
+
_d.label = 4;
|
|
142
140
|
case 4:
|
|
143
141
|
sourceFile = _a;
|
|
144
142
|
return [4 /*yield*/, (0, sharp_1.default)(sourceFile)
|
|
@@ -153,7 +151,7 @@ var resizerMiddleware = function (config) {
|
|
|
153
151
|
withoutEnlargement: getWithoutEnlargement(params),
|
|
154
152
|
})];
|
|
155
153
|
case 5:
|
|
156
|
-
pipeline =
|
|
154
|
+
pipeline = _d.sent();
|
|
157
155
|
trim = getTrim(params);
|
|
158
156
|
if (trim !== undefined) {
|
|
159
157
|
pipeline.trim(trim);
|