···
1
1
{
2
2
-
"name": "shark",
3
3
-
"version": "1.0.0",
2
2
+
"name": "ipx",
3
3
+
"version": "0.0.1",
4
4
"lockfileVersion": 1,
5
5
"requires": true,
6
6
"dependencies": {
···
681
681
"integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0="
682
682
},
683
683
"debug": {
684
684
-
"version": "2.6.9",
685
685
-
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
686
686
-
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
684
684
+
"version": "3.1.0",
685
685
+
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
686
686
+
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
687
687
"requires": {
688
688
"ms": "2.0.0"
689
689
}
···
932
932
"requires": {
933
933
"debug": "2.6.9",
934
934
"resolve": "1.5.0"
935
935
+
},
936
936
+
"dependencies": {
937
937
+
"debug": {
938
938
+
"version": "2.6.9",
939
939
+
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
940
940
+
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
941
941
+
"dev": true,
942
942
+
"requires": {
943
943
+
"ms": "2.0.0"
944
944
+
}
945
945
+
}
935
946
}
936
947
},
937
948
"eslint-module-utils": {
···
942
953
"requires": {
943
954
"debug": "2.6.9",
944
955
"pkg-dir": "1.0.0"
956
956
+
},
957
957
+
"dependencies": {
958
958
+
"debug": {
959
959
+
"version": "2.6.9",
960
960
+
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
961
961
+
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
962
962
+
"dev": true,
963
963
+
"requires": {
964
964
+
"ms": "2.0.0"
965
965
+
}
966
966
+
}
945
967
}
946
968
},
947
969
"eslint-plugin-html": {
···
1026
1048
"read-pkg-up": "2.0.0"
1027
1049
},
1028
1050
"dependencies": {
1051
1051
+
"debug": {
1052
1052
+
"version": "2.6.9",
1053
1053
+
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1054
1054
+
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1055
1055
+
"dev": true,
1056
1056
+
"requires": {
1057
1057
+
"ms": "2.0.0"
1058
1058
+
}
1059
1059
+
},
1029
1060
"doctrine": {
1030
1061
"version": "1.5.0",
1031
1062
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
···
3030
3061
"touch": "3.1.0",
3031
3062
"undefsafe": "0.0.3",
3032
3063
"update-notifier": "2.3.0"
3064
3064
+
},
3065
3065
+
"dependencies": {
3066
3066
+
"debug": {
3067
3067
+
"version": "2.6.9",
3068
3068
+
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
3069
3069
+
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
3070
3070
+
"requires": {
3071
3071
+
"ms": "2.0.0"
3072
3072
+
}
3073
3073
+
}
3033
3074
}
3034
3075
},
3035
3076
"nopt": {
···
8
8
"main": "src/index.js",
9
9
"scripts": {
10
10
"start": "bak start",
11
11
-
"dev": "nodemon node_modules/.bin/bak start"
11
11
+
"dev": "DEBUG=ipx* nodemon node_modules/.bin/bak start"
12
12
},
13
13
"dependencies": {
14
14
"bak": "^2.0.3",
15
15
"config": "^1.28.1",
16
16
"cron": "^1.3.0",
17
17
+
"debug": "^3.1.0",
17
18
"fs-extra": "^4.0.3",
18
19
"is-valid-path": "^0.1.1",
19
20
"nodemon": "^1.12.1",
···
1
1
const { resolve, dirname } = require('path')
2
2
const recursiveReadDir = require('recursive-readdir')
3
3
const { mkdirpSync, mkdirp, exists, readFile, writeFile, stat, remove } = require('fs-extra')
4
4
+
const debug = require('debug')('ipx:cache:file')
4
5
5
6
module.exports = class FileCache {
6
7
constructor (shark) {
···
42
43
items = items.filter(item => item.lastAccessAgo >= maxUnusedMinutes)
43
44
44
45
await Promise.all(items.map(async item => {
45
45
-
console.log('[D] ' + item.file)
46
46
+
debug('[DELETE] ' + item.file)
46
47
await remove(item.file)
47
48
}))
48
49
}
···
52
53
if (!(await exists(_path))) {
53
54
return null
54
55
}
56
56
+
debug('[HIT] ' + key)
55
57
return readFile(_path)
56
58
}
57
59
···
3
3
const Boom = require('boom')
4
4
const Sharp = require('sharp')
5
5
const { CronJob } = require('cron')
6
6
+
const debug = require('debug')('ipx')
6
7
7
8
const operationSeparator = ','
8
9
const argSeparator = '_'
···
53
54
this.options.cache.cleanCron,
54
55
() => this.cleanCache().catch(console.error)
55
56
)
57
57
+
debug('Starting cache clean cron ' + this.options.cache.cleanCron)
56
58
this.cacheCleanCron.start()
57
59
}
58
60
}
···
144
146
// Check cache existence
145
147
const cache = await this.cache.get(cacheKey)
146
148
if (cache) {
147
147
-
console.log('HIT!')
148
149
return {
149
150
format,
150
151
data: cache