Skip to content

Commit 6ff8225

Browse files
authored
feat(create-twilio-function): adds twilio to default package.json (#217)
1 parent 789ec02 commit 6ff8225

File tree

3 files changed

+36
-18
lines changed

3 files changed

+36
-18
lines changed

packages/create-twilio-function/src/create-twilio-function/create-files.js

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@ async function createFile(fullPath, content) {
1919
return writeFile(fullPath, content, { flag: 'wx' });
2020
}
2121

22-
const javaScriptDeps = {};
23-
const typescriptDeps = { '@twilio-labs/serverless-runtime-types': versions.serverlessRuntimeTypes };
22+
const javaScriptDeps = { twilio: versions.twilio };
23+
const typescriptDeps = {
24+
'@twilio-labs/serverless-runtime-types': versions.serverlessRuntimeTypes,
25+
...javaScriptDeps,
26+
};
2427
const javaScriptDevDeps = { 'twilio-run': versions.twilioRun };
2528
const typescriptDevDeps = {
2629
'twilio-run': versions.twilioRun,
@@ -38,47 +41,59 @@ function createPackageJSON(pathName, name, projectType = 'javascript') {
3841
if (projectType === 'typescript') {
3942
scripts.test = 'tsc --noEmit';
4043
scripts.build = 'tsc && npm run build:copy-assets';
41-
scripts['build:copy-assets'] = 'copyfiles src/assets/* src/assets/**/* --up 2 --exclude **/*.ts dist/assets/';
44+
scripts['build:copy-assets'] =
45+
'copyfiles src/assets/* src/assets/**/* --up 2 --exclude **/*.ts dist/assets/';
4246
scripts.prestart = 'npm run build';
4347
scripts.predeploy = 'npm run build';
44-
scripts.start += ' --functions-folder dist/functions --assets-folder dist/assets';
45-
scripts.deploy += ' --functions-folder dist/functions --assets-folder dist/assets';
48+
scripts.start +=
49+
' --functions-folder dist/functions --assets-folder dist/assets';
50+
scripts.deploy +=
51+
' --functions-folder dist/functions --assets-folder dist/assets';
4652
}
4753
const packageJSON = JSON.stringify(
4854
{
4955
name,
5056
version: '0.0.0',
5157
private: true,
5258
scripts,
53-
dependencies: projectType === 'typescript' ? typescriptDeps : javaScriptDeps,
54-
devDependencies: projectType === 'typescript' ? typescriptDevDeps : javaScriptDevDeps,
59+
dependencies:
60+
projectType === 'typescript' ? typescriptDeps : javaScriptDeps,
61+
devDependencies:
62+
projectType === 'typescript' ? typescriptDevDeps : javaScriptDevDeps,
5563
engines: { node: versions.node },
5664
},
5765
null,
58-
2,
66+
2
5967
);
6068
return createFile(fullPath, packageJSON);
6169
}
6270

6371
function copyRecursively(src, dest) {
64-
return readdir(src).then((children) => {
72+
return readdir(src).then(children => {
6573
return Promise.all(
66-
children.map((child) =>
67-
stat(path.join(src, child)).then((stats) => {
74+
children.map(child =>
75+
stat(path.join(src, child)).then(stats => {
6876
if (stats.isDirectory()) {
6977
return mkdir(path.join(dest, child)).then(() =>
70-
copyRecursively(path.join(src, child), path.join(dest, child)),
78+
copyRecursively(path.join(src, child), path.join(dest, child))
7179
);
7280
}
73-
return copyFile(path.join(src, child), path.join(dest, child), COPYFILE_EXCL);
74-
}),
75-
),
81+
return copyFile(
82+
path.join(src, child),
83+
path.join(dest, child),
84+
COPYFILE_EXCL
85+
);
86+
})
87+
)
7688
);
7789
});
7890
}
7991

8092
function createExampleFromTemplates(pathName, projectType = 'javascript') {
81-
return copyRecursively(path.join(__dirname, '..', '..', 'templates', projectType), pathName);
93+
return copyRecursively(
94+
path.join(__dirname, '..', '..', 'templates', projectType),
95+
pathName
96+
);
8297
}
8398

8499
function createEnvFile(pathName, { accountSid, authToken }) {
@@ -111,8 +126,8 @@ function createTsconfigFile(pathName) {
111126
},
112127
},
113128
null,
114-
2,
115-
),
129+
2
130+
)
116131
);
117132
}
118133

packages/create-twilio-function/src/create-twilio-function/versions.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
module.exports = {
2+
twilio: '^3.56',
23
twilioRun: '^2.6.0',
34
node: '10',
45
typescript: '^3.8',

packages/create-twilio-function/tests/create-files.test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ describe('create-files', () => {
7878
expect(packageJSON.devDependencies['twilio-run']).toEqual(
7979
versions.twilioRun
8080
);
81+
expect(packageJSON.dependencies['twilio']).toEqual(versions.twilio);
8182
cleanUp();
8283
});
8384

@@ -103,6 +104,7 @@ describe('create-files', () => {
103104
expect(
104105
packageJSON.dependencies['@twilio-labs/serverless-runtime-types']
105106
).toEqual(versions.serverlessRuntimeTypes);
107+
expect(packageJSON.dependencies['twilio']).toEqual(versions.twilio);
106108
cleanUp();
107109
});
108110
test('it rejects if there is already a package.json', async () => {

0 commit comments

Comments
 (0)