@azure-tools/rlc-common 0.23.0 → 0.24.0

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 (52) hide show
  1. package/.rush/temp/operation/build/state.json +1 -1
  2. package/.rush/temp/package-deps_build.json +12 -12
  3. package/CHANGELOG.md +10 -0
  4. package/dist/buildClient.js +4 -4
  5. package/dist/buildClient.js.map +1 -1
  6. package/dist/buildLogger.js +2 -2
  7. package/dist/buildLogger.js.map +1 -1
  8. package/dist/buildObjectTypes.js +10 -7
  9. package/dist/buildObjectTypes.js.map +1 -1
  10. package/dist/helpers/importsUtil.js +13 -13
  11. package/dist/helpers/importsUtil.js.map +1 -1
  12. package/dist/interfaces.js.map +1 -1
  13. package/dist/metadata/buildESLintConfig.js +2 -3
  14. package/dist/metadata/buildESLintConfig.js.map +1 -1
  15. package/dist/metadata/buildPackageFile.js +2 -2
  16. package/dist/metadata/buildPackageFile.js.map +1 -1
  17. package/dist/metadata/buildReadmeFile.js +4 -4
  18. package/dist/metadata/buildReadmeFile.js.map +1 -1
  19. package/dist/metadata/buildRollupConfig.js +3 -3
  20. package/dist/metadata/buildRollupConfig.js.map +1 -1
  21. package/dist/package.json +1 -1
  22. package/dist-esm/buildClient.js +4 -4
  23. package/dist-esm/buildClient.js.map +1 -1
  24. package/dist-esm/buildLogger.js +2 -2
  25. package/dist-esm/buildLogger.js.map +1 -1
  26. package/dist-esm/buildObjectTypes.js +8 -5
  27. package/dist-esm/buildObjectTypes.js.map +1 -1
  28. package/dist-esm/helpers/importsUtil.js +13 -13
  29. package/dist-esm/helpers/importsUtil.js.map +1 -1
  30. package/dist-esm/interfaces.js.map +1 -1
  31. package/dist-esm/metadata/buildESLintConfig.js +1 -2
  32. package/dist-esm/metadata/buildESLintConfig.js.map +1 -1
  33. package/dist-esm/metadata/buildPackageFile.js +2 -2
  34. package/dist-esm/metadata/buildPackageFile.js.map +1 -1
  35. package/dist-esm/metadata/buildReadmeFile.js +4 -4
  36. package/dist-esm/metadata/buildReadmeFile.js.map +1 -1
  37. package/dist-esm/metadata/buildRollupConfig.js +2 -2
  38. package/dist-esm/metadata/buildRollupConfig.js.map +1 -1
  39. package/dist-esm/package.json +1 -1
  40. package/package.json +1 -1
  41. package/src/buildClient.ts +4 -4
  42. package/src/buildLogger.ts +2 -2
  43. package/src/buildObjectTypes.ts +16 -5
  44. package/src/helpers/importsUtil.ts +13 -13
  45. package/src/interfaces.ts +6 -1
  46. package/src/metadata/buildESLintConfig.ts +1 -2
  47. package/src/metadata/buildPackageFile.ts +2 -2
  48. package/src/metadata/buildReadmeFile.ts +4 -4
  49. package/src/metadata/buildRollupConfig.ts +4 -2
  50. package/test/helpers/importsUtil.spec.ts +4 -4
  51. package/types/helpers/importsUtil.d.ts +3 -3
  52. package/types/interfaces.d.ts +5 -1
@@ -4,7 +4,7 @@ import { RLCModel } from "../interfaces.js";
4
4
  import hbs from "handlebars";
5
5
  import { NameType, normalizeName } from "../helpers/nameUtils.js";
6
6
 
7
- const readmeTemplate = `# {{ clientDescriptiveName }} library for JavaScript
7
+ const azureReadmeTemplate = `# {{ clientDescriptiveName }} library for JavaScript
8
8
 
9
9
  {{ description }}
10
10
 
@@ -162,9 +162,9 @@ interface Metadata {
162
162
  export function buildReadmeFile(model: RLCModel) {
163
163
  const metadata = createMetadata(model) ?? {};
164
164
  const readmeFileContents = hbs.compile(
165
- model.options?.branded === false
166
- ? nonBrandedReadmeTemplate
167
- : readmeTemplate,
165
+ model.options?.flavor === "azure"
166
+ ? azureReadmeTemplate
167
+ : nonBrandedReadmeTemplate,
168
168
  { noEscape: true }
169
169
  );
170
170
  return {
@@ -6,9 +6,11 @@ import { RLCModel } from "../interfaces.js";
6
6
 
7
7
  export function buildRollupConfig(model: RLCModel) {
8
8
  const azureSdkForJs = Boolean(model.options?.azureSdkForJs);
9
- const isBranded = model.options?.branded ?? true;
10
9
  // Only generate the file when it is not in sdk repo
11
- if (isBranded && (azureSdkForJs === true || azureSdkForJs === undefined)) {
10
+ if (
11
+ model.options?.flavor === "azure" &&
12
+ (azureSdkForJs === true || azureSdkForJs === undefined)
13
+ ) {
12
14
  return;
13
15
  }
14
16
 
@@ -7,7 +7,7 @@ import {
7
7
 
8
8
  describe("#buildRuntimeImports", () => {
9
9
  it("should return the correct import set for branded scope", () => {
10
- const imports = buildRuntimeImports(true);
10
+ const imports = buildRuntimeImports("azure");
11
11
  expect(imports.commonFallback).to.be.undefined;
12
12
  expect(imports.restClient).to.deep.equal({
13
13
  type: "restClient",
@@ -17,7 +17,7 @@ describe("#buildRuntimeImports", () => {
17
17
  });
18
18
 
19
19
  it("should return the correct import set for non-branded scope", () => {
20
- const imports = buildRuntimeImports(false);
20
+ const imports = buildRuntimeImports(undefined);
21
21
  expect(imports.commonFallback).to.deep.equal({
22
22
  type: "commonFallback",
23
23
  specifier: "@typespec/ts-http-runtime",
@@ -41,7 +41,7 @@ describe("#getImportSpecifier", () => {
41
41
  });
42
42
 
43
43
  describe("#branded", () => {
44
- const branded = buildRuntimeImports(true);
44
+ const branded = buildRuntimeImports("azure");
45
45
  it("should return the correct import specifier for core auth", () => {
46
46
  expect(getImportSpecifier("coreAuth", branded)).to.equal(
47
47
  "@azure/core-auth"
@@ -54,7 +54,7 @@ describe("#getImportSpecifier", () => {
54
54
  });
55
55
 
56
56
  describe("#non-branded", () => {
57
- const nonBranded = buildRuntimeImports(false);
57
+ const nonBranded = buildRuntimeImports(undefined);
58
58
  it("should return the correct import specifier for core auth", () => {
59
59
  expect(getImportSpecifier("coreAuth", nonBranded)).to.equal(
60
60
  "@typespec/ts-http-runtime"
@@ -1,11 +1,11 @@
1
1
  import { SourceFile } from "ts-morph";
2
- import { ImportType, Imports } from "../interfaces.js";
2
+ import { ImportType, Imports, PackageFlavor } from "../interfaces.js";
3
3
  /**
4
4
  * Build the common imports for generated SDK
5
- * @param branded whether to use azure-branded imports, the default value is true for azure branded
5
+ * @param flavor flavor of SDK to generate, if any. When set to "azure", Azure Core packages will be used. When unset, the generic `ts-http-runtime` package will be used.
6
6
  * @returns
7
7
  */
8
- export declare function buildRuntimeImports(branded?: boolean): Imports;
8
+ export declare function buildRuntimeImports(flavor?: PackageFlavor): Imports;
9
9
  /**
10
10
  * Initialize the inner imports for parameter and response, the import set would be used for referred models
11
11
  * @returns
@@ -143,6 +143,10 @@ export interface OperationLroDetail {
143
143
  */
144
144
  precedence?: number;
145
145
  }
146
+ /**
147
+ * Flavor of the package to generate. If "azure", an Azure-branded package should be generated. If left undefined, a package without Azure branding will be generated.
148
+ */
149
+ export type PackageFlavor = "azure" | undefined;
146
150
  export interface RLCOptions {
147
151
  includeShortcuts?: boolean;
148
152
  multiClient?: boolean;
@@ -184,7 +188,7 @@ export interface RLCOptions {
184
188
  sourceFrom?: "TypeSpec" | "Swagger";
185
189
  isModularLibrary?: boolean;
186
190
  enableOperationGroup?: boolean;
187
- branded?: boolean;
191
+ flavor?: PackageFlavor;
188
192
  enableModelNamespace?: boolean;
189
193
  hierarchyClient?: boolean;
190
194
  }