cnpmcore 3.8.0 → 3.9.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.
@@ -26,28 +26,35 @@ let ShowPackageController = class ShowPackageController extends AbstractControll
26
26
  const abbreviatedMetaType = 'application/vnd.npm.install-v1+json';
27
27
  const isFullManifests = ctx.accepts(['json', abbreviatedMetaType]) !== abbreviatedMetaType;
28
28
  // handle cache
29
- const cacheEtag = await this.cacheService.getPackageEtag(fullname, isFullManifests);
30
- if (!isSync && cacheEtag) {
31
- let requestEtag = ctx.request.get('if-none-match');
32
- if (requestEtag.startsWith('W/')) {
33
- requestEtag = requestEtag.substring(2);
34
- }
35
- if (requestEtag === cacheEtag) {
36
- // make sure CDN cache header set here
37
- this.setCDNHeaders(ctx);
38
- // match etag, set status 304
39
- ctx.status = 304;
40
- return;
41
- }
42
- // get cache pkg data
43
- const cacheBytes = await this.cacheService.getPackageManifests(fullname, isFullManifests);
44
- if (cacheBytes && cacheBytes.length > 0) {
45
- ctx.set('etag', `W/${cacheEtag}`);
46
- ctx.type = 'json';
47
- this.setCDNHeaders(ctx);
48
- return cacheBytes;
29
+ // fallback to db when cache error
30
+ try {
31
+ const cacheEtag = await this.cacheService.getPackageEtag(fullname, isFullManifests);
32
+ if (!isSync && cacheEtag) {
33
+ let requestEtag = ctx.request.get('if-none-match');
34
+ if (requestEtag.startsWith('W/')) {
35
+ requestEtag = requestEtag.substring(2);
36
+ }
37
+ if (requestEtag === cacheEtag) {
38
+ // make sure CDN cache header set here
39
+ this.setCDNHeaders(ctx);
40
+ // match etag, set status 304
41
+ ctx.status = 304;
42
+ return;
43
+ }
44
+ // get cache pkg data
45
+ const cacheBytes = await this.cacheService.getPackageManifests(fullname, isFullManifests);
46
+ if (cacheBytes && cacheBytes.length > 0) {
47
+ ctx.set('etag', `W/${cacheEtag}`);
48
+ ctx.type = 'json';
49
+ this.setCDNHeaders(ctx);
50
+ return cacheBytes;
51
+ }
49
52
  }
50
53
  }
54
+ catch (e) {
55
+ this.logger.error(e);
56
+ this.logger.error('[ShowPackageController.show:error] get cache error, ignore');
57
+ }
51
58
  // handle cache miss
52
59
  let result;
53
60
  if (isFullManifests) {
@@ -71,7 +78,9 @@ let ShowPackageController = class ShowPackageController extends AbstractControll
71
78
  // only set cache with normal request
72
79
  // sync request response with no bug version fixed
73
80
  if (!isSync) {
74
- await this.cacheService.savePackageEtagAndManifests(fullname, isFullManifests, etag, cacheBytes);
81
+ ctx.runInBackground(async () => {
82
+ await this.cacheService.savePackageEtagAndManifests(fullname, isFullManifests, etag, cacheBytes);
83
+ });
75
84
  }
76
85
  // set etag
77
86
  // https://forum.nginx.org/read.php?2,240120,240120#msg-240120
@@ -107,4 +116,4 @@ ShowPackageController = __decorate([
107
116
  (0, tegg_1.HTTPController)()
108
117
  ], ShowPackageController);
109
118
  exports.ShowPackageController = ShowPackageController;
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hvd1BhY2thZ2VDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBwL3BvcnQvY29udHJvbGxlci9wYWNrYWdlL1Nob3dQYWNrYWdlQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FRcUI7QUFDckIsOERBQTJEO0FBQzNELDZEQUFtRjtBQUNuRix1REFBK0Q7QUFDL0QsdUZBQW9GO0FBQ3BGLHFFQUFrRTtBQUczRCxJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFzQixTQUFRLHVDQUFrQjtJQVlyRCxBQUFOLEtBQUssQ0FBQyxJQUFJLENBQVksR0FBZSxFQUFlLFFBQWdCO1FBQ2xFLE1BQU0sQ0FBRSxLQUFLLEVBQUUsSUFBSSxDQUFFLEdBQUcsSUFBQSw2QkFBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUEsOEJBQW1CLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxtQkFBbUIsR0FBRyxxQ0FBcUMsQ0FBQztRQUNsRSxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUUsTUFBTSxFQUFFLG1CQUFtQixDQUFFLENBQUMsS0FBSyxtQkFBbUIsQ0FBQztRQUM3RixlQUFlO1FBQ2YsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7WUFDeEIsSUFBSSxXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbkQsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNoQyxXQUFXLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4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
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hvd1BhY2thZ2VDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBwL3BvcnQvY29udHJvbGxlci9wYWNrYWdlL1Nob3dQYWNrYWdlQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FRcUI7QUFDckIsOERBQTJEO0FBQzNELDZEQUFtRjtBQUNuRix1REFBK0Q7QUFDL0QsdUZBQW9GO0FBQ3BGLHFFQUFrRTtBQUczRCxJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFzQixTQUFRLHVDQUFrQjtJQVlyRCxBQUFOLEtBQUssQ0FBQyxJQUFJLENBQVksR0FBZSxFQUFlLFFBQWdCO1FBQ2xFLE1BQU0sQ0FBRSxLQUFLLEVBQUUsSUFBSSxDQUFFLEdBQUcsSUFBQSw2QkFBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUEsOEJBQW1CLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxtQkFBbUIsR0FBRyxxQ0FBcUMsQ0FBQztRQUNsRSxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUUsTUFBTSxFQUFFLG1CQUFtQixDQUFFLENBQUMsS0FBSyxtQkFBbUIsQ0FBQztRQUU3RixlQUFlO1FBQ2Ysa0NBQWtDO1FBQ2xDLElBQUk7WUFDRixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNwRixJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDeEIsSUFBSSxXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ25ELElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDaEMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFT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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cnpmcore",
3
- "version": "3.8.0",
3
+ "version": "3.9.0",
4
4
  "description": "npm core",
5
5
  "files": [
6
6
  "dist/**/*"
@@ -40,10 +40,12 @@
40
40
  "lint": "eslint --cache --ext .ts .",
41
41
  "lint:fix": "eslint --cache --ext .ts --fix .",
42
42
  "test": "npm run lint:fix && npm run test-local",
43
- "prepare-database": "rm -rf dist && ts-node test/prepare.ts",
44
- "test-local": "npm run prepare-database && egg-bin test",
45
- "t": "npm run lint:fix && npm run prepare-database && egg-bin test --changed",
46
- "cov": "npm run prepare-database && egg-bin cov",
43
+ "pretest-local": "bash ./prepare-database.sh",
44
+ "test-local": "egg-bin test",
45
+ "pret": "bash ./prepare-database.sh",
46
+ "t": "npm run lint:fix && egg-bin test --changed",
47
+ "precov": "bash ./prepare-database.sh",
48
+ "cov": "egg-bin cov",
47
49
  "ci": "npm run lint && npm run cov && npm run tsc:prod",
48
50
  "clean": "tsc -b --clean && rm -rf dist",
49
51
  "tsc": "npm run clean && tsc -p ./tsconfig.json",
@@ -100,7 +102,6 @@
100
102
  "validate-npm-package-name": "^3.0.0"
101
103
  },
102
104
  "devDependencies": {
103
- "@swc/core": "^1.3.35",
104
105
  "@types/mocha": "^10.0.1",
105
106
  "@types/mysql": "^2.15.21",
106
107
  "@types/semver": "^7.3.12",
@@ -110,8 +111,7 @@
110
111
  "eslint": "^8.29.0",
111
112
  "eslint-config-egg": "^12.1.0",
112
113
  "git-contributor": "2",
113
- "npm-cli-login": "^1.0.0",
114
- "ts-node": "^10.9.1",
114
+ "@cnpmjs/npm-cli-login": "^1.1.0",
115
115
  "typescript": "^4.9.4"
116
116
  },
117
117
  "author": "killagu",