@typespec/compiler 0.52.0-dev.3 → 0.52.0-dev.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/.scripts/build-init-templates.d.ts +2 -0
  2. package/dist/.scripts/build-init-templates.d.ts.map +1 -0
  3. package/dist/.scripts/build-init-templates.js +38 -0
  4. package/dist/.scripts/build-init-templates.js.map +1 -0
  5. package/dist/.scripts/helpers.d.ts +4 -0
  6. package/dist/.scripts/helpers.d.ts.map +1 -0
  7. package/dist/.scripts/helpers.js +44 -0
  8. package/dist/.scripts/helpers.js.map +1 -0
  9. package/dist/manifest.js +2 -2
  10. package/dist/src/core/cli/actions/init.d.ts +1 -0
  11. package/dist/src/core/cli/actions/init.d.ts.map +1 -1
  12. package/dist/src/core/cli/actions/init.js +1 -1
  13. package/dist/src/core/cli/actions/init.js.map +1 -1
  14. package/dist/src/core/cli/cli.js +6 -1
  15. package/dist/src/core/cli/cli.js.map +1 -1
  16. package/dist/src/core/cli/utils.d.ts.map +1 -1
  17. package/dist/src/core/cli/utils.js +3 -0
  18. package/dist/src/core/cli/utils.js.map +1 -1
  19. package/dist/src/init/core-templates.d.ts +6 -0
  20. package/dist/src/init/core-templates.d.ts.map +1 -0
  21. package/dist/src/init/core-templates.js +11 -0
  22. package/dist/src/init/core-templates.js.map +1 -0
  23. package/dist/src/init/file-templating.d.ts +25 -0
  24. package/dist/src/init/file-templating.d.ts.map +1 -0
  25. package/dist/src/init/file-templating.js +39 -0
  26. package/dist/src/init/file-templating.js.map +1 -0
  27. package/dist/src/init/init-template.d.ts +3 -3
  28. package/dist/src/init/init-template.d.ts.map +1 -1
  29. package/dist/src/init/init-template.js +4 -3
  30. package/dist/src/init/init-template.js.map +1 -1
  31. package/dist/src/init/init.d.ts +11 -47
  32. package/dist/src/init/init.d.ts.map +1 -1
  33. package/dist/src/init/init.js +32 -190
  34. package/dist/src/init/init.js.map +1 -1
  35. package/dist/src/init/scaffold.d.ts +39 -0
  36. package/dist/src/init/scaffold.d.ts.map +1 -0
  37. package/dist/src/init/scaffold.js +132 -0
  38. package/dist/src/init/scaffold.js.map +1 -0
  39. package/package.json +7 -3
  40. package/templates/__snapshots__/emitter-ts/.eslintrc.yml +14 -0
  41. package/templates/__snapshots__/emitter-ts/package.json +37 -0
  42. package/templates/__snapshots__/emitter-ts/prettierrc.yaml +8 -0
  43. package/templates/__snapshots__/emitter-ts/src/emitter.ts +10 -0
  44. package/templates/__snapshots__/emitter-ts/src/index.ts +2 -0
  45. package/templates/__snapshots__/emitter-ts/src/lib.ts +8 -0
  46. package/templates/__snapshots__/emitter-ts/src/testing/index.ts +8 -0
  47. package/templates/__snapshots__/emitter-ts/test/hello.test.ts +10 -0
  48. package/templates/__snapshots__/emitter-ts/test/test-host.ts +47 -0
  49. package/templates/__snapshots__/emitter-ts/tsconfig.json +17 -0
  50. package/templates/emitter-ts/.eslintrc.yml +14 -0
  51. package/templates/emitter-ts/package.json +37 -0
  52. package/templates/emitter-ts/prettierrc.yaml +8 -0
  53. package/templates/emitter-ts/src/emitter.ts +10 -0
  54. package/templates/emitter-ts/src/index.ts +2 -0
  55. package/templates/emitter-ts/src/lib.ts +8 -0
  56. package/templates/emitter-ts/src/testing/index.ts +8 -0
  57. package/templates/emitter-ts/test/hello.test.ts +10 -0
  58. package/templates/emitter-ts/test/test-host.ts.mu +47 -0
  59. package/templates/emitter-ts/tsconfig.json +17 -0
  60. package/templates/scaffolding.json +79 -0
@@ -1,68 +1,34 @@
1
1
  import { readdir } from "fs/promises";
2
- import Mustache from "mustache";
2
+ import pc from "picocolors";
3
3
  import prompts from "prompts";
4
4
  import * as semver from "semver";
5
- import { stringify } from "yaml";
6
- import { TypeSpecConfigFilename } from "../config/config-loader.js";
7
- import { formatTypeSpec } from "../core/formatter.js";
8
5
  import { createDiagnostic } from "../core/messages.js";
9
- import { getBaseFileName, getDirectoryPath, joinPaths } from "../core/path-utils.js";
6
+ import { getBaseFileName, getDirectoryPath } from "../core/path-utils.js";
10
7
  import { createJSONSchemaValidator } from "../core/schema-validator.js";
11
8
  import { NoTarget } from "../core/types.js";
12
- import { readUrlOrPath, resolveRelativeUrlOrPath } from "../core/util.js";
9
+ import { readUrlOrPath } from "../core/util.js";
13
10
  import { MANIFEST } from "../manifest.js";
14
- import { InitTemplateSchema, } from "./init-template.js";
15
- const normalizeVersion = function () {
16
- return function (text, render) {
17
- return render(text).replaceAll("-", "_");
18
- };
19
- };
20
- const toLowerCase = function () {
21
- return function (text, render) {
22
- return render(text).toLowerCase();
23
- };
24
- };
25
- const normalizePackageName = function () {
26
- return function (text, render) {
27
- return render(text).replaceAll(".", "-").toLowerCase();
28
- };
29
- };
30
- export function makeScaffoldingConfig(config) {
31
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
32
- return {
33
- title: (_a = config.title) !== null && _a !== void 0 ? _a : "",
34
- description: (_b = config.description) !== null && _b !== void 0 ? _b : "",
35
- compilerVersion: (_c = config.compilerVersion) !== null && _c !== void 0 ? _c : "",
36
- templateUri: (_d = config.templateUri) !== null && _d !== void 0 ? _d : ".",
37
- libraries: (_e = config.libraries) !== null && _e !== void 0 ? _e : [],
38
- name: (_f = config.name) !== null && _f !== void 0 ? _f : "",
39
- directory: (_g = config.directory) !== null && _g !== void 0 ? _g : "",
40
- skipCompilerPackage: (_h = config.skipCompilerPackage) !== null && _h !== void 0 ? _h : false,
41
- folderName: (_j = config.folderName) !== null && _j !== void 0 ? _j : "",
42
- parameters: (_k = config.parameters) !== null && _k !== void 0 ? _k : {},
43
- config: config.config,
44
- files: config.files,
45
- normalizeVersion: (_l = config.normalizeVersion) !== null && _l !== void 0 ? _l : normalizeVersion,
46
- toLowerCase: (_m = config.toLowerCase) !== null && _m !== void 0 ? _m : toLowerCase,
47
- normalizePackageName: (_o = config.normalizePackageName) !== null && _o !== void 0 ? _o : normalizePackageName,
48
- };
49
- }
50
- export async function initTypeSpecProject(host, directory, templatesUrl) {
51
- var _a, _b;
11
+ import { TypeSpecCoreTemplates } from "./core-templates.js";
12
+ import { InitTemplateSchema } from "./init-template.js";
13
+ import { makeScaffoldingConfig, normalizeLibrary, scaffoldNewProject } from "./scaffold.js";
14
+ export async function initTypeSpecProject(host, directory, options = {}) {
15
+ var _a;
52
16
  if (!(await confirmDirectoryEmpty(directory))) {
53
17
  return;
54
18
  }
55
19
  const folderName = getBaseFileName(directory);
56
- const url = templatesUrl ? { url: templatesUrl } : undefined;
57
20
  // Download template configuration and prompt user to select a template
58
21
  // No validation is done until one has been selected
59
- const templates = url === undefined ? builtInTemplates : await downloadTemplates(host, url);
60
- const templateName = await promptTemplateSelection(templates, url);
22
+ const result = options.templatesUrl === undefined
23
+ ? TypeSpecCoreTemplates
24
+ : await downloadTemplates(host, options.templatesUrl);
25
+ const templateName = (_a = options.template) !== null && _a !== void 0 ? _a : (await promptTemplateSelection(result.templates));
61
26
  // Validate minimum compiler version for non built-in templates
62
- if (url !== undefined && !(await validateTemplate(templates[templateName], url))) {
27
+ if (result !== TypeSpecCoreTemplates &&
28
+ !(await validateTemplate(result.templates[templateName], result))) {
63
29
  return;
64
30
  }
65
- const template = templates[templateName];
31
+ const template = result.templates[templateName];
66
32
  if (template.description) {
67
33
  // eslint-disable-next-line no-console
68
34
  console.log(template.description);
@@ -77,24 +43,21 @@ export async function initTypeSpecProject(host, directory, templatesUrl) {
77
43
  ]);
78
44
  const libraries = await selectLibraries(template);
79
45
  const parameters = await promptCustomParameters(template);
80
- const scaffoldingConfig = makeScaffoldingConfig({
81
- ...template,
82
- templateUri: (_a = url === null || url === void 0 ? void 0 : url.finalUrl) !== null && _a !== void 0 ? _a : ".",
46
+ const scaffoldingConfig = makeScaffoldingConfig(template, {
47
+ baseUri: result.baseUri,
83
48
  libraries,
84
49
  name,
85
50
  directory,
86
- skipCompilerPackage: (_b = template.skipCompilerPackage) !== null && _b !== void 0 ? _b : false,
87
51
  folderName,
88
52
  parameters,
89
- normalizeVersion,
90
- toLowerCase,
91
- normalizePackageName,
92
53
  });
93
54
  await scaffoldNewProject(host, scaffoldingConfig);
94
55
  // eslint-disable-next-line no-console
56
+ console.log("");
57
+ // eslint-disable-next-line no-console
95
58
  console.log("TypeSpec init completed. You can run `tsp install` now to install dependencies.");
96
59
  // eslint-disable-next-line no-console
97
- console.log("Project created successfully.");
60
+ console.log(pc.green("Project created successfully."));
98
61
  }
99
62
  async function promptCustomParameters(template) {
100
63
  if (!template.inputs) {
@@ -125,23 +88,6 @@ async function confirmDirectoryEmpty(directory) {
125
88
  }
126
89
  return confirm(`Folder '${directory}' is not empty. Are you sure you want to initialize a new project here?`);
127
90
  }
128
- const builtInTemplates = {
129
- empty: {
130
- title: "Empty project",
131
- description: "Create an empty project.",
132
- libraries: [],
133
- compilerVersion: MANIFEST.version,
134
- },
135
- rest: {
136
- title: "Generic Rest API",
137
- description: "Create a project representing a generic Rest API",
138
- compilerVersion: MANIFEST.version,
139
- libraries: ["@typespec/http", "@typespec/rest", "@typespec/openapi3"],
140
- config: {
141
- emit: ["@typespec/openapi3"],
142
- },
143
- },
144
- };
145
91
  async function confirm(message) {
146
92
  const { confirm } = await prompts({
147
93
  name: "confirm",
@@ -151,19 +97,17 @@ async function confirm(message) {
151
97
  });
152
98
  return confirm;
153
99
  }
154
- async function downloadTemplates(host, templatesUrl) {
100
+ async function downloadTemplates(host, url) {
155
101
  let file;
156
102
  try {
157
- file = await readUrlOrPath(host, templatesUrl.url);
158
- templatesUrl.finalUrl = file.path;
159
- templatesUrl.file = file;
103
+ file = await readUrlOrPath(host, url);
160
104
  }
161
105
  catch (e) {
162
106
  throw new InitTemplateError([
163
107
  createDiagnostic({
164
108
  code: "init-template-download-failed",
165
109
  target: NoTarget,
166
- format: { url: templatesUrl.url, message: e.message },
110
+ format: { url: url, message: e.message },
167
111
  }),
168
112
  ]);
169
113
  }
@@ -176,13 +120,13 @@ async function downloadTemplates(host, templatesUrl) {
176
120
  createDiagnostic({
177
121
  code: "init-template-invalid-json",
178
122
  target: NoTarget,
179
- format: { url: templatesUrl.url, message: e.message },
123
+ format: { url: url, message: e.message },
180
124
  }),
181
125
  ]);
182
126
  }
183
- return json;
127
+ return { templates: json, baseUri: getDirectoryPath(file.path), file };
184
128
  }
185
- async function promptTemplateSelection(templates, templatesUrl) {
129
+ async function promptTemplateSelection(templates) {
186
130
  const { templateName } = await prompts({
187
131
  type: "select",
188
132
  name: "templateName",
@@ -202,17 +146,16 @@ async function promptTemplateSelection(templates, templatesUrl) {
202
146
  }
203
147
  return templateName;
204
148
  }
205
- async function validateTemplate(template, templatesUrl) {
149
+ async function validateTemplate(template, loaded) {
206
150
  // After selection, validate the template definition
207
151
  const currentCompilerVersion = MANIFEST.version;
208
- const validationTarget = templatesUrl.file;
209
152
  let validationResult;
210
153
  // 1. If current version > compilerVersion, proceed with strict validation
211
154
  if (template.compilerVersion && semver.gte(currentCompilerVersion, template.compilerVersion)) {
212
- validationResult = validateTemplateDefinitions(template, validationTarget, true);
155
+ validationResult = validateTemplateDefinitions(template, loaded.file, true);
213
156
  // 1.1 If strict validation fails, try relaxed validation
214
157
  if (!validationResult.valid) {
215
- validationResult = validateTemplateDefinitions(template, validationTarget, false);
158
+ validationResult = validateTemplateDefinitions(template, loaded.file, false);
216
159
  }
217
160
  }
218
161
  else {
@@ -222,7 +165,7 @@ async function validateTemplate(template, templatesUrl) {
222
165
  : `The template you selected did not specify minimum support compiler version. You are currently using tsp version ${currentCompilerVersion}.`;
223
166
  if (await confirm(`${confirmationMessage} The project created may not be correct. Do you want to continue?`)) {
224
167
  // 2.1 If user choose to continue, proceed with relaxed validation
225
- validationResult = validateTemplateDefinitions(template, validationTarget, false);
168
+ validationResult = validateTemplateDefinitions(template, loaded.file, false);
226
169
  }
227
170
  else {
228
171
  return false;
@@ -235,20 +178,12 @@ async function validateTemplate(template, templatesUrl) {
235
178
  }
236
179
  return true;
237
180
  }
238
- function getLibrarySpec(library) {
239
- return typeof library === "string" ? { name: library } : library;
240
- }
241
- async function getLibraryVersion(library) {
242
- var _a;
243
- // TODO: Resolve 'latest' version from npm, issue #1919
244
- return (_a = library.version) !== null && _a !== void 0 ? _a : "latest";
245
- }
246
181
  async function selectLibraries(template) {
247
- if (template.libraries.length === 0) {
182
+ if (template.libraries === undefined || template.libraries.length === 0) {
248
183
  return [];
249
184
  }
250
185
  const libraryChoices = template.libraries.map((x) => ({
251
- ...getLibrarySpec(x),
186
+ ...normalizeLibrary(x),
252
187
  description: "",
253
188
  }));
254
189
  const { libraries } = await prompts({
@@ -267,91 +202,6 @@ async function selectLibraries(template) {
267
202
  });
268
203
  return libraries;
269
204
  }
270
- export async function scaffoldNewProject(host, config) {
271
- await writePackageJson(host, config);
272
- await writeConfig(host, config);
273
- await writeMain(host, config);
274
- await writeFiles(host, config);
275
- }
276
- async function writePackageJson(host, config) {
277
- var _a;
278
- if (isFileSkipGeneration("package.json", (_a = config.files) !== null && _a !== void 0 ? _a : [])) {
279
- return;
280
- }
281
- const dependencies = {};
282
- if (!config.skipCompilerPackage) {
283
- dependencies["@typespec/compiler"] = "latest";
284
- }
285
- for (const library of config.libraries) {
286
- dependencies[library.name] = await getLibraryVersion(library);
287
- }
288
- const packageJson = {
289
- name: config.name,
290
- version: "0.1.0",
291
- type: "module",
292
- dependencies,
293
- private: true,
294
- };
295
- return host.writeFile(joinPaths(config.directory, "package.json"), JSON.stringify(packageJson, null, 2));
296
- }
297
- const placeholderConfig = `
298
- # extends: ../tspconfig.yaml # Extend another config file
299
- # emit: # Emitter name
300
- # - "<emitter-name"
301
- # options: # Emitter options
302
- # <emitter-name>:
303
- # "<option-name>": "<option-value>"
304
- # environment-variables: # Environment variables which can be used to interpolate emitter options
305
- # <variable-name>:
306
- # default: "<variable-default>"
307
- # parameters: # Parameters which can be used to interpolate emitter options
308
- # <param-name>:
309
- # default: "<param-default>"
310
- # trace: # Trace areas to enable tracing
311
- # - "<trace-name>"
312
- # warn-as-error: true # Treat warnings as errors
313
- # output-dir: "{project-root}/_generated" # Configure the base output directory for all emitters
314
- `.trim();
315
- async function writeConfig(host, config) {
316
- var _a;
317
- if (isFileSkipGeneration(TypeSpecConfigFilename, (_a = config.files) !== null && _a !== void 0 ? _a : [])) {
318
- return;
319
- }
320
- const content = config.config ? stringify(config.config) : placeholderConfig;
321
- return host.writeFile(joinPaths(config.directory, TypeSpecConfigFilename), content);
322
- }
323
- async function writeMain(host, config) {
324
- var _a;
325
- if (isFileSkipGeneration("main.tsp", (_a = config.files) !== null && _a !== void 0 ? _a : [])) {
326
- return;
327
- }
328
- const dependencies = {};
329
- for (const library of config.libraries) {
330
- dependencies[library.name] = await getLibraryVersion(library);
331
- }
332
- const lines = [...config.libraries.map((x) => `import "${x.name}";`), ""];
333
- const content = lines.join("\n");
334
- return host.writeFile(joinPaths(config.directory, "main.tsp"), await formatTypeSpec(content));
335
- }
336
- async function writeFiles(host, config) {
337
- if (!config.files) {
338
- return;
339
- }
340
- for (const file of config.files) {
341
- if (file.skipGeneration !== true) {
342
- await writeFile(host, config, file);
343
- }
344
- }
345
- }
346
- async function writeFile(host, config, file) {
347
- const baseDir = getDirectoryPath(config.templateUri) + "/";
348
- const template = await readUrlOrPath(host, resolveRelativeUrlOrPath(baseDir, file.path));
349
- const content = Mustache.render(template.text, config);
350
- const destinationFilePath = joinPaths(config.directory, file.destination);
351
- // create folders in case they don't exist
352
- await host.mkdirp(getDirectoryPath(destinationFilePath) + "/");
353
- return host.writeFile(joinPaths(config.directory, file.destination), content);
354
- }
355
205
  /**
356
206
  * Error thrown when init template acquisition fails or template is invalid.
357
207
  *
@@ -370,14 +220,6 @@ function validateTemplateDefinitions(template, templateName, strictValidation) {
370
220
  const diagnostics = validator.validate(template, templateName);
371
221
  return { valid: diagnostics.length === 0, diagnostics };
372
222
  }
373
- function isFileSkipGeneration(fileName, files) {
374
- for (const file of files) {
375
- if (file.path === fileName) {
376
- return file.skipGeneration;
377
- }
378
- }
379
- return false;
380
- }
381
223
  function logDiagnostics(diagnostics) {
382
224
  diagnostics.forEach((diagnostic) => {
383
225
  // eslint-disable-next-line no-console
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/init/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/init/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { CompilerHost } from "../core/types.js";
2
+ import { InitTemplate, InitTemplateLibrary, InitTemplateLibrarySpec } from "./init-template.js";
3
+ export interface ScaffoldingConfig {
4
+ /** Template used to resolve that config */
5
+ template: InitTemplate;
6
+ /**
7
+ * Path where this template was loaded from.
8
+ */
9
+ baseUri: string;
10
+ /**
11
+ * Directory full path where the project should be initialized.
12
+ */
13
+ directory: string;
14
+ /**
15
+ * folder name where the project should be initialized.
16
+ */
17
+ folderName: string;
18
+ /**
19
+ * Name of the project.
20
+ */
21
+ name: string;
22
+ /**
23
+ * List of libraries to include
24
+ */
25
+ libraries: InitTemplateLibrarySpec[];
26
+ /**
27
+ * Custom parameters provided in the tempalates.
28
+ */
29
+ parameters: Record<string, any>;
30
+ }
31
+ export declare function normalizeLibrary(library: InitTemplateLibrary): InitTemplateLibrarySpec;
32
+ export declare function makeScaffoldingConfig(template: InitTemplate, config: Partial<ScaffoldingConfig>): ScaffoldingConfig;
33
+ /**
34
+ * Scaffold a new TypeSpec project using the given scaffolding config.
35
+ * @param host
36
+ * @param config
37
+ */
38
+ export declare function scaffoldNewProject(host: CompilerHost, config: ScaffoldingConfig): Promise<void>;
39
+ //# sourceMappingURL=scaffold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/init/scaffold.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EACL,YAAY,EAEZ,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,QAAQ,EAAE,YAAY,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,uBAAuB,EAAE,CAAC;IAErC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,uBAAuB,CAKtF;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjC,iBAAiB,CAWnB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,iBAMrF"}
@@ -0,0 +1,132 @@
1
+ import { stringify } from "yaml";
2
+ import { TypeSpecConfigFilename } from "../config/config-loader.js";
3
+ import { formatTypeSpec } from "../core/formatter.js";
4
+ import { getDirectoryPath, joinPaths } from "../core/path-utils.js";
5
+ import { readUrlOrPath, resolveRelativeUrlOrPath } from "../core/util.js";
6
+ import { createFileTemplatingContext, render } from "./file-templating.js";
7
+ export function normalizeLibrary(library) {
8
+ if (typeof library === "string") {
9
+ return { name: library };
10
+ }
11
+ return library;
12
+ }
13
+ export function makeScaffoldingConfig(template, config) {
14
+ var _a, _b, _c, _d, _e, _f, _g, _h;
15
+ return {
16
+ template,
17
+ libraries: (_c = (_a = config.libraries) !== null && _a !== void 0 ? _a : (_b = template.libraries) === null || _b === void 0 ? void 0 : _b.map(normalizeLibrary)) !== null && _c !== void 0 ? _c : [],
18
+ baseUri: (_d = config.baseUri) !== null && _d !== void 0 ? _d : ".",
19
+ name: (_e = config.name) !== null && _e !== void 0 ? _e : "",
20
+ directory: (_f = config.directory) !== null && _f !== void 0 ? _f : "",
21
+ folderName: (_g = config.folderName) !== null && _g !== void 0 ? _g : "",
22
+ parameters: (_h = config.parameters) !== null && _h !== void 0 ? _h : {},
23
+ ...config,
24
+ };
25
+ }
26
+ /**
27
+ * Scaffold a new TypeSpec project using the given scaffolding config.
28
+ * @param host
29
+ * @param config
30
+ */
31
+ export async function scaffoldNewProject(host, config) {
32
+ await host.mkdirp(config.directory);
33
+ await writePackageJson(host, config);
34
+ await writeConfig(host, config);
35
+ await writeMain(host, config);
36
+ await writeFiles(host, config);
37
+ }
38
+ function isFileSkipGeneration(fileName, files) {
39
+ var _a;
40
+ for (const file of files) {
41
+ if (file.destination === fileName) {
42
+ return (_a = file.skipGeneration) !== null && _a !== void 0 ? _a : false;
43
+ }
44
+ }
45
+ return false;
46
+ }
47
+ async function writePackageJson(host, config) {
48
+ var _a;
49
+ if (isFileSkipGeneration("package.json", (_a = config.template.files) !== null && _a !== void 0 ? _a : [])) {
50
+ return;
51
+ }
52
+ const dependencies = {};
53
+ if (!config.template.skipCompilerPackage) {
54
+ dependencies["@typespec/compiler"] = "latest";
55
+ }
56
+ for (const library of config.libraries) {
57
+ dependencies[library.name] = await getLibraryVersion(library);
58
+ }
59
+ const packageJson = {
60
+ name: config.name,
61
+ version: "0.1.0",
62
+ type: "module",
63
+ dependencies,
64
+ private: true,
65
+ };
66
+ return host.writeFile(joinPaths(config.directory, "package.json"), JSON.stringify(packageJson, null, 2));
67
+ }
68
+ const placeholderConfig = `
69
+ # extends: ../tspconfig.yaml # Extend another config file
70
+ # emit: # Emitter name
71
+ # - "<emitter-name"
72
+ # options: # Emitter options
73
+ # <emitter-name>:
74
+ # "<option-name>": "<option-value>"
75
+ # environment-variables: # Environment variables which can be used to interpolate emitter options
76
+ # <variable-name>:
77
+ # default: "<variable-default>"
78
+ # parameters: # Parameters which can be used to interpolate emitter options
79
+ # <param-name>:
80
+ # default: "<param-default>"
81
+ # trace: # Trace areas to enable tracing
82
+ # - "<trace-name>"
83
+ # warn-as-error: true # Treat warnings as errors
84
+ # output-dir: "{project-root}/_generated" # Configure the base output directory for all emitters
85
+ `.trim();
86
+ async function writeConfig(host, config) {
87
+ var _a;
88
+ if (isFileSkipGeneration(TypeSpecConfigFilename, (_a = config.template.files) !== null && _a !== void 0 ? _a : [])) {
89
+ return;
90
+ }
91
+ const content = config.template.config ? stringify(config.template.config) : placeholderConfig;
92
+ return host.writeFile(joinPaths(config.directory, TypeSpecConfigFilename), content);
93
+ }
94
+ async function writeMain(host, config) {
95
+ var _a;
96
+ if (isFileSkipGeneration("main.tsp", (_a = config.template.files) !== null && _a !== void 0 ? _a : [])) {
97
+ return;
98
+ }
99
+ const dependencies = {};
100
+ for (const library of config.libraries) {
101
+ dependencies[library.name] = await getLibraryVersion(library);
102
+ }
103
+ const lines = [...config.libraries.map((x) => `import "${x.name}";`), ""];
104
+ const content = lines.join("\n");
105
+ return host.writeFile(joinPaths(config.directory, "main.tsp"), await formatTypeSpec(content));
106
+ }
107
+ async function writeFiles(host, config) {
108
+ const templateContext = createFileTemplatingContext(config);
109
+ if (!config.template.files) {
110
+ return;
111
+ }
112
+ for (const file of config.template.files) {
113
+ if (file.skipGeneration !== true) {
114
+ await writeFile(host, config, templateContext, file);
115
+ }
116
+ }
117
+ }
118
+ async function writeFile(host, config, context, file) {
119
+ const baseDir = config.baseUri + "/";
120
+ const template = await readUrlOrPath(host, resolveRelativeUrlOrPath(baseDir, file.path));
121
+ const content = render(template.text, context);
122
+ const destinationFilePath = joinPaths(config.directory, file.destination);
123
+ // create folders in case they don't exist
124
+ await host.mkdirp(getDirectoryPath(destinationFilePath) + "/");
125
+ return host.writeFile(joinPaths(config.directory, file.destination), content);
126
+ }
127
+ async function getLibraryVersion(library) {
128
+ var _a;
129
+ // TODO: Resolve 'latest' version from npm, issue #1919
130
+ return (_a = library.version) !== null && _a !== void 0 ? _a : "latest";
131
+ }
132
+ //# sourceMappingURL=scaffold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/init/scaffold.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/compiler",
3
- "version": "0.52.0-dev.3",
3
+ "version": "0.52.0-dev.6",
4
4
  "description": "TypeSpec Compiler Preview",
5
5
  "author": "Microsoft Corporation",
6
6
  "license": "MIT",
@@ -52,6 +52,7 @@
52
52
  "files": [
53
53
  "lib/*.tsp",
54
54
  "dist/**",
55
+ "templates/**",
55
56
  "entrypoints",
56
57
  "!dist/test/**"
57
58
  ],
@@ -94,12 +95,14 @@
94
95
  "vscode-oniguruma": "~2.0.1",
95
96
  "vscode-textmate": "~9.0.0",
96
97
  "sinon": "~17.0.1",
97
- "@types/sinon": "~10.0.20"
98
+ "@types/sinon": "~10.0.20",
99
+ "ts-node": "~10.9.1"
98
100
  },
99
101
  "peerDependencies": {},
100
102
  "scripts": {
101
103
  "clean": "rimraf ./dist ./temp",
102
- "build": "npm run gen-manifest && npm run compile && npm run generate-tmlanguage",
104
+ "build:init-templates-index": "node --no-warnings --experimental-specifier-resolution=node --loader ts-node/esm ./.scripts/build-init-templates.ts",
105
+ "build": "npm run gen-manifest && npm run build:init-templates-index && npm run compile && npm run generate-tmlanguage",
103
106
  "compile": "tsc -p .",
104
107
  "watch": "tsc -p . --watch",
105
108
  "watch-tmlanguage": "node scripts/watch-tmlanguage.js",
@@ -107,6 +110,7 @@
107
110
  "dogfood": "node scripts/dogfood.js",
108
111
  "test": "mocha",
109
112
  "test-official": "c8 mocha --forbid-only --reporter mocha-multi-reporters",
113
+ "e2e": "mocha --config ./.mocharc.e2e.yaml",
110
114
  "gen-manifest": "node scripts/generate-manifest.js",
111
115
  "regen-nonascii": "node scripts/regen-nonascii.js",
112
116
  "fuzz": "node dist/test/manual/fuzz.js run",
@@ -0,0 +1,14 @@
1
+ root: true
2
+ env:
3
+ es2021: true
4
+ node: true
5
+ extends:
6
+ - eslint:recommended
7
+ - plugin:@typescript-eslint/recommended
8
+ parser: "@typescript-eslint/parser"
9
+ parserOptions:
10
+ ecmaVersion: latest
11
+ sourceType: module
12
+ plugins:
13
+ - "@typescript-eslint"
14
+ rules: {}
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "emitter-ts",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "dist/src/index.js",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/src/index.d.ts",
9
+ "default": "./dist/src/index.js"
10
+ },
11
+ "./testing": {
12
+ "types": "./dist/src/testing/index.d.ts",
13
+ "default": "./dist/src/testing/index.js"
14
+ }
15
+ },
16
+ "dependencies": {
17
+ "@typespec/compiler": "latest"
18
+ },
19
+ "devDependencies": {
20
+ "@types/node": "latest",
21
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
22
+ "@typescript-eslint/parser": "^6.0.0",
23
+ "eslint": "^8.45.0",
24
+ "typescript": "^5.3.3",
25
+ "prettier": "^3.0.3"
26
+ },
27
+ "scripts": {
28
+ "build": "tsc",
29
+ "watch": "tsc --watch",
30
+ "test": "node --test ./dist/test/",
31
+ "lint": "eslint src/ test/ --report-unused-disable-directives --max-warnings=0",
32
+ "lint:fix": "eslint . --report-unused-disable-directives --fix",
33
+ "format": "prettier . --write",
34
+ "format:check": "prettier --check ."
35
+ },
36
+ "private": true
37
+ }