@autorest/typescript 6.0.0-beta.7 → 6.0.0-rc.1
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.
- package/README.md +42 -5
- package/dist/{src/generators/static/README.md.hbs → hlcREADME.md.hbs} +41 -5
- package/dist/hlcSamples.ts.hbs +49 -0
- package/dist/karma.conf.js.hbs +126 -0
- package/dist/paginateHelper.ts.hbs +208 -0
- package/dist/pollingHelper.ts.hbs +72 -0
- package/dist/rlcEnv.ts.hbs +3 -0
- package/dist/rlcREADME.md.hbs +71 -0
- package/dist/rlcRecordedClient.ts.hbs +26 -0
- package/dist/rlcSampleTest.spec.ts.hbs +20 -0
- package/dist/rlcSamples.ts.hbs +28 -0
- package/dist/sampleEnv.hbs +4 -0
- package/dist/sampleTest.ts.hbs +32 -0
- package/dist/samples.ts.hbs +0 -0
- package/dist/src/autorestSession.d.ts +18 -6
- package/dist/src/autorestSession.d.ts.map +1 -1
- package/dist/src/autorestSession.js +3 -9
- package/dist/src/autorestSession.js.map +1 -1
- package/dist/src/conflictResolver.d.ts +3 -0
- package/dist/src/conflictResolver.d.ts.map +1 -0
- package/dist/src/conflictResolver.js +43 -0
- package/dist/src/conflictResolver.js.map +1 -0
- package/dist/src/generators/LROGenerator.d.ts.map +1 -1
- package/dist/src/generators/LROGenerator.js +5 -13
- package/dist/src/generators/LROGenerator.js.map +1 -1
- package/dist/src/generators/clientFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/clientFileGenerator.js +303 -61
- package/dist/src/generators/clientFileGenerator.js.map +1 -1
- package/dist/src/generators/indexGenerator.d.ts +1 -1
- package/dist/src/generators/indexGenerator.d.ts.map +1 -1
- package/dist/src/generators/indexGenerator.js +143 -11
- package/dist/src/generators/indexGenerator.js.map +1 -1
- package/dist/src/generators/mappersGenerator.d.ts.map +1 -1
- package/dist/src/generators/mappersGenerator.js +93 -19
- package/dist/src/generators/mappersGenerator.js.map +1 -1
- package/dist/src/generators/modelsGenerator.d.ts.map +1 -1
- package/dist/src/generators/modelsGenerator.js +81 -82
- package/dist/src/generators/modelsGenerator.js.map +1 -1
- package/dist/src/generators/operationGenerator.d.ts.map +1 -1
- package/dist/src/generators/operationGenerator.js +92 -125
- package/dist/src/generators/operationGenerator.js.map +1 -1
- package/dist/src/generators/operationInterfaceGenerator.js +20 -20
- package/dist/src/generators/operationInterfaceGenerator.js.map +1 -1
- package/dist/src/generators/parametersGenerator.d.ts.map +1 -1
- package/dist/src/generators/parametersGenerator.js +7 -8
- package/dist/src/generators/parametersGenerator.js.map +1 -1
- package/dist/src/generators/samples/hlcSampleGenerator.d.ts +13 -0
- package/dist/src/generators/samples/hlcSampleGenerator.d.ts.map +1 -0
- package/dist/src/generators/samples/hlcSampleGenerator.js +43 -0
- package/dist/src/generators/samples/hlcSampleGenerator.js.map +1 -0
- package/dist/src/generators/samples/hlcSamples.ts.hbs +49 -0
- package/dist/src/generators/samples/rlcSampleGenerator.d.ts +4 -0
- package/dist/src/generators/samples/rlcSampleGenerator.d.ts.map +1 -0
- package/dist/src/generators/samples/rlcSampleGenerator.js +64 -0
- package/dist/src/generators/samples/rlcSampleGenerator.js.map +1 -0
- package/dist/src/generators/samples/rlcSamples.ts.hbs +28 -0
- package/dist/src/generators/samples/sampleEnv.hbs +4 -0
- package/dist/src/generators/samples/sampleEnvGenerator.d.ts +3 -0
- package/dist/src/generators/samples/sampleEnvGenerator.d.ts.map +1 -0
- package/dist/src/generators/samples/sampleEnvGenerator.js +17 -0
- package/dist/src/generators/samples/sampleEnvGenerator.js.map +1 -0
- package/dist/src/generators/static/apiExtractorConfig.js +3 -3
- package/dist/src/generators/static/apiExtractorConfig.js.map +1 -1
- package/dist/src/generators/static/esLintConfigGenerator.d.ts +3 -0
- package/dist/src/generators/static/esLintConfigGenerator.d.ts.map +1 -0
- package/dist/src/generators/static/esLintConfigGenerator.js +26 -0
- package/dist/src/generators/static/esLintConfigGenerator.js.map +1 -0
- package/{src/generators/static/README.md.hbs → dist/src/generators/static/hlcREADME.md.hbs} +41 -5
- package/dist/src/generators/static/karma.conf.js.hbs +126 -0
- package/dist/src/generators/static/karmaConfigFileGenerator.d.ts +3 -0
- package/dist/src/generators/static/karmaConfigFileGenerator.d.ts.map +1 -0
- package/dist/src/generators/static/karmaConfigFileGenerator.js +23 -0
- package/dist/src/generators/static/karmaConfigFileGenerator.js.map +1 -0
- package/dist/src/generators/static/licenseFileGenerator.js +1 -1
- package/dist/src/generators/static/licenseFileGenerator.js.map +1 -1
- package/dist/src/generators/static/packageFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/static/packageFileGenerator.js +267 -79
- package/dist/src/generators/static/packageFileGenerator.js.map +1 -1
- package/dist/src/generators/static/readmeFileGenerator.d.ts +2 -2
- package/dist/src/generators/static/readmeFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/static/readmeFileGenerator.js +54 -26
- package/dist/src/generators/static/readmeFileGenerator.js.map +1 -1
- package/dist/src/generators/static/rlcREADME.md.hbs +71 -0
- package/dist/src/generators/static/rollupConfigFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/static/rollupConfigFileGenerator.js +12 -71
- package/dist/src/generators/static/rollupConfigFileGenerator.js.map +1 -1
- package/dist/src/generators/static/tsConfigFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/static/tsConfigFileGenerator.js +47 -20
- package/dist/src/generators/static/tsConfigFileGenerator.js.map +1 -1
- package/dist/src/generators/test/envBrowserFileGenerator.d.ts +3 -0
- package/dist/src/generators/test/envBrowserFileGenerator.d.ts.map +1 -0
- package/dist/src/generators/test/envBrowserFileGenerator.js +15 -0
- package/dist/src/generators/test/envBrowserFileGenerator.js.map +1 -0
- package/dist/src/generators/test/envFileGenerator.d.ts +3 -0
- package/dist/src/generators/test/envFileGenerator.d.ts.map +1 -0
- package/dist/src/generators/test/envFileGenerator.js +23 -0
- package/dist/src/generators/test/envFileGenerator.js.map +1 -0
- package/dist/src/generators/test/recordedClientFileGenerator.d.ts +3 -0
- package/dist/src/generators/test/recordedClientFileGenerator.d.ts.map +1 -0
- package/dist/src/generators/test/recordedClientFileGenerator.js +23 -0
- package/dist/src/generators/test/recordedClientFileGenerator.js.map +1 -0
- package/dist/src/generators/test/rlcEnv.ts.hbs +3 -0
- package/dist/src/generators/test/rlcRecordedClient.ts.hbs +26 -0
- package/dist/src/generators/test/rlcSampleTest.spec.ts.hbs +20 -0
- package/dist/src/generators/test/sampleTest.ts.hbs +32 -0
- package/dist/src/generators/test/sampleTestGenerator.d.ts +3 -0
- package/dist/src/generators/test/sampleTestGenerator.d.ts.map +1 -0
- package/dist/src/generators/test/sampleTestGenerator.js +34 -0
- package/dist/src/generators/test/sampleTestGenerator.js.map +1 -0
- package/dist/src/generators/tracingFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/tracingFileGenerator.js +7 -21
- package/dist/src/generators/tracingFileGenerator.js.map +1 -1
- package/dist/src/generators/utils/docsUtils.js +2 -2
- package/dist/src/generators/utils/docsUtils.js.map +1 -1
- package/dist/src/generators/utils/operationsUtils.js +1 -1
- package/dist/src/generators/utils/operationsUtils.js.map +1 -1
- package/dist/src/generators/utils/pagingOperations.d.ts +5 -0
- package/dist/src/generators/utils/pagingOperations.d.ts.map +1 -1
- package/dist/src/generators/utils/pagingOperations.js +15 -15
- package/dist/src/generators/utils/pagingOperations.js.map +1 -1
- package/dist/src/generators/utils/parameterUtils.js +9 -9
- package/dist/src/generators/utils/parameterUtils.js.map +1 -1
- package/dist/src/generators/utils/responseTypeUtils.js +2 -2
- package/dist/src/generators/utils/responseTypeUtils.js.map +1 -1
- package/dist/src/generators/utils/tracingUtils.d.ts.map +1 -1
- package/dist/src/generators/utils/tracingUtils.js +2 -6
- package/dist/src/generators/utils/tracingUtils.js.map +1 -1
- package/dist/src/lroImpl.d.ts +16 -0
- package/dist/src/lroImpl.d.ts.map +1 -0
- package/dist/src/lroImpl.js +45 -0
- package/dist/src/lroImpl.js.map +1 -0
- package/dist/src/main.d.ts +2 -2
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +8 -8
- package/dist/src/main.js.map +1 -1
- package/dist/src/models/clientDetails.d.ts +10 -1
- package/dist/src/models/clientDetails.d.ts.map +1 -1
- package/dist/src/models/modelDetails.d.ts +2 -2
- package/dist/src/models/modelDetails.d.ts.map +1 -1
- package/dist/src/models/operationDetails.d.ts +1 -0
- package/dist/src/models/operationDetails.d.ts.map +1 -1
- package/dist/src/models/sampleDetails.d.ts +22 -0
- package/dist/src/models/sampleDetails.d.ts.map +1 -0
- package/dist/src/models/sampleDetails.js +3 -0
- package/dist/src/models/sampleDetails.js.map +1 -0
- package/dist/src/restLevelClient/generateClient.d.ts +1 -1
- package/dist/src/restLevelClient/generateClient.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateClient.js +108 -167
- package/dist/src/restLevelClient/generateClient.js.map +1 -1
- package/dist/src/restLevelClient/generateClientDefinition.d.ts +6 -0
- package/dist/src/restLevelClient/generateClientDefinition.d.ts.map +1 -0
- package/dist/src/restLevelClient/generateClientDefinition.js +261 -0
- package/dist/src/restLevelClient/generateClientDefinition.js.map +1 -0
- package/dist/src/restLevelClient/generateIsUnexpectedHelper.d.ts +8 -0
- package/dist/src/restLevelClient/generateIsUnexpectedHelper.d.ts.map +1 -0
- package/dist/src/restLevelClient/generateIsUnexpectedHelper.js +204 -0
- package/dist/src/restLevelClient/generateIsUnexpectedHelper.js.map +1 -0
- package/dist/src/restLevelClient/generateMethodShortcuts.d.ts +8 -0
- package/dist/src/restLevelClient/generateMethodShortcuts.d.ts.map +1 -0
- package/dist/src/restLevelClient/generateMethodShortcuts.js +70 -0
- package/dist/src/restLevelClient/generateMethodShortcuts.js.map +1 -0
- package/dist/src/restLevelClient/generateObjectTypes.d.ts +3 -3
- package/dist/src/restLevelClient/generateObjectTypes.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateObjectTypes.js +43 -31
- package/dist/src/restLevelClient/generateObjectTypes.js.map +1 -1
- package/dist/src/restLevelClient/generatePagingHelper.d.ts +3 -0
- package/dist/src/restLevelClient/generatePagingHelper.d.ts.map +1 -0
- package/dist/src/restLevelClient/generatePagingHelper.js +54 -0
- package/dist/src/restLevelClient/generatePagingHelper.js.map +1 -0
- package/dist/src/restLevelClient/generateParameterTypes.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateParameterTypes.js +247 -43
- package/dist/src/restLevelClient/generateParameterTypes.js.map +1 -1
- package/dist/src/restLevelClient/generatePollingHelper.d.ts +3 -0
- package/dist/src/restLevelClient/generatePollingHelper.d.ts.map +1 -0
- package/dist/src/restLevelClient/generatePollingHelper.js +20 -0
- package/dist/src/restLevelClient/generatePollingHelper.js.map +1 -0
- package/dist/src/restLevelClient/generateResponseTypes.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateResponseTypes.js +45 -29
- package/dist/src/restLevelClient/generateResponseTypes.js.map +1 -1
- package/dist/src/restLevelClient/generateRestLevel.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateRestLevel.js +64 -15
- package/dist/src/restLevelClient/generateRestLevel.js.map +1 -1
- package/dist/src/restLevelClient/generateSchemaTypes.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateSchemaTypes.js +29 -7
- package/dist/src/restLevelClient/generateSchemaTypes.js.map +1 -1
- package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts +4 -0
- package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts.map +1 -0
- package/dist/src/restLevelClient/generateTopLevelIndexFile.js +37 -0
- package/dist/src/restLevelClient/generateTopLevelIndexFile.js.map +1 -0
- package/dist/src/restLevelClient/getPropertySignature.d.ts +3 -2
- package/dist/src/restLevelClient/getPropertySignature.d.ts.map +1 -1
- package/dist/src/restLevelClient/getPropertySignature.js +23 -7
- package/dist/src/restLevelClient/getPropertySignature.js.map +1 -1
- package/dist/src/restLevelClient/helpers/hasPollingOperations.d.ts +4 -0
- package/dist/src/restLevelClient/helpers/hasPollingOperations.d.ts.map +1 -0
- package/dist/src/restLevelClient/helpers/hasPollingOperations.js +12 -0
- package/dist/src/restLevelClient/helpers/hasPollingOperations.js.map +1 -0
- package/dist/src/restLevelClient/helpers/modelHelpers.d.ts +4 -0
- package/dist/src/restLevelClient/helpers/modelHelpers.d.ts.map +1 -0
- package/dist/src/restLevelClient/helpers/modelHelpers.js +19 -0
- package/dist/src/restLevelClient/helpers/modelHelpers.js.map +1 -0
- package/dist/src/restLevelClient/helpers/operationHelpers.d.ts +10 -0
- package/dist/src/restLevelClient/helpers/operationHelpers.d.ts.map +1 -0
- package/dist/src/restLevelClient/helpers/operationHelpers.js +64 -0
- package/dist/src/restLevelClient/helpers/operationHelpers.js.map +1 -0
- package/dist/src/restLevelClient/interfaces.d.ts +33 -0
- package/dist/src/restLevelClient/interfaces.d.ts.map +1 -0
- package/dist/src/restLevelClient/interfaces.js +3 -0
- package/dist/src/restLevelClient/interfaces.js.map +1 -0
- package/dist/src/restLevelClient/mutateCodeModel.js +2 -2
- package/dist/src/restLevelClient/mutateCodeModel.js.map +1 -1
- package/dist/src/restLevelClient/operationHelpers.d.ts +4 -0
- package/dist/src/restLevelClient/operationHelpers.d.ts.map +1 -1
- package/dist/src/restLevelClient/operationHelpers.js +21 -10
- package/dist/src/restLevelClient/operationHelpers.js.map +1 -1
- package/dist/src/restLevelClient/paginateHelper.ts.hbs +208 -0
- package/dist/src/restLevelClient/pollingHelper.ts.hbs +72 -0
- package/dist/src/restLevelClient/samples/generateSamples.d.ts +23 -0
- package/dist/src/restLevelClient/samples/generateSamples.d.ts.map +1 -0
- package/dist/src/restLevelClient/samples/generateSamples.js +3 -0
- package/dist/src/restLevelClient/samples/generateSamples.js.map +1 -0
- package/dist/src/restLevelClient/samples/samples.ts.hbs +0 -0
- package/dist/src/restLevelClient/schemaHelpers.d.ts +12 -2
- package/dist/src/restLevelClient/schemaHelpers.d.ts.map +1 -1
- package/dist/src/restLevelClient/schemaHelpers.js +48 -14
- package/dist/src/restLevelClient/schemaHelpers.js.map +1 -1
- package/dist/src/transforms/extensions.js +10 -10
- package/dist/src/transforms/extensions.js.map +1 -1
- package/dist/src/transforms/groupTransforms.js +2 -2
- package/dist/src/transforms/groupTransforms.js.map +1 -1
- package/dist/src/transforms/mapperTransforms.d.ts +1 -1
- package/dist/src/transforms/mapperTransforms.d.ts.map +1 -1
- package/dist/src/transforms/mapperTransforms.js +30 -27
- package/dist/src/transforms/mapperTransforms.js.map +1 -1
- package/dist/src/transforms/objectTransforms.d.ts.map +1 -1
- package/dist/src/transforms/objectTransforms.js +42 -26
- package/dist/src/transforms/objectTransforms.js.map +1 -1
- package/dist/src/transforms/operationTransforms.d.ts.map +1 -1
- package/dist/src/transforms/operationTransforms.js +29 -26
- package/dist/src/transforms/operationTransforms.js.map +1 -1
- package/dist/src/transforms/optionsTransforms.js +1 -1
- package/dist/src/transforms/optionsTransforms.js.map +1 -1
- package/dist/src/transforms/parameterTransforms.d.ts.map +1 -1
- package/dist/src/transforms/parameterTransforms.js +43 -27
- package/dist/src/transforms/parameterTransforms.js.map +1 -1
- package/dist/src/transforms/samplesTransforms.d.ts +7 -0
- package/dist/src/transforms/samplesTransforms.d.ts.map +1 -0
- package/dist/src/transforms/samplesTransforms.js +293 -0
- package/dist/src/transforms/samplesTransforms.js.map +1 -0
- package/dist/src/transforms/transforms.d.ts +1 -2
- package/dist/src/transforms/transforms.d.ts.map +1 -1
- package/dist/src/transforms/transforms.js +26 -24
- package/dist/src/transforms/transforms.js.map +1 -1
- package/dist/src/transforms/urlTransforms.js +3 -3
- package/dist/src/transforms/urlTransforms.js.map +1 -1
- package/dist/src/typescriptGenerator.d.ts +2 -2
- package/dist/src/typescriptGenerator.d.ts.map +1 -1
- package/dist/src/typescriptGenerator.js +46 -40
- package/dist/src/typescriptGenerator.js.map +1 -1
- package/dist/src/utils/autorestOptions.d.ts +2 -2
- package/dist/src/utils/autorestOptions.d.ts.map +1 -1
- package/dist/src/utils/autorestOptions.js +148 -61
- package/dist/src/utils/autorestOptions.js.map +1 -1
- package/dist/src/utils/cloneOperation.js +2 -2
- package/dist/src/utils/cloneOperation.js.map +1 -1
- package/dist/src/utils/copyFiles.d.ts +2 -0
- package/dist/src/utils/copyFiles.d.ts.map +1 -0
- package/dist/src/utils/copyFiles.js +33 -0
- package/dist/src/utils/copyFiles.js.map +1 -0
- package/dist/src/utils/extractHeaders.js +4 -4
- package/dist/src/utils/extractHeaders.js.map +1 -1
- package/dist/src/utils/extractPaginationDetails.d.ts +5 -1
- package/dist/src/utils/extractPaginationDetails.d.ts.map +1 -1
- package/dist/src/utils/extractPaginationDetails.js +23 -10
- package/dist/src/utils/extractPaginationDetails.js.map +1 -1
- package/dist/src/utils/headersToSchema.js +1 -1
- package/dist/src/utils/headersToSchema.js.map +1 -1
- package/dist/src/utils/logger.js +1 -1
- package/dist/src/utils/logger.js.map +1 -1
- package/dist/src/utils/nameUtils.d.ts +6 -2
- package/dist/src/utils/nameUtils.d.ts.map +1 -1
- package/dist/src/utils/nameUtils.js +13 -8
- package/dist/src/utils/nameUtils.js.map +1 -1
- package/dist/src/utils/schemaHelpers.d.ts +6 -1
- package/dist/src/utils/schemaHelpers.d.ts.map +1 -1
- package/dist/src/utils/schemaHelpers.js +50 -7
- package/dist/src/utils/schemaHelpers.js.map +1 -1
- package/dist/src/utils/sortObjectSchemasHierarchically.js +1 -1
- package/dist/src/utils/sortObjectSchemasHierarchically.js.map +1 -1
- package/dist/src/utils/valueHelpers.d.ts.map +1 -1
- package/dist/src/utils/valueHelpers.js +2 -1
- package/dist/src/utils/valueHelpers.js.map +1 -1
- package/package.json +59 -39
- package/src/autorestSession.ts +26 -18
- package/src/conflictResolver.ts +61 -0
- package/src/generators/LROGenerator.ts +2 -16
- package/src/generators/clientFileGenerator.ts +400 -50
- package/src/generators/indexGenerator.ts +166 -14
- package/src/generators/mappersGenerator.ts +108 -8
- package/src/generators/modelsGenerator.ts +101 -98
- package/src/generators/operationGenerator.ts +63 -122
- package/src/generators/parametersGenerator.ts +2 -3
- package/src/generators/samples/hlcSampleGenerator.ts +50 -0
- package/src/generators/samples/hlcSamples.ts.hbs +49 -0
- package/src/generators/samples/rlcSampleGenerator.ts +72 -0
- package/src/generators/samples/rlcSamples.ts.hbs +28 -0
- package/src/generators/samples/sampleEnv.hbs +4 -0
- package/src/generators/samples/sampleEnvGenerator.ts +14 -0
- package/src/generators/static/apiExtractorConfig.ts +3 -3
- package/src/generators/static/esLintConfigGenerator.ts +24 -0
- package/src/generators/static/hlcREADME.md.hbs +144 -0
- package/src/generators/static/karma.conf.js.hbs +126 -0
- package/src/generators/static/karmaConfigFileGenerator.ts +20 -0
- package/src/generators/static/packageFileGenerator.ts +305 -82
- package/src/generators/static/readmeFileGenerator.ts +85 -42
- package/src/generators/static/rlcREADME.md.hbs +71 -0
- package/src/generators/static/rollupConfigFileGenerator.ts +13 -71
- package/src/generators/static/tsConfigFileGenerator.ts +55 -21
- package/src/generators/test/envBrowserFileGenerator.ts +14 -0
- package/src/generators/test/envFileGenerator.ts +22 -0
- package/src/generators/test/recordedClientFileGenerator.ts +22 -0
- package/src/generators/test/rlcEnv.ts.hbs +3 -0
- package/src/generators/test/rlcRecordedClient.ts.hbs +26 -0
- package/src/generators/test/rlcSampleTest.spec.ts.hbs +20 -0
- package/src/generators/test/sampleTest.ts.hbs +32 -0
- package/src/generators/test/sampleTestGenerator.ts +32 -0
- package/src/generators/tracingFileGenerator.ts +6 -24
- package/src/generators/utils/pagingOperations.ts +1 -2
- package/src/generators/utils/tracingUtils.ts +1 -5
- package/src/lroImpl.ts +26 -0
- package/src/main.ts +8 -5
- package/src/models/clientDetails.ts +11 -1
- package/src/models/modelDetails.ts +2 -2
- package/src/models/operationDetails.ts +1 -0
- package/src/models/sampleDetails.ts +22 -0
- package/src/restLevelClient/generateClient.ts +134 -244
- package/src/restLevelClient/generateClientDefinition.ts +386 -0
- package/src/restLevelClient/generateIsUnexpectedHelper.ts +224 -0
- package/src/restLevelClient/generateMethodShortcuts.ts +121 -0
- package/src/restLevelClient/generateObjectTypes.ts +62 -21
- package/src/restLevelClient/generatePagingHelper.ts +69 -0
- package/src/restLevelClient/generateParameterTypes.ts +377 -55
- package/src/restLevelClient/generatePollingHelper.ts +19 -0
- package/src/restLevelClient/generateResponseTypes.ts +53 -22
- package/src/restLevelClient/generateRestLevel.ts +65 -8
- package/src/restLevelClient/generateSchemaTypes.ts +43 -8
- package/src/restLevelClient/generateTopLevelIndexFile.ts +37 -0
- package/src/restLevelClient/getPropertySignature.ts +31 -6
- package/src/restLevelClient/helpers/hasPollingOperations.ts +15 -0
- package/src/restLevelClient/helpers/modelHelpers.ts +15 -0
- package/src/restLevelClient/helpers/operationHelpers.ts +93 -0
- package/src/restLevelClient/interfaces.ts +39 -0
- package/src/restLevelClient/operationHelpers.ts +23 -9
- package/src/restLevelClient/paginateHelper.ts.hbs +208 -0
- package/src/restLevelClient/pollingHelper.ts.hbs +72 -0
- package/src/restLevelClient/samples/generateSamples.ts +23 -0
- package/src/restLevelClient/samples/samples.ts.hbs +0 -0
- package/src/restLevelClient/schemaHelpers.ts +51 -9
- package/src/transforms/mapperTransforms.ts +12 -6
- package/src/transforms/objectTransforms.ts +26 -6
- package/src/transforms/operationTransforms.ts +6 -1
- package/src/transforms/parameterTransforms.ts +26 -7
- package/src/transforms/samplesTransforms.ts +349 -0
- package/src/transforms/transforms.ts +14 -9
- package/src/typescriptGenerator.ts +41 -45
- package/src/utils/autorestOptions.ts +203 -86
- package/src/utils/copyFiles.ts +36 -0
- package/src/utils/extractPaginationDetails.ts +19 -1
- package/src/utils/nameUtils.ts +18 -9
- package/src/utils/schemaHelpers.ts +51 -4
- package/src/utils/valueHelpers.ts +1 -0
- package/CHANGELOG.md +0 -44
- package/dist/src/coreClientLro.d.ts +0 -26
- package/dist/src/coreClientLro.d.ts.map +0 -1
- package/dist/src/coreClientLro.js +0 -207
- package/dist/src/coreClientLro.js.map +0 -1
- package/dist/src/coreHttpLro.d.ts +0 -26
- package/dist/src/coreHttpLro.d.ts.map +0 -1
- package/dist/src/coreHttpLro.js +0 -186
- package/dist/src/coreHttpLro.js.map +0 -1
- package/dist/src/generators/clientContextFileGenerator.d.ts +0 -5
- package/dist/src/generators/clientContextFileGenerator.d.ts.map +0 -1
- package/dist/src/generators/clientContextFileGenerator.js +0 -263
- package/dist/src/generators/clientContextFileGenerator.js.map +0 -1
- package/dist/src/lro/azureAsyncPolling.d.ts +0 -3
- package/dist/src/lro/azureAsyncPolling.d.ts.map +0 -1
- package/dist/src/lro/azureAsyncPolling.js +0 -71
- package/dist/src/lro/azureAsyncPolling.js.map +0 -1
- package/dist/src/lro/bodyPolling.d.ts +0 -8
- package/dist/src/lro/bodyPolling.d.ts.map +0 -1
- package/dist/src/lro/bodyPolling.js +0 -34
- package/dist/src/lro/bodyPolling.js.map +0 -1
- package/dist/src/lro/index.d.ts +0 -4
- package/dist/src/lro/index.d.ts.map +0 -1
- package/dist/src/lro/index.js +0 -10
- package/dist/src/lro/index.js.map +0 -1
- package/dist/src/lro/locationPolling.d.ts +0 -3
- package/dist/src/lro/locationPolling.d.ts.map +0 -1
- package/dist/src/lro/locationPolling.js +0 -18
- package/dist/src/lro/locationPolling.js.map +0 -1
- package/dist/src/lro/lroEngine.d.ts +0 -14
- package/dist/src/lro/lroEngine.d.ts.map +0 -1
- package/dist/src/lro/lroEngine.js +0 -38
- package/dist/src/lro/lroEngine.js.map +0 -1
- package/dist/src/lro/models.d.ts +0 -138
- package/dist/src/lro/models.d.ts.map +0 -1
- package/dist/src/lro/models.js +0 -12
- package/dist/src/lro/models.js.map +0 -1
- package/dist/src/lro/operation.d.ts +0 -36
- package/dist/src/lro/operation.d.ts.map +0 -1
- package/dist/src/lro/operation.js +0 -89
- package/dist/src/lro/operation.js.map +0 -1
- package/dist/src/lro/passthrough.d.ts +0 -3
- package/dist/src/lro/passthrough.d.ts.map +0 -1
- package/dist/src/lro/passthrough.js +0 -14
- package/dist/src/lro/passthrough.js.map +0 -1
- package/dist/src/lro/requestUtils.d.ts +0 -16
- package/dist/src/lro/requestUtils.d.ts.map +0 -1
- package/dist/src/lro/requestUtils.js +0 -76
- package/dist/src/lro/requestUtils.js.map +0 -1
- package/dist/src/lro/stateMachine.d.ts +0 -18
- package/dist/src/lro/stateMachine.d.ts.map +0 -1
- package/dist/src/lro/stateMachine.js +0 -90
- package/dist/src/lro/stateMachine.js.map +0 -1
- package/src/coreClientLro.ts +0 -315
- package/src/coreHttpLro.ts +0 -268
- package/src/generators/clientContextFileGenerator.ts +0 -405
- package/src/lro/azureAsyncPolling.ts +0 -82
- package/src/lro/bodyPolling.ts +0 -34
- package/src/lro/index.ts +0 -18
- package/src/lro/locationPolling.ts +0 -20
- package/src/lro/lroEngine.ts +0 -53
- package/src/lro/models.ts +0 -165
- package/src/lro/operation.ts +0 -112
- package/src/lro/passthrough.ts +0 -15
- package/src/lro/requestUtils.ts +0 -94
- package/src/lro/stateMachine.ts +0 -108
|
@@ -5,9 +5,11 @@ import { Project } from "ts-morph";
|
|
|
5
5
|
import * as hbs from "handlebars";
|
|
6
6
|
import * as fs from "fs";
|
|
7
7
|
import * as path from "path";
|
|
8
|
-
import { ClientDetails } from "../../models/clientDetails";
|
|
9
8
|
import { getAutorestOptions } from "../../autorestSession";
|
|
10
|
-
import {
|
|
9
|
+
import { CodeModel, Info, Languages } from "@autorest/codemodel";
|
|
10
|
+
import { getLanguageMetadata } from "../../utils/languageHelpers";
|
|
11
|
+
import { normalizeName, NameType } from "../../utils/nameUtils";
|
|
12
|
+
import { getSecurityInfoFromModel } from "../../utils/schemaHelpers";
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* Meta data information about the service, the package, and the client.
|
|
@@ -47,22 +49,40 @@ interface Metadata {
|
|
|
47
49
|
addCredentials?: boolean;
|
|
48
50
|
/** The link to the identity package in the repository */
|
|
49
51
|
identityPackageURL?: string;
|
|
52
|
+
/** Indicates if the package is a test/releasable package. */
|
|
53
|
+
isReleasablePackage?: boolean;
|
|
54
|
+
/** indicate if the package is management plane SDK */
|
|
55
|
+
azureArm?: boolean;
|
|
56
|
+
/** The URL for the service document */
|
|
57
|
+
serviceDocURL?: string;
|
|
58
|
+
/** The dependency info for this service */
|
|
59
|
+
dependencyDescription?: string;
|
|
60
|
+
dependencyLink?: string;
|
|
61
|
+
/** Indicates if the package is a multi-client */
|
|
62
|
+
hasMultiClients?: boolean;
|
|
50
63
|
}
|
|
51
64
|
|
|
52
65
|
/**
|
|
53
66
|
* Returns meta data information about the service, the package, and the client.
|
|
54
|
-
* @param
|
|
55
|
-
* @param packageDetails - the package details
|
|
67
|
+
* @param codeModel - include the client details
|
|
56
68
|
* @returns inferred metadata about the service, the package, and the client
|
|
57
69
|
*/
|
|
58
|
-
function createMetadata(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
70
|
+
function createMetadata(codeModel: CodeModel): Metadata {
|
|
71
|
+
const {
|
|
72
|
+
packageDetails,
|
|
73
|
+
azureOutputDirectory,
|
|
74
|
+
azureArm,
|
|
75
|
+
isTestPackage,
|
|
76
|
+
productDocLink,
|
|
77
|
+
dependencyInfo,
|
|
78
|
+
multiClient,
|
|
79
|
+
batch
|
|
80
|
+
} = getAutorestOptions();
|
|
81
|
+
const { addCredentials } = getSecurityInfoFromModel(codeModel.security);
|
|
82
|
+
|
|
83
|
+
const azureHuh =
|
|
84
|
+
packageDetails?.scopeName === "azure" ||
|
|
85
|
+
packageDetails?.scopeName === "azure-rest";
|
|
66
86
|
const repoURL = azureHuh
|
|
67
87
|
? "https://github.com/Azure/azure-sdk-for-js"
|
|
68
88
|
: undefined;
|
|
@@ -70,14 +90,21 @@ function createMetadata(
|
|
|
70
90
|
const packageSourceURL =
|
|
71
91
|
relativePackageSourcePath &&
|
|
72
92
|
repoURL &&
|
|
73
|
-
`${repoURL}/tree/
|
|
93
|
+
`${repoURL}/tree/main/${relativePackageSourcePath}`;
|
|
74
94
|
const names = relativePackageSourcePath?.split("/").slice(1);
|
|
75
95
|
const packageParentDirectoryName = names?.[0];
|
|
76
96
|
const packageDirectoryName = names?.[1];
|
|
77
|
-
|
|
78
|
-
const clientPackageName = packageDetails
|
|
79
|
-
const serviceTitle =
|
|
80
|
-
|
|
97
|
+
|
|
98
|
+
const clientPackageName = packageDetails?.name;
|
|
99
|
+
const { clientClassName, serviceTitle } = getClientAndServiceName(
|
|
100
|
+
codeModel.language,
|
|
101
|
+
codeModel.info
|
|
102
|
+
);
|
|
103
|
+
let simpleServiceName =
|
|
104
|
+
batch && batch.length > 1
|
|
105
|
+
? normalizeName(packageDetails.nameWithoutScope, NameType.Class)
|
|
106
|
+
: normalizeName(serviceTitle, NameType.Class);
|
|
107
|
+
simpleServiceName =
|
|
81
108
|
/**
|
|
82
109
|
* It is a required convention in Azure swaggers for their titles to end with
|
|
83
110
|
* "Client".
|
|
@@ -87,14 +114,21 @@ function createMetadata(
|
|
|
87
114
|
serviceTitle.match(/(.*)Client/)?.[1] ??
|
|
88
115
|
clientClassName.match(/(.*)Client/)?.[1] ??
|
|
89
116
|
serviceTitle.match(/(.*) Service/)?.[1] ??
|
|
90
|
-
|
|
117
|
+
simpleServiceName;
|
|
118
|
+
|
|
91
119
|
const serviceName = azureHuh
|
|
92
120
|
? simpleServiceName.startsWith("Azure")
|
|
93
121
|
? simpleServiceName
|
|
94
122
|
: `Azure ${simpleServiceName}`
|
|
95
123
|
: simpleServiceName;
|
|
96
124
|
const identityPackageURL =
|
|
97
|
-
repoURL && `${repoURL}/tree/
|
|
125
|
+
repoURL && `${repoURL}/tree/main/sdk/identity/identity`;
|
|
126
|
+
|
|
127
|
+
var apiRefUrlQueryParameter: string = "";
|
|
128
|
+
if (packageDetails?.version.includes("beta")) {
|
|
129
|
+
apiRefUrlQueryParameter = "?view=azure-node-preview";
|
|
130
|
+
}
|
|
131
|
+
|
|
98
132
|
return {
|
|
99
133
|
serviceName: serviceName,
|
|
100
134
|
clientPackageName: clientPackageName,
|
|
@@ -112,42 +146,36 @@ function createMetadata(
|
|
|
112
146
|
`https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-js%2Fsdk%2F${packageParentDirectoryName}%2F${packageDirectoryName}%2FREADME.png`
|
|
113
147
|
: undefined,
|
|
114
148
|
clientDescriptiveName: `${serviceName} client`,
|
|
115
|
-
description:
|
|
149
|
+
description: codeModel.info?.description,
|
|
116
150
|
apiRefURL: azureHuh
|
|
117
|
-
? `https://docs.microsoft.com/javascript/api/${clientPackageName}`
|
|
151
|
+
? `https://docs.microsoft.com/javascript/api/${clientPackageName}${apiRefUrlQueryParameter}`
|
|
118
152
|
: undefined,
|
|
119
153
|
packageNPMURL: `https://www.npmjs.com/package/${clientPackageName}`,
|
|
120
|
-
contributingGuideURL: repoURL && `${repoURL}/blob/
|
|
154
|
+
contributingGuideURL: repoURL && `${repoURL}/blob/main/CONTRIBUTING.md`,
|
|
121
155
|
projectName: azureHuh ? "Microsoft Azure SDK for JavaScript" : undefined,
|
|
122
156
|
addCredentials,
|
|
123
|
-
identityPackageURL
|
|
157
|
+
identityPackageURL,
|
|
158
|
+
isReleasablePackage: !isTestPackage,
|
|
159
|
+
azureArm: azureArm,
|
|
160
|
+
serviceDocURL: productDocLink,
|
|
161
|
+
dependencyDescription: dependencyInfo?.description,
|
|
162
|
+
dependencyLink: dependencyInfo?.link,
|
|
163
|
+
hasMultiClients: multiClient && batch && batch.length > 1
|
|
124
164
|
};
|
|
125
165
|
}
|
|
126
166
|
|
|
127
|
-
export function generateReadmeFile(
|
|
128
|
-
|
|
129
|
-
project: Project
|
|
130
|
-
) {
|
|
131
|
-
const {
|
|
132
|
-
packageDetails,
|
|
133
|
-
azureOutputDirectory,
|
|
134
|
-
generateMetadata,
|
|
135
|
-
addCredentials,
|
|
136
|
-
azureArm
|
|
137
|
-
} = getAutorestOptions();
|
|
167
|
+
export function generateReadmeFile(codeModel: CodeModel, project: Project) {
|
|
168
|
+
const { generateMetadata, restLevelClient } = getAutorestOptions();
|
|
138
169
|
|
|
139
170
|
if (!generateMetadata) {
|
|
140
171
|
return;
|
|
141
172
|
}
|
|
142
173
|
|
|
143
|
-
const metadata = createMetadata(
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
azureArm
|
|
149
|
-
);
|
|
150
|
-
const file = fs.readFileSync(path.join(__dirname, "README.md.hbs"), {
|
|
174
|
+
const metadata = createMetadata(codeModel);
|
|
175
|
+
const templateFile = !restLevelClient
|
|
176
|
+
? "hlcREADME.md.hbs"
|
|
177
|
+
: "rlcREADME.md.hbs";
|
|
178
|
+
const file = fs.readFileSync(path.join(__dirname, templateFile), {
|
|
151
179
|
encoding: "utf-8"
|
|
152
180
|
});
|
|
153
181
|
const readmeFileContents = hbs.compile(file, { noEscape: true });
|
|
@@ -155,3 +183,18 @@ export function generateReadmeFile(
|
|
|
155
183
|
overwrite: true
|
|
156
184
|
});
|
|
157
185
|
}
|
|
186
|
+
|
|
187
|
+
function getClientAndServiceName(
|
|
188
|
+
codeModelLanguage: Languages,
|
|
189
|
+
codeModelInfo: Info
|
|
190
|
+
) {
|
|
191
|
+
const { name: clientName } = getLanguageMetadata(codeModelLanguage);
|
|
192
|
+
const className = normalizeName(
|
|
193
|
+
clientName,
|
|
194
|
+
NameType.Class,
|
|
195
|
+
true /** shouldGuard */
|
|
196
|
+
);
|
|
197
|
+
const clientClassName = className;
|
|
198
|
+
const serviceTitle = codeModelInfo?.title ?? clientClassName;
|
|
199
|
+
return { clientClassName, serviceTitle };
|
|
200
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# {{ clientDescriptiveName }} library for JavaScript
|
|
2
|
+
|
|
3
|
+
{{ description }}
|
|
4
|
+
|
|
5
|
+
**Please rely heavily on {{#if serviceDocURL}}[the service's documentation]({{ serviceDocURL }}) and {{/if}}our [REST client docs](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/rest-clients.md) to use this library**
|
|
6
|
+
|
|
7
|
+
Key links:
|
|
8
|
+
|
|
9
|
+
{{#if packageSourceURL}}
|
|
10
|
+
- [Source code]({{ packageSourceURL }})
|
|
11
|
+
{{/if}}
|
|
12
|
+
{{#if packageNPMURL}}
|
|
13
|
+
- [Package (NPM)]({{ packageNPMURL }})
|
|
14
|
+
{{/if}}
|
|
15
|
+
{{#if apiRefURL}}
|
|
16
|
+
- [API reference documentation]({{ apiRefURL }})
|
|
17
|
+
{{/if}}
|
|
18
|
+
{{#if serviceDocURL}}
|
|
19
|
+
- [Product documentation]({{ serviceDocURL }})
|
|
20
|
+
{{/if}}
|
|
21
|
+
{{#if samplesURL}}
|
|
22
|
+
- [Samples]({{ samplesURL }})
|
|
23
|
+
{{/if}}
|
|
24
|
+
|
|
25
|
+
## Getting started
|
|
26
|
+
|
|
27
|
+
### Currently supported environments
|
|
28
|
+
|
|
29
|
+
- Node.js version 14.x.x or higher
|
|
30
|
+
|
|
31
|
+
### Prerequisites
|
|
32
|
+
|
|
33
|
+
- You must have an [Azure subscription](https://azure.microsoft.com/free/){{#if dependencyLink}} and follow [these]({{ dependencyLink }}) instructions{{/if}} to use this package.
|
|
34
|
+
|
|
35
|
+
### Install the `{{ clientPackageName }}` package
|
|
36
|
+
|
|
37
|
+
Install the {{ clientDescriptiveName }} REST client library for JavaScript with `npm`:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install {{ clientPackageName }}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Create and authenticate a `{{ clientClassName }}`
|
|
44
|
+
|
|
45
|
+
To use an [Azure Active Directory (AAD) token credential](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/samples/AzureIdentityExamples.md#authenticating-with-a-pre-fetched-access-token),
|
|
46
|
+
provide an instance of the desired credential type obtained from the
|
|
47
|
+
[@azure/identity](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity#credentials) library.
|
|
48
|
+
|
|
49
|
+
To authenticate with AAD, you must first `npm` install [`@azure/identity`](https://www.npmjs.com/package/@azure/identity) {{#if dependencyLink}}and
|
|
50
|
+
[{{dependencyDescription }}]({{ dependencyLink }}){{/if}}
|
|
51
|
+
|
|
52
|
+
After setup, you can choose which type of [credential](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity#credentials) from `@azure/identity` to use.
|
|
53
|
+
As an example, [DefaultAzureCredential](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity#defaultazurecredential)
|
|
54
|
+
can be used to authenticate the client.
|
|
55
|
+
|
|
56
|
+
Set the values of the client ID, tenant ID, and client secret of the AAD application as environment variables:
|
|
57
|
+
AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET
|
|
58
|
+
|
|
59
|
+
## Troubleshooting
|
|
60
|
+
|
|
61
|
+
### Logging
|
|
62
|
+
|
|
63
|
+
Enabling logging may help uncover useful information about failures. In order to see a log of HTTP requests and responses, set the `AZURE_LOG_LEVEL` environment variable to `info`. Alternatively, logging can be enabled at runtime by calling `setLogLevel` in the `@azure/logger`:
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
import { setLogLevel } from "@azure/logger";
|
|
67
|
+
|
|
68
|
+
setLogLevel("info");
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
For more detailed instructions on how to enable logs, you can look at the [@azure/logger package docs](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/logger).
|
|
@@ -5,12 +5,17 @@ import { Project } from "ts-morph";
|
|
|
5
5
|
import { getAutorestOptions } from "../../autorestSession";
|
|
6
6
|
|
|
7
7
|
export function generateRollupConfig(project: Project) {
|
|
8
|
-
const { generateMetadata } = getAutorestOptions();
|
|
8
|
+
const { generateMetadata, restLevelClient, azureSdkForJs } = getAutorestOptions();
|
|
9
9
|
|
|
10
10
|
if (!generateMetadata) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
// when it's generating rlc codes, only generate rollup config in codegen test
|
|
15
|
+
if (restLevelClient && azureSdkForJs) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
const rollupFile = project.createSourceFile("rollup.config.js", undefined, {
|
|
15
20
|
overwrite: true
|
|
16
21
|
});
|
|
@@ -24,62 +29,14 @@ export function generateRollupConfig(project: Project) {
|
|
|
24
29
|
|
|
25
30
|
import nodeBuiltins from "builtin-modules";
|
|
26
31
|
|
|
27
|
-
/**
|
|
28
|
-
* Gets the proper configuration needed for rollup's commonJS plugin for @opentelemetry/api.
|
|
29
|
-
*
|
|
30
|
-
* NOTE: this manual configuration is only needed because OpenTelemetry uses an
|
|
31
|
-
* __exportStar downleveled helper function to declare its exports which confuses
|
|
32
|
-
* rollup's automatic discovery mechanism.
|
|
33
|
-
*
|
|
34
|
-
* @returns an object reference that can be \`...\`'d into your cjs() configuration.
|
|
35
|
-
*/
|
|
36
|
-
export function openTelemetryCommonJs() {
|
|
37
|
-
const namedExports = {};
|
|
38
|
-
|
|
39
|
-
for (const key of [
|
|
40
|
-
"@opentelemetry/api",
|
|
41
|
-
"@azure/core-tracing/node_modules/@opentelemetry/api"
|
|
42
|
-
]) {
|
|
43
|
-
namedExports[key] = [
|
|
44
|
-
"SpanKind",
|
|
45
|
-
"TraceFlags",
|
|
46
|
-
"getSpan",
|
|
47
|
-
"setSpan",
|
|
48
|
-
"SpanStatusCode",
|
|
49
|
-
"getSpanContext",
|
|
50
|
-
"setSpanContext"
|
|
51
|
-
];
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const releasedOpenTelemetryVersions = ["0.10.2", "1.0.0-rc.0"];
|
|
55
|
-
|
|
56
|
-
for (const version of releasedOpenTelemetryVersions) {
|
|
57
|
-
namedExports[
|
|
58
|
-
// working around a limitation in the rollup common.js plugin - it's not able to resolve these modules so the named exports listed above will not get applied. We have to drill down to the actual path.
|
|
59
|
-
\`../../../common/temp/node_modules/.pnpm/@opentelemetry/api@\${version}/node_modules/@opentelemetry/api/build/src/index.js\`
|
|
60
|
-
] = [
|
|
61
|
-
"SpanKind",
|
|
62
|
-
"TraceFlags",
|
|
63
|
-
"getSpan",
|
|
64
|
-
"setSpan",
|
|
65
|
-
"StatusCode",
|
|
66
|
-
"CanonicalCode",
|
|
67
|
-
"getSpanContext",
|
|
68
|
-
"setSpanContext"
|
|
69
|
-
];
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return namedExports;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
32
|
// #region Warning Handler
|
|
76
33
|
|
|
77
34
|
/**
|
|
78
|
-
* A function that can determine whether a
|
|
35
|
+
* A function that can determine whether a rollup warning should be ignored. If
|
|
79
36
|
* the function returns \`true\`, then the warning will not be displayed.
|
|
80
37
|
*/
|
|
81
38
|
|
|
82
|
-
function
|
|
39
|
+
function ignoreNiseSinonEval(warning) {
|
|
83
40
|
return (
|
|
84
41
|
warning.code === "EVAL" &&
|
|
85
42
|
(warning.id && ((warning.id.includes("node_modules/nise")) ||
|
|
@@ -87,7 +44,7 @@ export function generateRollupConfig(project: Project) {
|
|
|
87
44
|
);
|
|
88
45
|
}
|
|
89
46
|
|
|
90
|
-
function
|
|
47
|
+
function ignoreChaiCircularDependency(warning) {
|
|
91
48
|
return (
|
|
92
49
|
warning.code === "CIRCULAR_DEPENDENCY" &&
|
|
93
50
|
(warning.importer && warning.importer.includes("node_modules/chai") === true)
|
|
@@ -95,8 +52,8 @@ export function generateRollupConfig(project: Project) {
|
|
|
95
52
|
}
|
|
96
53
|
|
|
97
54
|
const warningInhibitors = [
|
|
98
|
-
|
|
99
|
-
|
|
55
|
+
ignoreChaiCircularDependency,
|
|
56
|
+
ignoreNiseSinonEval
|
|
100
57
|
];
|
|
101
58
|
|
|
102
59
|
/**
|
|
@@ -131,22 +88,7 @@ export function generateRollupConfig(project: Project) {
|
|
|
131
88
|
nodeResolve({
|
|
132
89
|
mainFields: ["module", "browser"]
|
|
133
90
|
}),
|
|
134
|
-
cjs(
|
|
135
|
-
namedExports: {
|
|
136
|
-
// Chai's strange internal architecture makes it impossible to statically
|
|
137
|
-
// analyze its exports.
|
|
138
|
-
chai: [
|
|
139
|
-
"version",
|
|
140
|
-
"use",
|
|
141
|
-
"util",
|
|
142
|
-
"config",
|
|
143
|
-
"expect",
|
|
144
|
-
"should",
|
|
145
|
-
"assert"
|
|
146
|
-
],
|
|
147
|
-
...openTelemetryCommonJs()
|
|
148
|
-
}
|
|
149
|
-
}),
|
|
91
|
+
cjs(),
|
|
150
92
|
json(),
|
|
151
93
|
sourcemaps()
|
|
152
94
|
//viz({ filename: "dist-test/browser-stats.html", sourcemap: true })
|
|
@@ -185,7 +127,7 @@ export function generateRollupConfig(project: Project) {
|
|
|
185
127
|
],
|
|
186
128
|
output: { file: "dist/index.js", format: "cjs", sourcemap: true },
|
|
187
129
|
preserveSymlinks: false,
|
|
188
|
-
plugins: [sourcemaps(), nodeResolve()
|
|
130
|
+
plugins: [sourcemaps(), nodeResolve()]
|
|
189
131
|
};
|
|
190
132
|
|
|
191
133
|
const config = [baseConfig];
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { Project } from "ts-morph";
|
|
5
5
|
import { getAutorestOptions } from "../../autorestSession";
|
|
6
6
|
|
|
7
|
-
const highLevelTsConfig = {
|
|
7
|
+
const highLevelTsConfig: Record<string, any> = {
|
|
8
8
|
compilerOptions: {
|
|
9
9
|
module: "es6",
|
|
10
10
|
moduleResolution: "node",
|
|
@@ -15,43 +15,77 @@ const highLevelTsConfig = {
|
|
|
15
15
|
esModuleInterop: true,
|
|
16
16
|
allowSyntheticDefaultImports: true,
|
|
17
17
|
forceConsistentCasingInFileNames: true,
|
|
18
|
-
preserveConstEnums: true,
|
|
19
18
|
lib: ["es6", "dom"],
|
|
20
19
|
declaration: true,
|
|
21
|
-
outDir: "./esm",
|
|
20
|
+
outDir: "./dist-esm",
|
|
22
21
|
importHelpers: true
|
|
23
22
|
},
|
|
24
23
|
include: ["./src/**/*.ts"],
|
|
25
24
|
exclude: ["node_modules"]
|
|
26
25
|
};
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
declarationMap: true,
|
|
35
|
-
outDir: "./esm"
|
|
27
|
+
|
|
28
|
+
const restLevelTsConfigInAzureSdkForJs: Record<string, any> = {
|
|
29
|
+
"extends": "../../../tsconfig.package",
|
|
30
|
+
"compilerOptions": {
|
|
31
|
+
"outDir": "./dist-esm",
|
|
32
|
+
"declarationDir": "./types",
|
|
36
33
|
},
|
|
37
|
-
|
|
38
|
-
"node_modules",
|
|
39
|
-
"types",
|
|
40
|
-
"temp",
|
|
41
|
-
"browser",
|
|
42
|
-
"dist",
|
|
43
|
-
"dist-esm",
|
|
44
|
-
"./samples/**/*.ts"
|
|
45
|
-
]
|
|
34
|
+
"include": ["src/**/*.ts"]
|
|
46
35
|
};
|
|
47
36
|
|
|
37
|
+
const restLevelTsConfigNotInAzureSdkForJs: Record<string, any> = {
|
|
38
|
+
"compilerOptions": {
|
|
39
|
+
"target": "ES2017",
|
|
40
|
+
"module": "es6",
|
|
41
|
+
"lib": [],
|
|
42
|
+
"declaration": true,
|
|
43
|
+
"declarationMap": true,
|
|
44
|
+
"inlineSources": true,
|
|
45
|
+
"sourceMap": true,
|
|
46
|
+
"importHelpers": true,
|
|
47
|
+
"strict": true,
|
|
48
|
+
"alwaysStrict": true,
|
|
49
|
+
"noUnusedLocals": true,
|
|
50
|
+
"noUnusedParameters": true,
|
|
51
|
+
"noImplicitReturns": true,
|
|
52
|
+
"noFallthroughCasesInSwitch": true,
|
|
53
|
+
"forceConsistentCasingInFileNames": true,
|
|
54
|
+
"moduleResolution": "node",
|
|
55
|
+
"allowSyntheticDefaultImports": true,
|
|
56
|
+
"esModuleInterop": true,
|
|
57
|
+
"outDir": "./dist-esm",
|
|
58
|
+
"declarationDir": "./types"
|
|
59
|
+
},
|
|
60
|
+
"include": ["./src/**/*.ts"]
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
48
64
|
export function generateTsConfig(project: Project) {
|
|
49
|
-
const { generateMetadata, restLevelClient } = getAutorestOptions();
|
|
65
|
+
const { generateMetadata, restLevelClient, generateTest, packageDetails, generateSample, azureSdkForJs } = getAutorestOptions();
|
|
50
66
|
|
|
51
67
|
if (!generateMetadata) {
|
|
52
68
|
return;
|
|
53
69
|
}
|
|
54
70
|
|
|
71
|
+
const clientPackageName = packageDetails.name;
|
|
72
|
+
|
|
73
|
+
const restLevelTsConfig = azureSdkForJs ? restLevelTsConfigInAzureSdkForJs : restLevelTsConfigNotInAzureSdkForJs;
|
|
74
|
+
|
|
75
|
+
if (generateTest) {
|
|
76
|
+
highLevelTsConfig.include.push("./test/**/*.ts");
|
|
77
|
+
restLevelTsConfig.include.push("./test/**/*.ts");
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (generateSample) {
|
|
81
|
+
highLevelTsConfig.include.push("samples-dev/**/*.ts");
|
|
82
|
+
highLevelTsConfig.compilerOptions["paths"] = {};
|
|
83
|
+
highLevelTsConfig.compilerOptions["paths"][clientPackageName] = ["./src/index"];
|
|
84
|
+
restLevelTsConfig.include.push("samples-dev/**/*.ts");
|
|
85
|
+
restLevelTsConfig.compilerOptions["paths"] = {};
|
|
86
|
+
restLevelTsConfig.compilerOptions["paths"][clientPackageName] = ["./src/index"];
|
|
87
|
+
}
|
|
88
|
+
|
|
55
89
|
const tsConfigContents = restLevelClient
|
|
56
90
|
? restLevelTsConfig
|
|
57
91
|
: highLevelTsConfig;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Project } from "ts-morph";
|
|
2
|
+
import { getAutorestOptions } from "../../autorestSession";
|
|
3
|
+
|
|
4
|
+
export function generateEnvBrowserFile(
|
|
5
|
+
project: Project
|
|
6
|
+
) {
|
|
7
|
+
const { generateTest, restLevelClient } = getAutorestOptions();
|
|
8
|
+
if (!generateTest || !restLevelClient) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
project.createSourceFile("test/public/utils/env.browser.ts", "", {
|
|
12
|
+
overwrite: true
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Project } from "ts-morph";
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as hbs from "handlebars";
|
|
5
|
+
import { getAutorestOptions } from "../../autorestSession";
|
|
6
|
+
|
|
7
|
+
export function generateEnvFile(
|
|
8
|
+
project: Project
|
|
9
|
+
) {
|
|
10
|
+
const { generateTest, restLevelClient } = getAutorestOptions();
|
|
11
|
+
if (!generateTest || !restLevelClient) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const metadata = {}
|
|
15
|
+
const file = fs.readFileSync(path.join(__dirname, "rlcEnv.ts.hbs"), {
|
|
16
|
+
encoding: "utf-8"
|
|
17
|
+
});
|
|
18
|
+
const envFileContents = hbs.compile(file, { noEscape: true });
|
|
19
|
+
project.createSourceFile("test/public/utils/env.ts", envFileContents(metadata), {
|
|
20
|
+
overwrite: true
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Project } from "ts-morph";
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as hbs from "handlebars";
|
|
5
|
+
import { getAutorestOptions } from "../../autorestSession";
|
|
6
|
+
|
|
7
|
+
export function generateRecordedClientFile(
|
|
8
|
+
project: Project
|
|
9
|
+
) {
|
|
10
|
+
const { generateTest, restLevelClient } = getAutorestOptions();
|
|
11
|
+
if (!generateTest || !restLevelClient) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const metadata = {}
|
|
15
|
+
const file = fs.readFileSync(path.join(__dirname, "rlcRecordedClient.ts.hbs"), {
|
|
16
|
+
encoding: "utf-8"
|
|
17
|
+
});
|
|
18
|
+
const recordedClientFileContents = hbs.compile(file, { noEscape: true });
|
|
19
|
+
project.createSourceFile("test/public/utils/recordedClient.ts", recordedClientFileContents(metadata), {
|
|
20
|
+
overwrite: true
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Context } from "mocha";
|
|
2
|
+
import { Recorder, RecorderStartOptions } from "@azure-tools/test-recorder";
|
|
3
|
+
import "./env";
|
|
4
|
+
|
|
5
|
+
const envSetupForPlayback: Record<string, string> = {
|
|
6
|
+
ENDPOINT: "https://endpoint",
|
|
7
|
+
AZURE_CLIENT_ID: "azure_client_id",
|
|
8
|
+
AZURE_CLIENT_SECRET: "azure_client_secret",
|
|
9
|
+
AZURE_TENANT_ID: "88888888-8888-8888-8888-888888888888",
|
|
10
|
+
SUBSCRIPTION_ID: "azure_subscription_id"
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const recorderEnvSetup: RecorderStartOptions = {
|
|
14
|
+
envSetupForPlayback
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* creates the recorder and reads the environment variables from the `.env` file.
|
|
19
|
+
* Should be called first in the test suite to make sure environment variables are
|
|
20
|
+
* read before they are being used.
|
|
21
|
+
*/
|
|
22
|
+
export async function createRecorder(context: Context): Promise<Recorder> {
|
|
23
|
+
const recorder = new Recorder(context.currentTest);
|
|
24
|
+
await recorder.start(recorderEnvSetup);
|
|
25
|
+
return recorder;
|
|
26
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Recorder } from "@azure-tools/test-recorder";
|
|
2
|
+
import { assert } from "chai";
|
|
3
|
+
import { createRecorder } from "./utils/recordedClient";
|
|
4
|
+
import { Context } from "mocha";
|
|
5
|
+
|
|
6
|
+
describe("My test", () => {
|
|
7
|
+
let recorder: Recorder;
|
|
8
|
+
|
|
9
|
+
beforeEach(async function(this: Context) {
|
|
10
|
+
recorder = await createRecorder(this);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
afterEach(async function() {
|
|
14
|
+
await recorder.stop();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("sample test", async function() {
|
|
18
|
+
assert.equal(1, 1);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Recorder, RecorderStartOptions, env } from "@azure-tools/test-recorder";
|
|
2
|
+
import { assert } from "chai";
|
|
3
|
+
import { Context } from "mocha";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
const replaceableVariables: Record<string, string> = {
|
|
7
|
+
AZURE_CLIENT_ID: "azure_client_id",
|
|
8
|
+
AZURE_CLIENT_SECRET: "azure_client_secret",
|
|
9
|
+
AZURE_TENANT_ID: "88888888-8888-8888-8888-888888888888",
|
|
10
|
+
SUBSCRIPTION_ID: "azure_subscription_id"
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const recorderOptions: RecorderStartOptions = {
|
|
14
|
+
envSetupForPlayback: replaceableVariables,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
describe("My test", () => {
|
|
18
|
+
let recorder: Recorder;
|
|
19
|
+
|
|
20
|
+
beforeEach(async function (this: Context) {
|
|
21
|
+
recorder = new Recorder(this.currentTest);
|
|
22
|
+
await recorder.start(recorderOptions);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
afterEach(async function () {
|
|
26
|
+
await recorder.stop();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it("sample test", async function () {
|
|
30
|
+
console.log("Hi, I'm a test!");
|
|
31
|
+
});
|
|
32
|
+
});
|