@autorest/typescript 6.0.0-beta.9 → 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} +35 -3
- 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 +17 -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.js +4 -4
- 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 +300 -46
- package/dist/src/generators/clientFileGenerator.js.map +1 -1
- package/dist/src/generators/indexGenerator.d.ts.map +1 -1
- package/dist/src/generators/indexGenerator.js +106 -14
- 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 +80 -81
- 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 +85 -96
- 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 +2 -2
- 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} +35 -3
- 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 +255 -67
- 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 +50 -23
- 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 +46 -18
- 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/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 -44
- 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 +35 -23
- 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 +63 -16
- 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 +2 -2
- package/dist/src/restLevelClient/getPropertySignature.d.ts.map +1 -1
- package/dist/src/restLevelClient/getPropertySignature.js +10 -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 +8 -2
- package/dist/src/restLevelClient/schemaHelpers.d.ts.map +1 -1
- package/dist/src/restLevelClient/schemaHelpers.js +27 -12
- 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.map +1 -1
- package/dist/src/transforms/mapperTransforms.js +29 -26
- 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 -46
- 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 +141 -62
- 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.js +1 -1
- package/dist/src/utils/valueHelpers.js.map +1 -1
- package/package.json +58 -39
- package/src/autorestSession.ts +25 -18
- package/src/conflictResolver.ts +61 -0
- package/src/generators/clientFileGenerator.ts +397 -36
- package/src/generators/indexGenerator.ts +118 -12
- package/src/generators/mappersGenerator.ts +108 -8
- package/src/generators/modelsGenerator.ts +98 -97
- package/src/generators/operationGenerator.ts +54 -93
- 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 +2 -2
- 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 +292 -71
- package/src/generators/static/readmeFileGenerator.ts +79 -42
- package/src/generators/static/rlcREADME.md.hbs +71 -0
- package/src/generators/static/rollupConfigFileGenerator.ts +13 -71
- package/src/generators/static/tsConfigFileGenerator.ts +54 -19
- 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/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 -56
- package/src/restLevelClient/generatePollingHelper.ts +19 -0
- package/src/restLevelClient/generateResponseTypes.ts +36 -17
- package/src/restLevelClient/generateRestLevel.ts +63 -8
- package/src/restLevelClient/generateSchemaTypes.ts +43 -8
- package/src/restLevelClient/generateTopLevelIndexFile.ts +37 -0
- package/src/restLevelClient/getPropertySignature.ts +12 -4
- 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 +30 -8
- package/src/transforms/mapperTransforms.ts +11 -5
- 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 +40 -53
- package/src/utils/autorestOptions.ts +198 -88
- 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/CHANGELOG.md +0 -56
- 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/src/generators/clientContextFileGenerator.ts +0 -405
|
@@ -4,7 +4,12 @@
|
|
|
4
4
|
import { Project } from "ts-morph";
|
|
5
5
|
import { ClientDetails } from "../../models/clientDetails";
|
|
6
6
|
import { PackageDetails } from "../../models/packageDetails";
|
|
7
|
-
import { getAutorestOptions } from "../../autorestSession";
|
|
7
|
+
import { getAutorestOptions, getSession } from "../../autorestSession";
|
|
8
|
+
import { hasPagingOperations } from "../../utils/extractPaginationDetails";
|
|
9
|
+
import { hasPollingOperations } from "../../restLevelClient/helpers/hasPollingOperations";
|
|
10
|
+
import { NameType, normalizeName } from "../../utils/nameUtils";
|
|
11
|
+
import { TestCodeModel } from "@autorest/testmodeler/dist/src/core/model";
|
|
12
|
+
import { getSecurityInfoFromModel } from "../../utils/schemaHelpers";
|
|
8
13
|
|
|
9
14
|
export function generatePackageJson(
|
|
10
15
|
project: Project,
|
|
@@ -46,65 +51,225 @@ export function generatePackageJson(
|
|
|
46
51
|
* or High Level Client
|
|
47
52
|
*/
|
|
48
53
|
function restLevelPackage(packageDetails: PackageDetails) {
|
|
49
|
-
const {
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
const {
|
|
55
|
+
azureArm,
|
|
56
|
+
generateTest,
|
|
57
|
+
generateSample,
|
|
58
|
+
azureOutputDirectory,
|
|
59
|
+
azureSdkForJs
|
|
60
|
+
} = getAutorestOptions();
|
|
61
|
+
const { model } = getSession();
|
|
62
|
+
const clientPackageName = packageDetails.name;
|
|
63
|
+
let apiRefUrlQueryParameter: string = "";
|
|
64
|
+
if (packageDetails.version.includes("beta")) {
|
|
65
|
+
apiRefUrlQueryParameter = "?view=azure-node-preview";
|
|
66
|
+
}
|
|
67
|
+
const description = packageDetails.description;
|
|
68
|
+
const hasPaging = hasPagingOperations(model);
|
|
69
|
+
const hasLRO = hasPollingOperations(model);
|
|
70
|
+
const packageInfo: Record<string, any> = {
|
|
52
71
|
name: `${packageDetails.name}`,
|
|
53
|
-
"sdk-type":
|
|
72
|
+
"sdk-type": "client",
|
|
73
|
+
author: "Microsoft Corporation",
|
|
54
74
|
version: `${packageDetails.version}`,
|
|
55
75
|
description: `${packageDetails.description}`,
|
|
56
|
-
|
|
76
|
+
keywords: ["node", "azure", "cloud", "typescript", "browser", "isomorphic"],
|
|
77
|
+
license: "MIT",
|
|
78
|
+
main: "dist/index.js",
|
|
79
|
+
module: generateTest ? "./dist-esm/src/index.js" : "./dist-esm/index.js",
|
|
57
80
|
types: `./types/${packageDetails.nameWithoutScope}.d.ts`,
|
|
81
|
+
homepage: `https://github.com/Azure/azure-sdk-for-js/tree/main/${azureOutputDirectory}/README.md`,
|
|
82
|
+
repository: "github:Azure/azure-sdk-for-js",
|
|
83
|
+
bugs: {
|
|
84
|
+
url: "https://github.com/Azure/azure-sdk-for-js/issues"
|
|
85
|
+
},
|
|
86
|
+
files: [
|
|
87
|
+
"dist/",
|
|
88
|
+
generateTest ? "dist-esm/src/" : "dist-esm/",
|
|
89
|
+
`types/${packageDetails.nameWithoutScope}.d.ts`,
|
|
90
|
+
"README.md",
|
|
91
|
+
"LICENSE",
|
|
92
|
+
"review/*"
|
|
93
|
+
],
|
|
94
|
+
"//metadata": {
|
|
95
|
+
constantPaths: [
|
|
96
|
+
{
|
|
97
|
+
path: "swagger/README.md",
|
|
98
|
+
prefix: "package-version"
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
engines: {
|
|
103
|
+
node: ">=12.0.0"
|
|
104
|
+
},
|
|
58
105
|
scripts: {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
lint: "echo skipped",
|
|
64
|
-
audit: "echo skipped",
|
|
65
|
-
clean: "echo skipped",
|
|
66
|
-
"build:node": "echo skipped",
|
|
67
|
-
"build:browser": "echo skipped",
|
|
68
|
-
"build:test": "echo skipped",
|
|
106
|
+
audit:
|
|
107
|
+
"node ../../../common/scripts/rush-audit.js && rimraf node_modules package-lock.json && npm i --package-lock-only 2>&1 && npm audit",
|
|
108
|
+
"build:browser": "echo skipped.",
|
|
109
|
+
"build:node": "echo skipped.",
|
|
69
110
|
"build:samples": "echo skipped.",
|
|
70
|
-
"
|
|
111
|
+
"build:test": "echo skipped.",
|
|
112
|
+
"build:debug": "echo skipped.",
|
|
113
|
+
"check-format":
|
|
114
|
+
'prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore "src/**/*.ts" "test/**/*.ts" "samples-dev/**/*.ts" "*.{js,json}"',
|
|
115
|
+
clean:
|
|
116
|
+
"rimraf dist dist-browser dist-esm test-dist temp types *.tgz *.log",
|
|
71
117
|
"execute:samples": "echo skipped",
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
"unit-test:browser": "echo skipped",
|
|
118
|
+
"extract-api":
|
|
119
|
+
"rimraf review && mkdirp ./review && api-extractor run --local",
|
|
120
|
+
format:
|
|
121
|
+
'prettier --write --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore "src/**/*.ts" "test/**/*.ts" "samples-dev/**/*.ts" "*.{js,json}"',
|
|
122
|
+
"generate:client":
|
|
123
|
+
"autorest --typescript swagger/README.md && npm run format",
|
|
79
124
|
"integration-test:browser": "echo skipped",
|
|
80
125
|
"integration-test:node": "echo skipped",
|
|
81
126
|
"integration-test": "echo skipped",
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
127
|
+
"lint:fix":
|
|
128
|
+
"eslint package.json api-extractor.json src test --ext .ts --fix --fix-type [problem,suggestion]",
|
|
129
|
+
lint: "eslint package.json api-extractor.json src test --ext .ts",
|
|
130
|
+
pack: "npm pack 2>&1",
|
|
131
|
+
"test:browser": "echo skipped",
|
|
132
|
+
"test:node": "echo skipped",
|
|
133
|
+
test: 'echo "Error: no test specified" && exit 1',
|
|
134
|
+
"unit-test": "echo skipped",
|
|
135
|
+
"unit-test:node": "echo skipped",
|
|
136
|
+
"unit-test:browser": "echo skipped"
|
|
89
137
|
},
|
|
138
|
+
sideEffects: false,
|
|
139
|
+
autoPublish: false,
|
|
90
140
|
dependencies: {
|
|
91
|
-
"@azure-rest/core-client": "1.0.0-beta.4",
|
|
92
141
|
"@azure/core-auth": "^1.3.0",
|
|
93
|
-
"@azure/core-
|
|
142
|
+
"@azure-rest/core-client": "1.0.0-beta.10",
|
|
143
|
+
"@azure/core-rest-pipeline": "^1.8.0",
|
|
144
|
+
"@azure/logger": "^1.0.0",
|
|
145
|
+
tslib: "^2.2.0",
|
|
146
|
+
...(hasPaging && {
|
|
147
|
+
"@azure/core-paging": "^1.2.0"
|
|
148
|
+
}),
|
|
149
|
+
...(hasLRO && {
|
|
150
|
+
"@azure/core-lro": "^2.2.0"
|
|
151
|
+
})
|
|
94
152
|
},
|
|
95
153
|
devDependencies: {
|
|
154
|
+
"@microsoft/api-extractor": "7.18.11",
|
|
96
155
|
autorest: "latest",
|
|
97
|
-
"@
|
|
98
|
-
"@types/node": "^14.14.22",
|
|
156
|
+
"@types/node": "^12.0.0",
|
|
99
157
|
dotenv: "^8.2.0",
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
158
|
+
eslint: "^7.15.0",
|
|
159
|
+
mkdirp: "^1.0.4",
|
|
160
|
+
prettier: "2.2.1",
|
|
161
|
+
rimraf: "^3.0.0",
|
|
162
|
+
"source-map-support": "^0.5.9",
|
|
163
|
+
typescript: "~4.2.0"
|
|
164
|
+
}
|
|
107
165
|
};
|
|
166
|
+
|
|
167
|
+
if (azureSdkForJs) {
|
|
168
|
+
packageInfo.scripts["build"] =
|
|
169
|
+
"npm run clean && tsc -p . && dev-tool run bundle && mkdirp ./review && api-extractor run --local";
|
|
170
|
+
packageInfo.scripts["build:debug"] =
|
|
171
|
+
"tsc -p . && dev-tool run bundle && api-extractor run --local";
|
|
172
|
+
packageInfo.scripts["build:browser"] = "tsc -p . && dev-tool run bundle";
|
|
173
|
+
packageInfo.scripts["build:node"] = "tsc -p . && dev-tool run bundle";
|
|
174
|
+
packageInfo.devDependencies["@azure/dev-tool"] = "^1.0.0";
|
|
175
|
+
packageInfo.devDependencies["@azure/eslint-plugin-azure-sdk"] = "^3.0.0";
|
|
176
|
+
} else {
|
|
177
|
+
packageInfo.scripts["build"] =
|
|
178
|
+
"npm run clean && tsc && rollup -c 2>&1 && npm run minify && mkdirp ./review && npm run extract-api";
|
|
179
|
+
packageInfo.scripts[
|
|
180
|
+
"minify"
|
|
181
|
+
] = `uglifyjs -c -m --comments --source-map "content='./dist/index.js.map'" -o ./dist/index.min.js ./dist/index.js`;
|
|
182
|
+
packageInfo.devDependencies["@rollup/plugin-commonjs"] = "^21.0.1";
|
|
183
|
+
packageInfo.devDependencies["@rollup/plugin-json"] = "^4.1.0";
|
|
184
|
+
packageInfo.devDependencies["@rollup/plugin-multi-entry"] = "^4.1.0";
|
|
185
|
+
packageInfo.devDependencies["@rollup/plugin-node-resolve"] = "^13.1.3";
|
|
186
|
+
packageInfo.devDependencies["rollup"] = "^2.66.1";
|
|
187
|
+
packageInfo.devDependencies["rollup-plugin-sourcemaps"] = "^0.6.3";
|
|
188
|
+
packageInfo.devDependencies["uglify-js"] = "^3.4.9";
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if (generateTest) {
|
|
192
|
+
packageInfo.module = `./dist-esm/src/index.js`;
|
|
193
|
+
packageInfo.devDependencies["@azure-tools/test-credential"] = "^1.0.0";
|
|
194
|
+
packageInfo.devDependencies["@azure/identity"] = "^2.0.1";
|
|
195
|
+
packageInfo.devDependencies["@azure-tools/test-recorder"] = "^2.0.0";
|
|
196
|
+
packageInfo.devDependencies["mocha"] = "^7.1.1";
|
|
197
|
+
packageInfo.devDependencies["mocha-junit-reporter"] = "^1.18.0";
|
|
198
|
+
packageInfo.devDependencies["cross-env"] = "^7.0.2";
|
|
199
|
+
packageInfo.devDependencies["@types/chai"] = "^4.2.8";
|
|
200
|
+
packageInfo.devDependencies["chai"] = "^4.2.0";
|
|
201
|
+
packageInfo.devDependencies["cross-env"] = "^7.0.2";
|
|
202
|
+
packageInfo.devDependencies["karma-chrome-launcher"] = "^3.0.0";
|
|
203
|
+
packageInfo.devDependencies["karma-coverage"] = "^2.0.0";
|
|
204
|
+
packageInfo.devDependencies["karma-edge-launcher"] = "^0.4.2";
|
|
205
|
+
packageInfo.devDependencies["karma-env-preprocessor"] = "^0.1.1";
|
|
206
|
+
packageInfo.devDependencies["karma-firefox-launcher"] = "^1.1.0";
|
|
207
|
+
packageInfo.devDependencies["karma-ie-launcher"] = "^1.0.0";
|
|
208
|
+
packageInfo.devDependencies["karma-junit-reporter"] = "^2.0.1";
|
|
209
|
+
packageInfo.devDependencies["karma-mocha-reporter"] = "^2.2.5";
|
|
210
|
+
packageInfo.devDependencies["karma-mocha"] = "^2.0.1";
|
|
211
|
+
packageInfo.devDependencies["karma-source-map-support"] = "~1.4.0";
|
|
212
|
+
packageInfo.devDependencies["karma-sourcemap-loader"] = "^0.3.8";
|
|
213
|
+
packageInfo.devDependencies["karma"] = "^6.2.0";
|
|
214
|
+
packageInfo.devDependencies["nyc"] = "^14.0.0";
|
|
215
|
+
packageInfo.devDependencies["source-map-support"] = "^0.5.9";
|
|
216
|
+
packageInfo.scripts["test"] =
|
|
217
|
+
"npm run clean && npm run build:test && npm run unit-test";
|
|
218
|
+
packageInfo.scripts["test:node"] =
|
|
219
|
+
"npm run clean && npm run build:test && npm run unit-test:node";
|
|
220
|
+
packageInfo.scripts["test:browser"] =
|
|
221
|
+
"npm run clean && npm run build:test && npm run unit-test:browser";
|
|
222
|
+
packageInfo.scripts["build:browser"] =
|
|
223
|
+
"tsc -p . && cross-env ONLY_BROWSER=true rollup -c 2>&1";
|
|
224
|
+
packageInfo.scripts["build:node"] =
|
|
225
|
+
"tsc -p . && cross-env ONLY_NODE=true rollup -c 2>&1";
|
|
226
|
+
packageInfo.scripts["build:test"] = "tsc -p . && rollup -c 2>&1";
|
|
227
|
+
packageInfo.scripts["unit-test"] =
|
|
228
|
+
"npm run unit-test:node && npm run unit-test:browser";
|
|
229
|
+
packageInfo.scripts["unit-test:node"] =
|
|
230
|
+
'mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 1200000 --full-trace "test/{,!(browser)/**/}*.spec.ts"';
|
|
231
|
+
packageInfo.scripts["unit-test:browser"] = "karma start --single-run";
|
|
232
|
+
packageInfo.scripts["integration-test:browser"] =
|
|
233
|
+
"karma start --single-run";
|
|
234
|
+
packageInfo.scripts["integration-test:node"] =
|
|
235
|
+
'nyc mocha -r esm --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 5000000 --full-trace "dist-esm/test/{,!(browser)/**/}*.spec.js"';
|
|
236
|
+
packageInfo.scripts["integration-test"] =
|
|
237
|
+
"npm run integration-test:node && npm run integration-test:browser";
|
|
238
|
+
if (azureSdkForJs) {
|
|
239
|
+
packageInfo.scripts["build:test"] = "tsc -p . && dev-tool run bundle";
|
|
240
|
+
packageInfo.scripts["integration-test:browser"] =
|
|
241
|
+
"dev-tool run test:browser";
|
|
242
|
+
packageInfo.scripts["unit-test:browser"] = "dev-tool run test:browser";
|
|
243
|
+
packageInfo.scripts["unit-test:node"] =
|
|
244
|
+
"dev-tool run test:node-ts-input -- --timeout 1200000 --exclude 'test/**/browser/*.spec.ts' 'test/**/*.spec.ts'";
|
|
245
|
+
packageInfo.scripts["integration-test:node"] =
|
|
246
|
+
"dev-tool run test:node-js-input -- --timeout 5000000 'dist-esm/test/**/*.spec.js'";
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
packageInfo["browser"] = {
|
|
250
|
+
"./dist-esm/test/public/utils/env.js":
|
|
251
|
+
"./dist-esm/test/public/utils/env.browser.js"
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
if (
|
|
256
|
+
generateSample &&
|
|
257
|
+
(model as TestCodeModel)?.testModel?.mockTest?.exampleGroups &&
|
|
258
|
+
(model as TestCodeModel).testModel!.mockTest!.exampleGroups.length > 0
|
|
259
|
+
) {
|
|
260
|
+
packageInfo["//sampleConfiguration"] = {
|
|
261
|
+
productName: description,
|
|
262
|
+
productSlugs: ["azure"],
|
|
263
|
+
disableDocsMs: true,
|
|
264
|
+
apiRefLink: `https://docs.microsoft.com/javascript/api/${clientPackageName}${apiRefUrlQueryParameter}`
|
|
265
|
+
};
|
|
266
|
+
if (azureSdkForJs) {
|
|
267
|
+
packageInfo.scripts["execute:samples"] =
|
|
268
|
+
"dev-tool samples run samples-dev";
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
return packageInfo;
|
|
108
273
|
}
|
|
109
274
|
|
|
110
275
|
/**
|
|
@@ -121,16 +286,25 @@ function regularAutorestPackage(
|
|
|
121
286
|
tracingInfo,
|
|
122
287
|
disablePagingAsyncIterators,
|
|
123
288
|
azureArm,
|
|
124
|
-
|
|
125
|
-
|
|
289
|
+
azureOutputDirectory,
|
|
290
|
+
generateTest,
|
|
291
|
+
generateSample,
|
|
292
|
+
coreHttpCompatMode,
|
|
293
|
+
azureSdkForJs
|
|
126
294
|
} = getAutorestOptions();
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
);
|
|
295
|
+
const { model } = getSession();
|
|
296
|
+
const { addCredentials } = getSecurityInfoFromModel(model.security);
|
|
297
|
+
const hasLro = hasPollingOperations(model);
|
|
130
298
|
const hasAsyncIterators =
|
|
131
299
|
!disablePagingAsyncIterators && clientDetails.options.hasPaging;
|
|
300
|
+
const clientPackageName = packageDetails.name;
|
|
301
|
+
let apiRefUrlQueryParameter: string = "";
|
|
302
|
+
if (packageDetails.version.includes("beta")) {
|
|
303
|
+
apiRefUrlQueryParameter = "?view=azure-node-preview";
|
|
304
|
+
}
|
|
305
|
+
const description = packageDetails.description;
|
|
132
306
|
|
|
133
|
-
|
|
307
|
+
const packageInfo: Record<string, any> = {
|
|
134
308
|
name: packageDetails.name,
|
|
135
309
|
"sdk-type": `${azureArm ? "mgmt" : "client"}`,
|
|
136
310
|
author: "Microsoft Corporation",
|
|
@@ -144,18 +318,18 @@ function regularAutorestPackage(
|
|
|
144
318
|
dependencies: {
|
|
145
319
|
...(hasLro && { "@azure/core-lro": "^2.2.0" }),
|
|
146
320
|
...(hasLro && { "@azure/abort-controller": "^1.0.0" }),
|
|
147
|
-
...(hasAsyncIterators && { "@azure/core-paging": "^1.
|
|
148
|
-
...(!useCoreV2 && { "@azure/core-http": "^
|
|
149
|
-
...(useCoreV2 && { "@azure/core-client": "^1.
|
|
321
|
+
...(hasAsyncIterators && { "@azure/core-paging": "^1.2.0" }),
|
|
322
|
+
...(!useCoreV2 && { "@azure/core-http": "^2.0.0" }),
|
|
323
|
+
...(useCoreV2 && { "@azure/core-client": "^1.5.0" }),
|
|
150
324
|
...(useCoreV2 && addCredentials && { "@azure/core-auth": "^1.3.0" }),
|
|
325
|
+
...(useCoreV2 &&
|
|
326
|
+
coreHttpCompatMode && { "@azure/core-http-compat": "^1.2.0" }),
|
|
151
327
|
...(useCoreV2 && {
|
|
152
|
-
"@azure/core-rest-pipeline": "^1.
|
|
328
|
+
"@azure/core-rest-pipeline": "^1.8.0"
|
|
153
329
|
}),
|
|
154
330
|
...(tracingInfo && {
|
|
155
|
-
"@azure/core-tracing": "1.0.0
|
|
156
|
-
"@opentelemetry/api": "^0.10.2"
|
|
331
|
+
"@azure/core-tracing": "^1.0.0"
|
|
157
332
|
}),
|
|
158
|
-
|
|
159
333
|
tslib: "^2.2.0"
|
|
160
334
|
},
|
|
161
335
|
keywords: ["node", "azure", "typescript", "browser", "isomorphic"],
|
|
@@ -164,17 +338,17 @@ function regularAutorestPackage(
|
|
|
164
338
|
module: `./dist-esm/index.js`,
|
|
165
339
|
types: `./types/${packageDetails.nameWithoutScope}.d.ts`,
|
|
166
340
|
devDependencies: {
|
|
167
|
-
"@microsoft/api-extractor": "7.
|
|
168
|
-
"@rollup/plugin-commonjs": "
|
|
169
|
-
"@rollup/plugin-json": "^4.
|
|
170
|
-
"@rollup/plugin-multi-entry": "^
|
|
171
|
-
"@rollup/plugin-node-resolve": "^
|
|
341
|
+
"@microsoft/api-extractor": "7.18.11",
|
|
342
|
+
"@rollup/plugin-commonjs": "^21.0.1",
|
|
343
|
+
"@rollup/plugin-json": "^4.1.0",
|
|
344
|
+
"@rollup/plugin-multi-entry": "^4.1.0",
|
|
345
|
+
"@rollup/plugin-node-resolve": "^13.1.3",
|
|
172
346
|
mkdirp: "^1.0.4",
|
|
173
|
-
rollup: "^
|
|
174
|
-
"rollup-plugin-sourcemaps": "^0.
|
|
175
|
-
"rollup-plugin-node-resolve": "^3.4.0",
|
|
347
|
+
rollup: "^2.66.1",
|
|
348
|
+
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
176
349
|
typescript: "~4.2.0",
|
|
177
|
-
"uglify-js": "^3.4.9"
|
|
350
|
+
"uglify-js": "^3.4.9",
|
|
351
|
+
rimraf: "^3.0.0"
|
|
178
352
|
},
|
|
179
353
|
// TODO: Calculate the SDK path for the package
|
|
180
354
|
homepage: `https://github.com/Azure/azure-sdk-for-js/tree/main/${azureOutputDirectory}`,
|
|
@@ -200,18 +374,20 @@ function regularAutorestPackage(
|
|
|
200
374
|
"rollup.config.js",
|
|
201
375
|
"tsconfig.json",
|
|
202
376
|
"review/*",
|
|
203
|
-
"CHANGELOG.md"
|
|
377
|
+
"CHANGELOG.md",
|
|
378
|
+
"types/*"
|
|
204
379
|
],
|
|
205
380
|
scripts: {
|
|
206
381
|
build:
|
|
207
|
-
"tsc && rollup -c 2>&1 && npm run minify && mkdirp ./review && npm run extract-api",
|
|
382
|
+
"npm run clean && tsc && rollup -c 2>&1 && npm run minify && mkdirp ./review && npm run extract-api",
|
|
208
383
|
minify: `uglifyjs -c -m --comments --source-map "content='./dist/index.js.map'" -o ./dist/index.min.js ./dist/index.js`,
|
|
209
384
|
prepack: "npm run build",
|
|
210
385
|
pack: "npm pack 2>&1",
|
|
211
386
|
"extract-api": "api-extractor run --local",
|
|
212
387
|
lint: "echo skipped",
|
|
213
388
|
audit: "echo skipped",
|
|
214
|
-
clean:
|
|
389
|
+
clean:
|
|
390
|
+
"rimraf dist dist-browser dist-esm test-dist temp types *.tgz *.log",
|
|
215
391
|
"build:node": "echo skipped",
|
|
216
392
|
"build:browser": "echo skipped",
|
|
217
393
|
"build:test": "echo skipped",
|
|
@@ -220,18 +396,63 @@ function regularAutorestPackage(
|
|
|
220
396
|
"execute:samples": "echo skipped",
|
|
221
397
|
format: "echo skipped",
|
|
222
398
|
test: "echo skipped",
|
|
223
|
-
prebuild: "echo skipped",
|
|
224
399
|
"test:node": "echo skipped",
|
|
225
400
|
"test:browser": "echo skipped",
|
|
226
401
|
"unit-test": "echo skipped",
|
|
227
402
|
"unit-test:node": "echo skipped",
|
|
228
403
|
"unit-test:browser": "echo skipped",
|
|
229
|
-
"integration-test:browser": "echo skipped",
|
|
230
|
-
"integration-test:node": "echo skipped",
|
|
231
404
|
"integration-test": "echo skipped",
|
|
232
|
-
|
|
405
|
+
"integration-test:node": "echo skipped",
|
|
406
|
+
"integration-test:browser": "echo skipped"
|
|
233
407
|
},
|
|
234
408
|
sideEffects: false,
|
|
409
|
+
"//metadata": {
|
|
410
|
+
constantPaths: [
|
|
411
|
+
{
|
|
412
|
+
path: `src/${normalizeName(clientDetails.name, NameType.File)}.ts`,
|
|
413
|
+
prefix: "packageDetails"
|
|
414
|
+
}
|
|
415
|
+
]
|
|
416
|
+
},
|
|
235
417
|
autoPublish: true
|
|
236
418
|
};
|
|
419
|
+
if (generateTest) {
|
|
420
|
+
packageInfo.module = `./dist-esm/src/index.js`;
|
|
421
|
+
packageInfo.devDependencies["@azure/identity"] = "^2.0.1";
|
|
422
|
+
packageInfo.devDependencies["@azure-tools/test-recorder"] = "^2.0.0";
|
|
423
|
+
packageInfo.devDependencies["@azure-tools/test-credential"] = "^1.0.0";
|
|
424
|
+
packageInfo.devDependencies["mocha"] = "^7.1.1";
|
|
425
|
+
packageInfo.devDependencies["@types/chai"] = "^4.2.8";
|
|
426
|
+
packageInfo.devDependencies["chai"] = "^4.2.0";
|
|
427
|
+
packageInfo.devDependencies["cross-env"] = "^7.0.2";
|
|
428
|
+
packageInfo.scripts["test"] = "npm run integration-test";
|
|
429
|
+
packageInfo.scripts["unit-test"] =
|
|
430
|
+
"npm run unit-test:node && npm run unit-test:browser";
|
|
431
|
+
packageInfo.scripts["unit-test:node"] =
|
|
432
|
+
"cross-env TEST_MODE=playback npm run integration-test:node";
|
|
433
|
+
packageInfo.scripts["integration-test"] =
|
|
434
|
+
"npm run integration-test:node && npm run integration-test:browser";
|
|
435
|
+
|
|
436
|
+
if (azureSdkForJs) {
|
|
437
|
+
packageInfo.devDependencies["@azure/dev-tool"] = "^1.0.0";
|
|
438
|
+
packageInfo.scripts["integration-test:node"] =
|
|
439
|
+
"dev-tool run test:node-ts-input -- --timeout 1200000 'test/*.ts'";
|
|
440
|
+
} else {
|
|
441
|
+
packageInfo.scripts["integration-test:node"] =
|
|
442
|
+
"mocha -r esm --require ts-node/register --timeout 1200000 --full-trace test/*.ts --reporter ../../../common/tools/mocha-multi-reporter.js";
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
if (
|
|
446
|
+
generateSample &&
|
|
447
|
+
clientDetails.samples &&
|
|
448
|
+
clientDetails.samples.length > 0
|
|
449
|
+
) {
|
|
450
|
+
packageInfo["//sampleConfiguration"] = {
|
|
451
|
+
productName: description,
|
|
452
|
+
productSlugs: ["azure"],
|
|
453
|
+
disableDocsMs: true,
|
|
454
|
+
apiRefLink: `https://docs.microsoft.com/javascript/api/${clientPackageName}${apiRefUrlQueryParameter}`
|
|
455
|
+
};
|
|
456
|
+
}
|
|
457
|
+
return packageInfo;
|
|
237
458
|
}
|
|
@@ -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.
|
|
@@ -49,23 +51,38 @@ interface Metadata {
|
|
|
49
51
|
identityPackageURL?: string;
|
|
50
52
|
/** Indicates if the package is a test/releasable package. */
|
|
51
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;
|
|
52
63
|
}
|
|
53
64
|
|
|
54
65
|
/**
|
|
55
66
|
* Returns meta data information about the service, the package, and the client.
|
|
56
|
-
* @param
|
|
57
|
-
* @param packageDetails - the package details
|
|
67
|
+
* @param codeModel - include the client details
|
|
58
68
|
* @returns inferred metadata about the service, the package, and the client
|
|
59
69
|
*/
|
|
60
|
-
function createMetadata(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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";
|
|
69
86
|
const repoURL = azureHuh
|
|
70
87
|
? "https://github.com/Azure/azure-sdk-for-js"
|
|
71
88
|
: undefined;
|
|
@@ -77,10 +94,17 @@ function createMetadata(
|
|
|
77
94
|
const names = relativePackageSourcePath?.split("/").slice(1);
|
|
78
95
|
const packageParentDirectoryName = names?.[0];
|
|
79
96
|
const packageDirectoryName = names?.[1];
|
|
80
|
-
|
|
81
|
-
const clientPackageName = packageDetails
|
|
82
|
-
const serviceTitle =
|
|
83
|
-
|
|
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 =
|
|
84
108
|
/**
|
|
85
109
|
* It is a required convention in Azure swaggers for their titles to end with
|
|
86
110
|
* "Client".
|
|
@@ -90,7 +114,8 @@ function createMetadata(
|
|
|
90
114
|
serviceTitle.match(/(.*)Client/)?.[1] ??
|
|
91
115
|
clientClassName.match(/(.*)Client/)?.[1] ??
|
|
92
116
|
serviceTitle.match(/(.*) Service/)?.[1] ??
|
|
93
|
-
|
|
117
|
+
simpleServiceName;
|
|
118
|
+
|
|
94
119
|
const serviceName = azureHuh
|
|
95
120
|
? simpleServiceName.startsWith("Azure")
|
|
96
121
|
? simpleServiceName
|
|
@@ -98,6 +123,12 @@ function createMetadata(
|
|
|
98
123
|
: simpleServiceName;
|
|
99
124
|
const identityPackageURL =
|
|
100
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
|
+
|
|
101
132
|
return {
|
|
102
133
|
serviceName: serviceName,
|
|
103
134
|
clientPackageName: clientPackageName,
|
|
@@ -115,45 +146,36 @@ function createMetadata(
|
|
|
115
146
|
`https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-js%2Fsdk%2F${packageParentDirectoryName}%2F${packageDirectoryName}%2FREADME.png`
|
|
116
147
|
: undefined,
|
|
117
148
|
clientDescriptiveName: `${serviceName} client`,
|
|
118
|
-
description:
|
|
149
|
+
description: codeModel.info?.description,
|
|
119
150
|
apiRefURL: azureHuh
|
|
120
|
-
? `https://docs.microsoft.com/javascript/api/${clientPackageName}`
|
|
151
|
+
? `https://docs.microsoft.com/javascript/api/${clientPackageName}${apiRefUrlQueryParameter}`
|
|
121
152
|
: undefined,
|
|
122
153
|
packageNPMURL: `https://www.npmjs.com/package/${clientPackageName}`,
|
|
123
154
|
contributingGuideURL: repoURL && `${repoURL}/blob/main/CONTRIBUTING.md`,
|
|
124
155
|
projectName: azureHuh ? "Microsoft Azure SDK for JavaScript" : undefined,
|
|
125
156
|
addCredentials,
|
|
126
157
|
identityPackageURL,
|
|
127
|
-
isReleasablePackage: !isTestPackage
|
|
158
|
+
isReleasablePackage: !isTestPackage,
|
|
159
|
+
azureArm: azureArm,
|
|
160
|
+
serviceDocURL: productDocLink,
|
|
161
|
+
dependencyDescription: dependencyInfo?.description,
|
|
162
|
+
dependencyLink: dependencyInfo?.link,
|
|
163
|
+
hasMultiClients: multiClient && batch && batch.length > 1
|
|
128
164
|
};
|
|
129
165
|
}
|
|
130
166
|
|
|
131
|
-
export function generateReadmeFile(
|
|
132
|
-
|
|
133
|
-
project: Project
|
|
134
|
-
) {
|
|
135
|
-
const {
|
|
136
|
-
packageDetails,
|
|
137
|
-
azureOutputDirectory,
|
|
138
|
-
generateMetadata,
|
|
139
|
-
addCredentials,
|
|
140
|
-
azureArm,
|
|
141
|
-
isTestPackage
|
|
142
|
-
} = getAutorestOptions();
|
|
167
|
+
export function generateReadmeFile(codeModel: CodeModel, project: Project) {
|
|
168
|
+
const { generateMetadata, restLevelClient } = getAutorestOptions();
|
|
143
169
|
|
|
144
170
|
if (!generateMetadata) {
|
|
145
171
|
return;
|
|
146
172
|
}
|
|
147
173
|
|
|
148
|
-
const metadata = createMetadata(
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
azureArm,
|
|
154
|
-
isTestPackage
|
|
155
|
-
);
|
|
156
|
-
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), {
|
|
157
179
|
encoding: "utf-8"
|
|
158
180
|
});
|
|
159
181
|
const readmeFileContents = hbs.compile(file, { noEscape: true });
|
|
@@ -161,3 +183,18 @@ export function generateReadmeFile(
|
|
|
161
183
|
overwrite: true
|
|
162
184
|
});
|
|
163
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
|
+
}
|