Skip to content

Commit 9bda1d4

Browse files
committed
refactor: Cleanup and use finally for code simplification
1 parent af50c33 commit 9bda1d4

File tree

4 files changed

+53
-69
lines changed

4 files changed

+53
-69
lines changed

lib/clean.js

+4-7
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ function cleanupCache() {
4040
if (fse.existsSync(cacheLocation)) {
4141
let cleanupProgress;
4242
if (this.serverless) {
43-
if (this.progress && this.log) {
43+
if (this.log) {
4444
cleanupProgress = this.progress.get('python-cleanup-cache');
4545
cleanupProgress.notice('Removing static caches');
4646
this.log.info(`Removing static caches at: ${cacheLocation}`);
@@ -57,12 +57,9 @@ function cleanupCache() {
5757
.forEach((file) => {
5858
promises.push(fse.removeAsync(file));
5959
});
60-
return BbPromise.all(promises)
61-
.then(() => cleanupProgress && cleanupProgress.remove())
62-
.catch((e) => {
63-
cleanupProgress && cleanupProgress.remove();
64-
throw e;
65-
});
60+
return BbPromise.all(promises).finally(
61+
() => cleanupProgress && cleanupProgress.remove()
62+
);
6663
} else {
6764
if (this.serverless) {
6865
if (this.log) {

lib/inject.js

+47-52
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ function moveModuleUp(source, target, module) {
8686
* Inject requirements into packaged application.
8787
* @return {Promise} the combined promise for requirements injection.
8888
*/
89-
function injectAllRequirements(funcArtifact) {
89+
async function injectAllRequirements(funcArtifact) {
9090
if (this.options.layer) {
9191
// The requirements will be placed in a Layer, so just resolve
9292
return BbPromise.resolve();
@@ -101,61 +101,56 @@ function injectAllRequirements(funcArtifact) {
101101
this.serverless.cli.log('Injecting required Python packages to package...');
102102
}
103103

104-
let returnPromise;
105-
if (this.serverless.service.package.individually) {
106-
returnPromise = BbPromise.resolve(this.targetFuncs)
107-
.filter((func) =>
108-
(func.runtime || this.serverless.service.provider.runtime).match(
109-
/^python.*/
104+
try {
105+
if (this.serverless.service.package.individually) {
106+
await BbPromise.resolve(this.targetFuncs)
107+
.filter((func) =>
108+
(func.runtime || this.serverless.service.provider.runtime).match(
109+
/^python.*/
110+
)
110111
)
111-
)
112-
.map((func) => {
113-
if (!get(func, 'module')) {
114-
set(func, ['module'], '.');
115-
}
116-
return func;
117-
})
118-
.map((func) => {
119-
if (func.module !== '.') {
120-
const artifact = func.package ? func.package.artifact : funcArtifact;
121-
const newArtifact = path.join(
122-
'.serverless',
123-
`${func.module}-${func.name}.zip`
124-
);
125-
func.package.artifact = newArtifact;
126-
return moveModuleUp(artifact, newArtifact, func.module).then(
127-
() => func
128-
);
129-
} else {
112+
.map((func) => {
113+
if (!get(func, 'module')) {
114+
set(func, ['module'], '.');
115+
}
130116
return func;
131-
}
132-
})
133-
.map((func) => {
134-
return this.options.zip
135-
? func
136-
: injectRequirements(
137-
path.join('.serverless', func.module, 'requirements'),
138-
func.package.artifact,
139-
this.options
117+
})
118+
.map((func) => {
119+
if (func.module !== '.') {
120+
const artifact = func.package
121+
? func.package.artifact
122+
: funcArtifact;
123+
const newArtifact = path.join(
124+
'.serverless',
125+
`${func.module}-${func.name}.zip`
140126
);
141-
});
142-
} else if (!this.options.zip) {
143-
returnPromise = injectRequirements(
144-
path.join('.serverless', 'requirements'),
145-
this.serverless.service.package.artifact || funcArtifact,
146-
this.options
147-
);
127+
func.package.artifact = newArtifact;
128+
return moveModuleUp(artifact, newArtifact, func.module).then(
129+
() => func
130+
);
131+
} else {
132+
return func;
133+
}
134+
})
135+
.map((func) => {
136+
return this.options.zip
137+
? func
138+
: injectRequirements(
139+
path.join('.serverless', func.module, 'requirements'),
140+
func.package.artifact,
141+
this.options
142+
);
143+
});
144+
} else if (!this.options.zip) {
145+
await injectRequirements(
146+
path.join('.serverless', 'requirements'),
147+
this.serverless.service.package.artifact || funcArtifact,
148+
this.options
149+
);
150+
}
151+
} finally {
152+
injectProgress && injectProgress.remove();
148153
}
149-
150-
return (
151-
returnPromise &&
152-
returnPromise
153-
.then(() => injectProgress && injectProgress.remove())
154-
.catch((e) => {
155-
injectProgress && injectProgress.remove();
156-
throw e;
157-
})
158-
);
159154
}
160155

161156
module.exports = { injectAllRequirements };

lib/layer.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,7 @@ function layerRequirements() {
6565
return BbPromise.bind(this)
6666
.then(zipRequirements)
6767
.then(createLayers)
68-
.then(() => layerProgress && layerProgress.remove())
69-
.catch((e) => {
70-
layerProgress && layerProgress.remove();
71-
throw e;
72-
});
68+
.finally(() => layerProgress && layerProgress.remove());
7369
}
7470

7571
module.exports = {

lib/zip.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,7 @@ function packRequirements() {
139139
f.package.patterns.push(`${f.module}/.requirements.zip`);
140140
return addTree(new JSZip(), `.serverless/${f.module}/requirements`)
141141
.then((zip) => writeZip(zip, `${f.module}/.requirements.zip`))
142-
.then(() => packProgress && packProgress.remove())
143-
.catch((e) => {
144-
packProgress && packProgress.remove();
145-
throw e;
146-
});
142+
.finally(() => packProgress && packProgress.remove());
147143
});
148144
} else {
149145
let packProgress;

0 commit comments

Comments
 (0)