* Sets up Javascript boilerplate code for new extension * @param {Config} config configuration options
(config: Config)
| 136 | * @param {Config} config configuration options |
| 137 | */ |
| 138 | async function javascriptSelected(config: Config): Promise<void> { |
| 139 | const indexTemplate = readTemplateSync("extensions/javascript/index.js"); |
| 140 | const integrationTestTemplate = readTemplateSync("extensions/javascript/integration-test.js"); |
| 141 | const packageLintingTemplate = readTemplateSync("extensions/javascript/package.lint.json"); |
| 142 | const packageNoLintingTemplate = readTemplateSync("extensions/javascript/package.nolint.json"); |
| 143 | const gitignoreTemplate = readTemplateSync("extensions/javascript/_gitignore"); |
| 144 | const eslintTemplate = readTemplateSync("init/functions/javascript/_eslintrc"); |
| 145 | |
| 146 | const lint = await confirm("Do you want to use ESLint to catch probable bugs and enforce style?"); |
| 147 | |
| 148 | const templates = readCommonTemplates(); |
| 149 | await config.askWriteProjectFile("extension.yaml", templates.extSpecTemplate); |
| 150 | await config.askWriteProjectFile("PREINSTALL.md", templates.preinstallTemplate); |
| 151 | await config.askWriteProjectFile("POSTINSTALL.md", templates.postinstallTemplate); |
| 152 | await config.askWriteProjectFile("CHANGELOG.md", templates.changelogTemplate); |
| 153 | await config.askWriteProjectFile("functions/index.js", indexTemplate); |
| 154 | await config.askWriteProjectFile( |
| 155 | "functions/integration-tests/integration-test.spec.js", |
| 156 | integrationTestTemplate, |
| 157 | ); |
| 158 | await config.askWriteProjectFile( |
| 159 | "functions/integration-tests/firebase.json", |
| 160 | templates.integrationTestFirebaseJsonTemplate, |
| 161 | ); |
| 162 | await config.askWriteProjectFile( |
| 163 | "functions/integration-tests/extensions/greet-the-world.env", |
| 164 | templates.integrationTestEnvTemplate, |
| 165 | ); |
| 166 | if (lint) { |
| 167 | await config.askWriteProjectFile("functions/package.json", packageLintingTemplate); |
| 168 | await config.askWriteProjectFile("functions/.eslintrc.js", eslintTemplate); |
| 169 | } else { |
| 170 | await config.askWriteProjectFile("functions/package.json", packageNoLintingTemplate); |
| 171 | } |
| 172 | await config.askWriteProjectFile("functions/.gitignore", gitignoreTemplate); |
| 173 | } |
no test coverage detected
searching dependent graphs…