MCPcopy
hub / github.com/electron/forge / findTemplate

Function findTemplate

packages/api/core/src/api/init-scripts/find-template.ts:21–70  ·  view source on GitHub ↗
(
  template: string,
)

Source from the content-addressed store, hash-verified

19}
20
21export const findTemplate = async (
22 template: string,
23): Promise<ForgeTemplateDetails> => {
24 let foundTemplate: Omit<ForgeTemplateDetails, 'template'> | null = null;
25
26 const resolveTemplateTypes = [
27 [TemplateType.global, `electron-forge-template-${template}`],
28 [TemplateType.global, `@electron-forge/template-${template}`],
29 [TemplateType.local, `electron-forge-template-${template}`],
30 [TemplateType.local, `@electron-forge/template-${template}`],
31 [TemplateType.global, template],
32 [TemplateType.local, template],
33 ] as const;
34 for (const [templateType, moduleName] of resolveTemplateTypes) {
35 try {
36 d(`Trying ${templateType} template: ${moduleName}`);
37 let templateModulePath: string;
38 if (templateType === TemplateType.global) {
39 templateModulePath = require.resolve(moduleName, {
40 paths: [globalDirs.npm.packages, globalDirs.yarn.packages],
41 });
42 } else {
43 templateModulePath = require.resolve(moduleName);
44 }
45 foundTemplate = {
46 path: templateModulePath,
47 type: templateType,
48 name: moduleName,
49 };
50 break;
51 } catch (err) {
52 d(`Error: ${err instanceof Error ? err.message : err}`);
53 }
54 }
55 if (!foundTemplate) {
56 throw new Error(`Failed to locate custom template: "${template}".`);
57 } else {
58 d(`found template module at: ${foundTemplate.path}`);
59
60 const templateModule: PossibleModule<ForgeTemplate> = await import(
61 foundTemplate.path
62 );
63 const tmpl = templateModule.default ?? templateModule;
64
65 return {
66 ...foundTemplate,
67 template: tmpl,
68 };
69 }
70};

Callers 2

init.tsFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected