MCPcopy Create free account
hub / github.com/firebase/firebase-tools / setup

Function setup

src/init/features/functions/javascript.ts:23–57  ·  view source on GitHub ↗
(setup: any, config: any)

Source from the content-addressed store, hash-verified

21const GITIGNORE_TEMPLATE = readTemplateSync("init/functions/javascript/_gitignore");
22
23export async function setup(setup: any, config: any): Promise<any> {
24 setup.functions.lint =
25 setup.functions.lint ||
26 (await confirm("Do you want to use ESLint to catch probable bugs and enforce style?"));
27 if (setup.functions.lint) {
28 const cbconfig = configForCodebase(setup.config.functions, setup.functions.codebase);
29 cbconfig.predeploy = ['npm --prefix "$RESOURCE_DIR" run lint'];
30 await config.askWriteProjectFile(`${setup.functions.source}/.eslintrc.js`, ESLINT_TEMPLATE);
31 }
32
33 let packageTemplate = PACKAGE_LINTING_TEMPLATE;
34 if (setup.featureInfo?.dataconnectResolver) {
35 packageTemplate = setup.functions.lint
36 ? PACKAGE_GRAPH_LINTING_TEMPLATE
37 : PACKAGE_GRAPH_NO_LINTING_TEMPLATE;
38 } else if (!setup.functions.lint) {
39 packageTemplate = PACKAGE_NO_LINTING_TEMPLATE;
40 }
41 await config.askWriteProjectFile(
42 `${setup.functions.source}/package.json`,
43 packageTemplate.replace("{{RUNTIME}}", supported.latest("nodejs").replace("nodejs", "")),
44 );
45
46 if (setup.featureInfo?.dataconnectResolver) {
47 await config.askWriteProjectFile(
48 `${setup.functions.source}/index.js`,
49 templateWithSubbedResolverId(setup.featureInfo.dataconnectResolver.id, GRAPH_INDEX_TEMPLATE),
50 );
51 } else {
52 await config.askWriteProjectFile(`${setup.functions.source}/index.js`, INDEX_TEMPLATE);
53 }
54
55 await config.askWriteProjectFile(`${setup.functions.source}/.gitignore`, GITIGNORE_TEMPLATE);
56 await askInstallDependencies(setup.functions, config);
57}

Callers

nothing calls this directly

Calls 5

confirmFunction · 0.90
configForCodebaseFunction · 0.90
askInstallDependenciesFunction · 0.90
askWriteProjectFileMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…