@@ -6,7 +6,7 @@ const inquirer = require("inquirer");
6
6
const { messagingListTopics } = require("./messaging");
7
7
const { teamsList } = require("./teams");
8
8
const { projectsGet } = require("./projects");
9
- const { functionsList, functionsDownloadDeployment } = require("./functions");
9
+ const { functionsList, functionsDownloadDeployment, functionsListDeployments } = require("./functions");
10
10
const { databasesGet, databasesListCollections, databasesList } = require("./databases");
11
11
const { storageListBuckets } = require("./storage");
12
12
const { localConfig } = require("../config");
@@ -108,10 +108,30 @@ const pullFunctions = async ({ code, withVariables }) => {
108
108
if (allowCodePull) {
109
109
log("Pulling active deployment's code ...");
110
110
111
+ let deploymentId = func['deployment'];
112
+
113
+ try {
114
+ const fetchResponse = await functionsListDeployments({
115
+ functionId: func['$id'],
116
+ queries: [
117
+ JSON.stringify({ method: 'limit', values: [1] }),
118
+ JSON.stringify({ method: 'orderDesc', values: [''] })
119
+ ],
120
+ parseOutput: false
121
+ });
122
+
123
+ if (fetchResponse['total'] > 0) {
124
+ deploymentId = fetchResponse['deployments'][0]['$id'];
125
+ }
126
+
127
+ } catch (e) {
128
+ log("Can't get last deployment ID, using local value instead")
129
+ }
130
+
111
131
const compressedFileName = `${func['$id']}-${+new Date()}.tar.gz`
112
132
await functionsDownloadDeployment({
113
133
functionId: func['$id'],
114
- deploymentId: func['deployment'] ,
134
+ deploymentId,
115
135
destination: compressedFileName,
116
136
overrideForCli: true,
117
137
parseOutput: false
0 commit comments