@azure/arm-neonpostgres 1.0.0-alpha.20250722.1 → 1.0.0-alpha.20250730.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/dist/browser/api/branches/operations.js +48 -19
- package/dist/browser/api/branches/operations.js.map +1 -1
- package/dist/browser/api/computes/operations.js +48 -19
- package/dist/browser/api/computes/operations.js.map +1 -1
- package/dist/browser/api/endpoints/operations.js +48 -19
- package/dist/browser/api/endpoints/operations.js.map +1 -1
- package/dist/browser/api/neonDatabases/operations.js +48 -19
- package/dist/browser/api/neonDatabases/operations.js.map +1 -1
- package/dist/browser/api/neonRoles/operations.js +48 -19
- package/dist/browser/api/neonRoles/operations.js.map +1 -1
- package/dist/browser/api/operations/operations.js +8 -3
- package/dist/browser/api/operations/operations.js.map +1 -1
- package/dist/browser/api/organizations/operations.js +69 -28
- package/dist/browser/api/organizations/operations.js.map +1 -1
- package/dist/browser/api/postgresContext.js +12 -9
- package/dist/browser/api/postgresContext.js.map +1 -1
- package/dist/browser/api/projects/operations.js +58 -22
- package/dist/browser/api/projects/operations.js.map +1 -1
- package/dist/browser/classic/branches/index.js +3 -1
- package/dist/browser/classic/branches/index.js.map +1 -1
- package/dist/browser/classic/computes/index.js +3 -1
- package/dist/browser/classic/computes/index.js.map +1 -1
- package/dist/browser/classic/endpoints/index.js +3 -1
- package/dist/browser/classic/endpoints/index.js.map +1 -1
- package/dist/browser/classic/neonDatabases/index.js +3 -1
- package/dist/browser/classic/neonDatabases/index.js.map +1 -1
- package/dist/browser/classic/neonRoles/index.js +3 -1
- package/dist/browser/classic/neonRoles/index.js.map +1 -1
- package/dist/browser/classic/operations/index.js +3 -1
- package/dist/browser/classic/operations/index.js.map +1 -1
- package/dist/browser/classic/organizations/index.js +3 -1
- package/dist/browser/classic/organizations/index.js.map +1 -1
- package/dist/browser/classic/projects/index.js +3 -1
- package/dist/browser/classic/projects/index.js.map +1 -1
- package/dist/browser/postgresClient.js +24 -3
- package/dist/browser/postgresClient.js.map +1 -1
- package/dist/browser/restorePollerHelpers.js +11 -13
- package/dist/browser/restorePollerHelpers.js.map +1 -1
- package/dist/browser/static-helpers/pagingHelpers.js +31 -50
- package/dist/browser/static-helpers/pagingHelpers.js.map +1 -1
- package/dist/browser/static-helpers/pollingHelpers.js +14 -11
- package/dist/browser/static-helpers/pollingHelpers.js.map +1 -1
- package/dist/browser/static-helpers/urlTemplate.js +2 -2
- package/dist/browser/static-helpers/urlTemplate.js.map +1 -1
- package/dist/commonjs/api/branches/operations.js +48 -19
- package/dist/commonjs/api/branches/operations.js.map +1 -1
- package/dist/commonjs/api/computes/operations.js +48 -19
- package/dist/commonjs/api/computes/operations.js.map +1 -1
- package/dist/commonjs/api/endpoints/operations.js +48 -19
- package/dist/commonjs/api/endpoints/operations.js.map +1 -1
- package/dist/commonjs/api/neonDatabases/operations.js +48 -19
- package/dist/commonjs/api/neonDatabases/operations.js.map +1 -1
- package/dist/commonjs/api/neonRoles/operations.js +48 -19
- package/dist/commonjs/api/neonRoles/operations.js.map +1 -1
- package/dist/commonjs/api/operations/operations.js +8 -3
- package/dist/commonjs/api/operations/operations.js.map +1 -1
- package/dist/commonjs/api/organizations/operations.js +69 -28
- package/dist/commonjs/api/organizations/operations.js.map +1 -1
- package/dist/commonjs/api/postgresContext.js +12 -9
- package/dist/commonjs/api/postgresContext.js.map +1 -1
- package/dist/commonjs/api/projects/operations.js +58 -22
- package/dist/commonjs/api/projects/operations.js.map +1 -1
- package/dist/commonjs/classic/branches/index.js +3 -1
- package/dist/commonjs/classic/branches/index.js.map +1 -1
- package/dist/commonjs/classic/computes/index.js +3 -1
- package/dist/commonjs/classic/computes/index.js.map +1 -1
- package/dist/commonjs/classic/endpoints/index.js +3 -1
- package/dist/commonjs/classic/endpoints/index.js.map +1 -1
- package/dist/commonjs/classic/neonDatabases/index.js +3 -1
- package/dist/commonjs/classic/neonDatabases/index.js.map +1 -1
- package/dist/commonjs/classic/neonRoles/index.js +3 -1
- package/dist/commonjs/classic/neonRoles/index.js.map +1 -1
- package/dist/commonjs/classic/operations/index.js +3 -1
- package/dist/commonjs/classic/operations/index.js.map +1 -1
- package/dist/commonjs/classic/organizations/index.js +3 -1
- package/dist/commonjs/classic/organizations/index.js.map +1 -1
- package/dist/commonjs/classic/projects/index.js +3 -1
- package/dist/commonjs/classic/projects/index.js.map +1 -1
- package/dist/commonjs/postgresClient.js +24 -3
- package/dist/commonjs/postgresClient.js.map +1 -1
- package/dist/commonjs/restorePollerHelpers.js +11 -13
- package/dist/commonjs/restorePollerHelpers.js.map +1 -1
- package/dist/commonjs/static-helpers/pagingHelpers.js +31 -50
- package/dist/commonjs/static-helpers/pagingHelpers.js.map +1 -1
- package/dist/commonjs/static-helpers/pollingHelpers.js +14 -11
- package/dist/commonjs/static-helpers/pollingHelpers.js.map +1 -1
- package/dist/commonjs/static-helpers/urlTemplate.js +2 -2
- package/dist/commonjs/static-helpers/urlTemplate.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/esm/api/branches/operations.js +48 -19
- package/dist/esm/api/branches/operations.js.map +1 -1
- package/dist/esm/api/computes/operations.js +48 -19
- package/dist/esm/api/computes/operations.js.map +1 -1
- package/dist/esm/api/endpoints/operations.js +48 -19
- package/dist/esm/api/endpoints/operations.js.map +1 -1
- package/dist/esm/api/neonDatabases/operations.js +48 -19
- package/dist/esm/api/neonDatabases/operations.js.map +1 -1
- package/dist/esm/api/neonRoles/operations.js +48 -19
- package/dist/esm/api/neonRoles/operations.js.map +1 -1
- package/dist/esm/api/operations/operations.js +8 -3
- package/dist/esm/api/operations/operations.js.map +1 -1
- package/dist/esm/api/organizations/operations.js +69 -28
- package/dist/esm/api/organizations/operations.js.map +1 -1
- package/dist/esm/api/postgresContext.js +12 -9
- package/dist/esm/api/postgresContext.js.map +1 -1
- package/dist/esm/api/projects/operations.js +58 -22
- package/dist/esm/api/projects/operations.js.map +1 -1
- package/dist/esm/classic/branches/index.js +3 -1
- package/dist/esm/classic/branches/index.js.map +1 -1
- package/dist/esm/classic/computes/index.js +3 -1
- package/dist/esm/classic/computes/index.js.map +1 -1
- package/dist/esm/classic/endpoints/index.js +3 -1
- package/dist/esm/classic/endpoints/index.js.map +1 -1
- package/dist/esm/classic/neonDatabases/index.js +3 -1
- package/dist/esm/classic/neonDatabases/index.js.map +1 -1
- package/dist/esm/classic/neonRoles/index.js +3 -1
- package/dist/esm/classic/neonRoles/index.js.map +1 -1
- package/dist/esm/classic/operations/index.js +3 -1
- package/dist/esm/classic/operations/index.js.map +1 -1
- package/dist/esm/classic/organizations/index.js +3 -1
- package/dist/esm/classic/organizations/index.js.map +1 -1
- package/dist/esm/classic/projects/index.js +3 -1
- package/dist/esm/classic/projects/index.js.map +1 -1
- package/dist/esm/postgresClient.js +24 -3
- package/dist/esm/postgresClient.js.map +1 -1
- package/dist/esm/restorePollerHelpers.js +11 -13
- package/dist/esm/restorePollerHelpers.js.map +1 -1
- package/dist/esm/static-helpers/pagingHelpers.js +31 -50
- package/dist/esm/static-helpers/pagingHelpers.js.map +1 -1
- package/dist/esm/static-helpers/pollingHelpers.js +14 -11
- package/dist/esm/static-helpers/pollingHelpers.js.map +1 -1
- package/dist/esm/static-helpers/urlTemplate.js +2 -2
- package/dist/esm/static-helpers/urlTemplate.js.map +1 -1
- package/dist/react-native/api/branches/operations.js +48 -19
- package/dist/react-native/api/branches/operations.js.map +1 -1
- package/dist/react-native/api/computes/operations.js +48 -19
- package/dist/react-native/api/computes/operations.js.map +1 -1
- package/dist/react-native/api/endpoints/operations.js +48 -19
- package/dist/react-native/api/endpoints/operations.js.map +1 -1
- package/dist/react-native/api/neonDatabases/operations.js +48 -19
- package/dist/react-native/api/neonDatabases/operations.js.map +1 -1
- package/dist/react-native/api/neonRoles/operations.js +48 -19
- package/dist/react-native/api/neonRoles/operations.js.map +1 -1
- package/dist/react-native/api/operations/operations.js +8 -3
- package/dist/react-native/api/operations/operations.js.map +1 -1
- package/dist/react-native/api/organizations/operations.js +69 -28
- package/dist/react-native/api/organizations/operations.js.map +1 -1
- package/dist/react-native/api/postgresContext.js +12 -9
- package/dist/react-native/api/postgresContext.js.map +1 -1
- package/dist/react-native/api/projects/operations.js +58 -22
- package/dist/react-native/api/projects/operations.js.map +1 -1
- package/dist/react-native/classic/branches/index.js +3 -1
- package/dist/react-native/classic/branches/index.js.map +1 -1
- package/dist/react-native/classic/computes/index.js +3 -1
- package/dist/react-native/classic/computes/index.js.map +1 -1
- package/dist/react-native/classic/endpoints/index.js +3 -1
- package/dist/react-native/classic/endpoints/index.js.map +1 -1
- package/dist/react-native/classic/neonDatabases/index.js +3 -1
- package/dist/react-native/classic/neonDatabases/index.js.map +1 -1
- package/dist/react-native/classic/neonRoles/index.js +3 -1
- package/dist/react-native/classic/neonRoles/index.js.map +1 -1
- package/dist/react-native/classic/operations/index.js +3 -1
- package/dist/react-native/classic/operations/index.js.map +1 -1
- package/dist/react-native/classic/organizations/index.js +3 -1
- package/dist/react-native/classic/organizations/index.js.map +1 -1
- package/dist/react-native/classic/projects/index.js +3 -1
- package/dist/react-native/classic/projects/index.js.map +1 -1
- package/dist/react-native/postgresClient.js +24 -3
- package/dist/react-native/postgresClient.js.map +1 -1
- package/dist/react-native/restorePollerHelpers.js +11 -13
- package/dist/react-native/restorePollerHelpers.js.map +1 -1
- package/dist/react-native/static-helpers/pagingHelpers.js +31 -50
- package/dist/react-native/static-helpers/pagingHelpers.js.map +1 -1
- package/dist/react-native/static-helpers/pollingHelpers.js +14 -11
- package/dist/react-native/static-helpers/pollingHelpers.js.map +1 -1
- package/dist/react-native/static-helpers/urlTemplate.js +2 -2
- package/dist/react-native/static-helpers/urlTemplate.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/classic/organizations/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAgHlC,kEAIC;AAtGD,yEAQ+C;AAqD/C,SAAS,iBAAiB,CAAC,OAAwB;IACjD,OAAO;QACL,mBAAmB,EAAE,CACnB,iBAAyB,EACzB,OAAwD,EACxD,EAAE,CAAC,IAAA,mCAAmB,EAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC;QAC7D,kBAAkB,EAAE,CAAC,OAAuD,EAAE,EAAE,CAC9E,IAAA,kCAAkB,EAAC,OAAO,EAAE,OAAO,CAAC;QACtC,mBAAmB,EAAE,CACnB,iBAAyB,EACzB,OAAwD,EACxD,EAAE,CAAC,IAAA,mCAAmB,EAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC;QAC7D,MAAM,EAAE,CACN,iBAAyB,EACzB,gBAAwB,EACxB,OAA2C,EAC3C,EAAE,CAAC,IAAA,uBAAO,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC;QACnE,MAAM,EAAE,CACN,iBAAyB,EACzB,gBAAwB,EACxB,UAAgC,EAChC,OAA2C,EAC3C,EAAE,CAAC,IAAA,sBAAM,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC;QAC9E,cAAc,EAAE,CACd,iBAAyB,EACzB,gBAAwB,EACxB,QAA8B,EAC9B,OAAmD,EACnD,EAAE,CAAC,IAAA,8BAAc,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;QACpF,GAAG,EAAE,CACH,iBAAyB,EACzB,gBAAwB,EACxB,OAAwC,EACxC,EAAE,CAAC,IAAA,mBAAG,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAgB,2BAA2B,CAAC,OAAwB;IAClE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/classic/organizations/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAgHlC,kEAIC;AAtGD,yEAQ+C;AAqD/C,SAAS,iBAAiB,CAAC,OAAwB;IACjD,OAAO;QACL,mBAAmB,EAAE,CACnB,iBAAyB,EACzB,OAAwD,EACxD,EAAE,CAAC,IAAA,mCAAmB,EAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC;QAC7D,kBAAkB,EAAE,CAAC,OAAuD,EAAE,EAAE,CAC9E,IAAA,kCAAkB,EAAC,OAAO,EAAE,OAAO,CAAC;QACtC,mBAAmB,EAAE,CACnB,iBAAyB,EACzB,OAAwD,EACxD,EAAE,CAAC,IAAA,mCAAmB,EAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC;QAC7D,MAAM,EAAE,CACN,iBAAyB,EACzB,gBAAwB,EACxB,OAA2C,EAC3C,EAAE,CAAC,IAAA,uBAAO,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC;QACnE,MAAM,EAAE,CACN,iBAAyB,EACzB,gBAAwB,EACxB,UAAgC,EAChC,OAA2C,EAC3C,EAAE,CAAC,IAAA,sBAAM,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC;QAC9E,cAAc,EAAE,CACd,iBAAyB,EACzB,gBAAwB,EACxB,QAA8B,EAC9B,OAAmD,EACnD,EAAE,CAAC,IAAA,8BAAc,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC;QACpF,GAAG,EAAE,CACH,iBAAyB,EACzB,gBAAwB,EACxB,OAAwC,EACxC,EAAE,CAAC,IAAA,mBAAG,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAgB,2BAA2B,CAAC,OAAwB;IAClE,OAAO;QACL,GAAG,iBAAiB,CAAC,OAAO,CAAC;KAC9B,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { PostgresContext } from \"../../api/postgresContext.js\";\nimport { OrganizationResource } from \"../../models/models.js\";\nimport { PgVersionsResult } from \"../../models/models/models.js\";\nimport {\n OrganizationsGetPostgresVersionsOptionalParams,\n OrganizationsListBySubscriptionOptionalParams,\n OrganizationsListByResourceGroupOptionalParams,\n OrganizationsDeleteOptionalParams,\n OrganizationsUpdateOptionalParams,\n OrganizationsCreateOrUpdateOptionalParams,\n OrganizationsGetOptionalParams,\n} from \"../../api/organizations/options.js\";\nimport {\n getPostgresVersions,\n listBySubscription,\n listByResourceGroup,\n $delete,\n update,\n createOrUpdate,\n get,\n} from \"../../api/organizations/operations.js\";\nimport { PagedAsyncIterableIterator } from \"../../static-helpers/pagingHelpers.js\";\nimport { PollerLike, OperationState } from \"@azure/core-lro\";\n\n/** Interface representing a Organizations operations. */\nexport interface OrganizationsOperations {\n /** Action to retrieve the PostgreSQL versions. */\n getPostgresVersions: (\n resourceGroupName: string,\n options?: OrganizationsGetPostgresVersionsOptionalParams,\n ) => Promise<PgVersionsResult>;\n /** List OrganizationResource resources by subscription ID */\n listBySubscription: (\n options?: OrganizationsListBySubscriptionOptionalParams,\n ) => PagedAsyncIterableIterator<OrganizationResource>;\n /** List OrganizationResource resources by resource group */\n listByResourceGroup: (\n resourceGroupName: string,\n options?: OrganizationsListByResourceGroupOptionalParams,\n ) => PagedAsyncIterableIterator<OrganizationResource>;\n /** Delete a OrganizationResource */\n /**\n * @fixme delete is a reserved word that cannot be used as an operation name.\n * Please add @clientName(\"clientName\") or @clientName(\"<JS-Specific-Name>\", \"javascript\")\n * to the operation to override the generated name.\n */\n delete: (\n resourceGroupName: string,\n organizationName: string,\n options?: OrganizationsDeleteOptionalParams,\n ) => PollerLike<OperationState<void>, void>;\n /** Update a OrganizationResource */\n update: (\n resourceGroupName: string,\n organizationName: string,\n properties: OrganizationResource,\n options?: OrganizationsUpdateOptionalParams,\n ) => PollerLike<OperationState<OrganizationResource>, OrganizationResource>;\n /** Create a OrganizationResource */\n createOrUpdate: (\n resourceGroupName: string,\n organizationName: string,\n resource: OrganizationResource,\n options?: OrganizationsCreateOrUpdateOptionalParams,\n ) => PollerLike<OperationState<OrganizationResource>, OrganizationResource>;\n /** Get a OrganizationResource */\n get: (\n resourceGroupName: string,\n organizationName: string,\n options?: OrganizationsGetOptionalParams,\n ) => Promise<OrganizationResource>;\n}\n\nfunction _getOrganizations(context: PostgresContext) {\n return {\n getPostgresVersions: (\n resourceGroupName: string,\n options?: OrganizationsGetPostgresVersionsOptionalParams,\n ) => getPostgresVersions(context, resourceGroupName, options),\n listBySubscription: (options?: OrganizationsListBySubscriptionOptionalParams) =>\n listBySubscription(context, options),\n listByResourceGroup: (\n resourceGroupName: string,\n options?: OrganizationsListByResourceGroupOptionalParams,\n ) => listByResourceGroup(context, resourceGroupName, options),\n delete: (\n resourceGroupName: string,\n organizationName: string,\n options?: OrganizationsDeleteOptionalParams,\n ) => $delete(context, resourceGroupName, organizationName, options),\n update: (\n resourceGroupName: string,\n organizationName: string,\n properties: OrganizationResource,\n options?: OrganizationsUpdateOptionalParams,\n ) => update(context, resourceGroupName, organizationName, properties, options),\n createOrUpdate: (\n resourceGroupName: string,\n organizationName: string,\n resource: OrganizationResource,\n options?: OrganizationsCreateOrUpdateOptionalParams,\n ) => createOrUpdate(context, resourceGroupName, organizationName, resource, options),\n get: (\n resourceGroupName: string,\n organizationName: string,\n options?: OrganizationsGetOptionalParams,\n ) => get(context, resourceGroupName, organizationName, options),\n };\n}\n\nexport function _getOrganizationsOperations(context: PostgresContext): OrganizationsOperations {\n return {\n ..._getOrganizations(context),\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/classic/projects/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAiIlC,wDAIC;AAxHD,oEAO0C;AAyD1C,SAAS,YAAY,CAAC,OAAwB;IAC5C,OAAO;QACL,gBAAgB,EAAE,CAChB,iBAAyB,EACzB,gBAAwB,EACxB,WAAmB,EACnB,uBAAgD,EAChD,OAAgD,EAChD,EAAE,CACF,IAAA,gCAAgB,EACd,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,OAAO,CACR;QACH,IAAI,EAAE,CACJ,iBAAyB,EACzB,gBAAwB,EACxB,OAAoC,EACpC,EAAE,CAAC,IAAA,oBAAI,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC;QAChE,MAAM,EAAE,CACN,iBAAyB,EACzB,gBAAwB,EACxB,WAAmB,EACnB,OAAsC,EACtC,EAAE,CAAC,IAAA,uBAAO,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,OAAO,CAAC;QAChF,MAAM,EAAE,CACN,iBAAyB,EACzB,gBAAwB,EACxB,WAAmB,EACnB,UAAmB,EACnB,OAAsC,EACtC,EAAE,CAAC,IAAA,sBAAM,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC;QAC3F,cAAc,EAAE,CACd,iBAAyB,EACzB,gBAAwB,EACxB,WAAmB,EACnB,QAAiB,EACjB,OAA8C,EAC9C,EAAE,CACF,IAAA,8BAAc,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC;QAC9F,GAAG,EAAE,CACH,iBAAyB,EACzB,gBAAwB,EACxB,WAAmB,EACnB,OAAmC,EACnC,EAAE,CAAC,IAAA,mBAAG,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,OAAO,CAAC;KAC7E,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAwB;IAC7D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/classic/projects/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAiIlC,wDAIC;AAxHD,oEAO0C;AAyD1C,SAAS,YAAY,CAAC,OAAwB;IAC5C,OAAO;QACL,gBAAgB,EAAE,CAChB,iBAAyB,EACzB,gBAAwB,EACxB,WAAmB,EACnB,uBAAgD,EAChD,OAAgD,EAChD,EAAE,CACF,IAAA,gCAAgB,EACd,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,OAAO,CACR;QACH,IAAI,EAAE,CACJ,iBAAyB,EACzB,gBAAwB,EACxB,OAAoC,EACpC,EAAE,CAAC,IAAA,oBAAI,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC;QAChE,MAAM,EAAE,CACN,iBAAyB,EACzB,gBAAwB,EACxB,WAAmB,EACnB,OAAsC,EACtC,EAAE,CAAC,IAAA,uBAAO,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,OAAO,CAAC;QAChF,MAAM,EAAE,CACN,iBAAyB,EACzB,gBAAwB,EACxB,WAAmB,EACnB,UAAmB,EACnB,OAAsC,EACtC,EAAE,CAAC,IAAA,sBAAM,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC;QAC3F,cAAc,EAAE,CACd,iBAAyB,EACzB,gBAAwB,EACxB,WAAmB,EACnB,QAAiB,EACjB,OAA8C,EAC9C,EAAE,CACF,IAAA,8BAAc,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC;QAC9F,GAAG,EAAE,CACH,iBAAyB,EACzB,gBAAwB,EACxB,WAAmB,EACnB,OAAmC,EACnC,EAAE,CAAC,IAAA,mBAAG,EAAC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,OAAO,CAAC;KAC7E,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAwB;IAC7D,OAAO;QACL,GAAG,YAAY,CAAC,OAAO,CAAC;KACzB,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { PostgresContext } from \"../../api/postgresContext.js\";\nimport { Project } from \"../../models/models.js\";\nimport { ConnectionUriProperties } from \"../../models/models/models.js\";\nimport {\n ProjectsGetConnectionUriOptionalParams,\n ProjectsListOptionalParams,\n ProjectsDeleteOptionalParams,\n ProjectsUpdateOptionalParams,\n ProjectsCreateOrUpdateOptionalParams,\n ProjectsGetOptionalParams,\n} from \"../../api/projects/options.js\";\nimport {\n getConnectionUri,\n list,\n $delete,\n update,\n createOrUpdate,\n get,\n} from \"../../api/projects/operations.js\";\nimport { PagedAsyncIterableIterator } from \"../../static-helpers/pagingHelpers.js\";\nimport { PollerLike, OperationState } from \"@azure/core-lro\";\n\n/** Interface representing a Projects operations. */\nexport interface ProjectsOperations {\n /** Action to retrieve the connection URI for the Neon Database. */\n getConnectionUri: (\n resourceGroupName: string,\n organizationName: string,\n projectName: string,\n connectionUriParameters: ConnectionUriProperties,\n options?: ProjectsGetConnectionUriOptionalParams,\n ) => Promise<ConnectionUriProperties>;\n /** List Project resources by OrganizationResource */\n list: (\n resourceGroupName: string,\n organizationName: string,\n options?: ProjectsListOptionalParams,\n ) => PagedAsyncIterableIterator<Project>;\n /** Delete a Project */\n /**\n * @fixme delete is a reserved word that cannot be used as an operation name.\n * Please add @clientName(\"clientName\") or @clientName(\"<JS-Specific-Name>\", \"javascript\")\n * to the operation to override the generated name.\n */\n delete: (\n resourceGroupName: string,\n organizationName: string,\n projectName: string,\n options?: ProjectsDeleteOptionalParams,\n ) => Promise<void>;\n /** Update a Project */\n update: (\n resourceGroupName: string,\n organizationName: string,\n projectName: string,\n properties: Project,\n options?: ProjectsUpdateOptionalParams,\n ) => PollerLike<OperationState<Project>, Project>;\n /** Create a Project */\n createOrUpdate: (\n resourceGroupName: string,\n organizationName: string,\n projectName: string,\n resource: Project,\n options?: ProjectsCreateOrUpdateOptionalParams,\n ) => PollerLike<OperationState<Project>, Project>;\n /** Get a Project */\n get: (\n resourceGroupName: string,\n organizationName: string,\n projectName: string,\n options?: ProjectsGetOptionalParams,\n ) => Promise<Project>;\n}\n\nfunction _getProjects(context: PostgresContext) {\n return {\n getConnectionUri: (\n resourceGroupName: string,\n organizationName: string,\n projectName: string,\n connectionUriParameters: ConnectionUriProperties,\n options?: ProjectsGetConnectionUriOptionalParams,\n ) =>\n getConnectionUri(\n context,\n resourceGroupName,\n organizationName,\n projectName,\n connectionUriParameters,\n options,\n ),\n list: (\n resourceGroupName: string,\n organizationName: string,\n options?: ProjectsListOptionalParams,\n ) => list(context, resourceGroupName, organizationName, options),\n delete: (\n resourceGroupName: string,\n organizationName: string,\n projectName: string,\n options?: ProjectsDeleteOptionalParams,\n ) => $delete(context, resourceGroupName, organizationName, projectName, options),\n update: (\n resourceGroupName: string,\n organizationName: string,\n projectName: string,\n properties: Project,\n options?: ProjectsUpdateOptionalParams,\n ) => update(context, resourceGroupName, organizationName, projectName, properties, options),\n createOrUpdate: (\n resourceGroupName: string,\n organizationName: string,\n projectName: string,\n resource: Project,\n options?: ProjectsCreateOrUpdateOptionalParams,\n ) =>\n createOrUpdate(context, resourceGroupName, organizationName, projectName, resource, options),\n get: (\n resourceGroupName: string,\n organizationName: string,\n projectName: string,\n options?: ProjectsGetOptionalParams,\n ) => get(context, resourceGroupName, organizationName, projectName, options),\n };\n}\n\nexport function _getProjectsOperations(context: PostgresContext): ProjectsOperations {\n return {\n ..._getProjects(context),\n };\n}\n"]}
|
|
@@ -13,13 +13,18 @@ const index_js_7 = require("./classic/projects/index.js");
|
|
|
13
13
|
const index_js_8 = require("./classic/organizations/index.js");
|
|
14
14
|
const index_js_9 = require("./classic/operations/index.js");
|
|
15
15
|
class PostgresClient {
|
|
16
|
+
_client;
|
|
17
|
+
/** The pipeline used by this client to make requests */
|
|
18
|
+
pipeline;
|
|
16
19
|
constructor(credential, subscriptionId, options = {}) {
|
|
17
|
-
|
|
18
|
-
const prefixFromOptions = (_a = options === null || options === void 0 ? void 0 : options.userAgentOptions) === null || _a === void 0 ? void 0 : _a.userAgentPrefix;
|
|
20
|
+
const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;
|
|
19
21
|
const userAgentPrefix = prefixFromOptions
|
|
20
22
|
? `${prefixFromOptions} azsdk-js-client`
|
|
21
23
|
: `azsdk-js-client`;
|
|
22
|
-
this._client = (0, index_js_1.createPostgres)(credential, subscriptionId,
|
|
24
|
+
this._client = (0, index_js_1.createPostgres)(credential, subscriptionId, {
|
|
25
|
+
...options,
|
|
26
|
+
userAgentOptions: { userAgentPrefix },
|
|
27
|
+
});
|
|
23
28
|
this.pipeline = this._client.pipeline;
|
|
24
29
|
this.endpoints = (0, index_js_2._getEndpointsOperations)(this._client);
|
|
25
30
|
this.neonRoles = (0, index_js_3._getNeonRolesOperations)(this._client);
|
|
@@ -30,6 +35,22 @@ class PostgresClient {
|
|
|
30
35
|
this.organizations = (0, index_js_8._getOrganizationsOperations)(this._client);
|
|
31
36
|
this.operations = (0, index_js_9._getOperationsOperations)(this._client);
|
|
32
37
|
}
|
|
38
|
+
/** The operation groups for endpoints */
|
|
39
|
+
endpoints;
|
|
40
|
+
/** The operation groups for neonRoles */
|
|
41
|
+
neonRoles;
|
|
42
|
+
/** The operation groups for neonDatabases */
|
|
43
|
+
neonDatabases;
|
|
44
|
+
/** The operation groups for computes */
|
|
45
|
+
computes;
|
|
46
|
+
/** The operation groups for branches */
|
|
47
|
+
branches;
|
|
48
|
+
/** The operation groups for projects */
|
|
49
|
+
projects;
|
|
50
|
+
/** The operation groups for organizations */
|
|
51
|
+
organizations;
|
|
52
|
+
/** The operation groups for operations */
|
|
53
|
+
operations;
|
|
33
54
|
}
|
|
34
55
|
exports.PostgresClient = PostgresClient;
|
|
35
56
|
//# sourceMappingURL=postgresClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresClient.js","sourceRoot":"","sources":["../../src/postgresClient.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,6CAA+F;AAC/F,2DAA4F;AAC5F,2DAA4F;AAC5F,+DAG0C;AAC1C,0DAAyF;AACzF,0DAAyF;AACzF,0DAAyF;AACzF,+DAG0C;AAC1C,4DAA+F;AAM/F,MAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"postgresClient.js","sourceRoot":"","sources":["../../src/postgresClient.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,6CAA+F;AAC/F,2DAA4F;AAC5F,2DAA4F;AAC5F,+DAG0C;AAC1C,0DAAyF;AACzF,0DAAyF;AACzF,0DAAyF;AACzF,+DAG0C;AAC1C,4DAA+F;AAM/F,MAAa,cAAc;IACjB,OAAO,CAAkB;IACjC,wDAAwD;IACxC,QAAQ,CAAW;IAEnC,YACE,UAA2B,EAC3B,cAAsB,EACtB,UAAwC,EAAE;QAE1C,MAAM,iBAAiB,GAAG,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;QACrE,MAAM,eAAe,GAAG,iBAAiB;YACvC,CAAC,CAAC,GAAG,iBAAiB,kBAAkB;YACxC,CAAC,CAAC,iBAAiB,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAA,yBAAc,EAAC,UAAU,EAAE,cAAc,EAAE;YACxD,GAAG,OAAO;YACV,gBAAgB,EAAE,EAAE,eAAe,EAAE;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAA,kCAAuB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,IAAA,kCAAuB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,IAAA,sCAA2B,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAA,iCAAsB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAA,iCAAsB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAA,iCAAsB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAA,sCAA2B,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,GAAG,IAAA,mCAAwB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,yCAAyC;IACzB,SAAS,CAAsB;IAC/C,yCAAyC;IACzB,SAAS,CAAsB;IAC/C,6CAA6C;IAC7B,aAAa,CAA0B;IACvD,wCAAwC;IACxB,QAAQ,CAAqB;IAC7C,wCAAwC;IACxB,QAAQ,CAAqB;IAC7C,wCAAwC;IACxB,QAAQ,CAAqB;IAC7C,6CAA6C;IAC7B,aAAa,CAA0B;IACvD,0CAA0C;IAC1B,UAAU,CAAuB;CAClD;AA7CD,wCA6CC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createPostgres, PostgresContext, PostgresClientOptionalParams } from \"./api/index.js\";\nimport { EndpointsOperations, _getEndpointsOperations } from \"./classic/endpoints/index.js\";\nimport { NeonRolesOperations, _getNeonRolesOperations } from \"./classic/neonRoles/index.js\";\nimport {\n NeonDatabasesOperations,\n _getNeonDatabasesOperations,\n} from \"./classic/neonDatabases/index.js\";\nimport { ComputesOperations, _getComputesOperations } from \"./classic/computes/index.js\";\nimport { BranchesOperations, _getBranchesOperations } from \"./classic/branches/index.js\";\nimport { ProjectsOperations, _getProjectsOperations } from \"./classic/projects/index.js\";\nimport {\n OrganizationsOperations,\n _getOrganizationsOperations,\n} from \"./classic/organizations/index.js\";\nimport { OperationsOperations, _getOperationsOperations } from \"./classic/operations/index.js\";\nimport { Pipeline } from \"@azure/core-rest-pipeline\";\nimport { TokenCredential } from \"@azure/core-auth\";\n\nexport { PostgresClientOptionalParams } from \"./api/postgresContext.js\";\n\nexport class PostgresClient {\n private _client: PostgresContext;\n /** The pipeline used by this client to make requests */\n public readonly pipeline: Pipeline;\n\n constructor(\n credential: TokenCredential,\n subscriptionId: string,\n options: PostgresClientOptionalParams = {},\n ) {\n const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;\n const userAgentPrefix = prefixFromOptions\n ? `${prefixFromOptions} azsdk-js-client`\n : `azsdk-js-client`;\n this._client = createPostgres(credential, subscriptionId, {\n ...options,\n userAgentOptions: { userAgentPrefix },\n });\n this.pipeline = this._client.pipeline;\n this.endpoints = _getEndpointsOperations(this._client);\n this.neonRoles = _getNeonRolesOperations(this._client);\n this.neonDatabases = _getNeonDatabasesOperations(this._client);\n this.computes = _getComputesOperations(this._client);\n this.branches = _getBranchesOperations(this._client);\n this.projects = _getProjectsOperations(this._client);\n this.organizations = _getOrganizationsOperations(this._client);\n this.operations = _getOperationsOperations(this._client);\n }\n\n /** The operation groups for endpoints */\n public readonly endpoints: EndpointsOperations;\n /** The operation groups for neonRoles */\n public readonly neonRoles: NeonRolesOperations;\n /** The operation groups for neonDatabases */\n public readonly neonDatabases: NeonDatabasesOperations;\n /** The operation groups for computes */\n public readonly computes: ComputesOperations;\n /** The operation groups for branches */\n public readonly branches: BranchesOperations;\n /** The operation groups for projects */\n public readonly projects: ProjectsOperations;\n /** The operation groups for organizations */\n public readonly organizations: OrganizationsOperations;\n /** The operation groups for operations */\n public readonly operations: OperationsOperations;\n}\n"]}
|
|
@@ -18,21 +18,20 @@ const core_lro_1 = require("@azure/core-lro");
|
|
|
18
18
|
* needs to be constructed after the original one is not in scope.
|
|
19
19
|
*/
|
|
20
20
|
function restorePoller(client, serializedState, sourceOperation, options) {
|
|
21
|
-
var _a, _b, _c;
|
|
22
21
|
const pollerConfig = (0, core_lro_1.deserializeState)(serializedState).config;
|
|
23
22
|
const { initialRequestUrl, requestMethod, metadata } = pollerConfig;
|
|
24
23
|
if (!initialRequestUrl || !requestMethod) {
|
|
25
|
-
throw new Error(`Invalid serialized state: ${serializedState} for sourceOperation ${sourceOperation
|
|
24
|
+
throw new Error(`Invalid serialized state: ${serializedState} for sourceOperation ${sourceOperation?.name}`);
|
|
26
25
|
}
|
|
27
|
-
const resourceLocationConfig = metadata
|
|
28
|
-
const { deserializer, expectedStatuses = [] } =
|
|
29
|
-
const deserializeHelper =
|
|
26
|
+
const resourceLocationConfig = metadata?.["resourceLocationConfig"];
|
|
27
|
+
const { deserializer, expectedStatuses = [] } = getDeserializationHelper(initialRequestUrl, requestMethod) ?? {};
|
|
28
|
+
const deserializeHelper = options?.processResponseBody ?? deserializer;
|
|
30
29
|
if (!deserializeHelper) {
|
|
31
|
-
throw new Error(`Please ensure the operation is in this client! We can't find its deserializeHelper for ${sourceOperation
|
|
30
|
+
throw new Error(`Please ensure the operation is in this client! We can't find its deserializeHelper for ${sourceOperation?.name}.`);
|
|
32
31
|
}
|
|
33
|
-
return (0, pollingHelpers_js_1.getLongRunningPoller)(
|
|
34
|
-
updateIntervalInMs: options
|
|
35
|
-
abortSignal: options
|
|
32
|
+
return (0, pollingHelpers_js_1.getLongRunningPoller)(client["_client"] ?? client, deserializeHelper, expectedStatuses, {
|
|
33
|
+
updateIntervalInMs: options?.updateIntervalInMs,
|
|
34
|
+
abortSignal: options?.abortSignal,
|
|
36
35
|
resourceLocationConfig,
|
|
37
36
|
restoreFrom: serializedState,
|
|
38
37
|
initialRequestUrl,
|
|
@@ -98,7 +97,6 @@ const deserializeMap = {
|
|
|
98
97
|
},
|
|
99
98
|
};
|
|
100
99
|
function getDeserializationHelper(urlStr, method) {
|
|
101
|
-
var _a, _b, _c, _d;
|
|
102
100
|
const path = new URL(urlStr).pathname;
|
|
103
101
|
const pathParts = path.split("/");
|
|
104
102
|
// Traverse list to match the longest candidate
|
|
@@ -118,13 +116,13 @@ function getDeserializationHelper(urlStr, method) {
|
|
|
118
116
|
// track if we have found a match to return the values found.
|
|
119
117
|
let found = true;
|
|
120
118
|
for (let i = candidateParts.length - 1, j = pathParts.length - 1; i >= 1 && j >= 1; i--, j--) {
|
|
121
|
-
if (
|
|
122
|
-
const start = candidateParts[i].indexOf("}") + 1, end =
|
|
119
|
+
if (candidateParts[i]?.startsWith("{") && candidateParts[i]?.indexOf("}") !== -1) {
|
|
120
|
+
const start = candidateParts[i].indexOf("}") + 1, end = candidateParts[i]?.length;
|
|
123
121
|
// If the current part of the candidate is a "template" part
|
|
124
122
|
// Try to use the suffix of pattern to match the path
|
|
125
123
|
// {guid} ==> $
|
|
126
124
|
// {guid}:export ==> :export$
|
|
127
|
-
const isMatched = new RegExp(`${
|
|
125
|
+
const isMatched = new RegExp(`${candidateParts[i]?.slice(start, end)}`).test(pathParts[j] || "");
|
|
128
126
|
if (!isMatched) {
|
|
129
127
|
found = false;
|
|
130
128
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restorePollerHelpers.js","sourceRoot":"","sources":["../../src/restorePollerHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { PostgresClient } from \"./postgresClient.js\";\nimport { _updateDeserialize, _createOrUpdateDeserialize } from \"./api/endpoints/operations.js\";\nimport {\n _updateDeserialize as _updateDeserializeNeonRoles,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeNeonRoles,\n} from \"./api/neonRoles/operations.js\";\nimport {\n _updateDeserialize as _updateDeserializeNeonDatabases,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeNeonDatabases,\n} from \"./api/neonDatabases/operations.js\";\nimport {\n _updateDeserialize as _updateDeserializeComputes,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeComputes,\n} from \"./api/computes/operations.js\";\nimport {\n _updateDeserialize as _updateDeserializeBranches,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeBranches,\n} from \"./api/branches/operations.js\";\nimport {\n _updateDeserialize as _updateDeserializeProjects,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeProjects,\n} from \"./api/projects/operations.js\";\nimport {\n _$deleteDeserialize,\n _updateDeserialize as _updateDeserializeOrganizations,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeOrganizations,\n} from \"./api/organizations/operations.js\";\nimport { getLongRunningPoller } from \"./static-helpers/pollingHelpers.js\";\nimport { OperationOptions, PathUncheckedResponse } from \"@azure-rest/core-client\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport {\n PollerLike,\n OperationState,\n deserializeState,\n ResourceLocationConfig,\n} from \"@azure/core-lro\";\n\nexport interface RestorePollerOptions<\n TResult,\n TResponse extends PathUncheckedResponse = PathUncheckedResponse,\n> extends OperationOptions {\n /** Delay to wait until next poll, in milliseconds. */\n updateIntervalInMs?: number;\n /**\n * The signal which can be used to abort requests.\n */\n abortSignal?: AbortSignalLike;\n /** Deserialization function for raw response body */\n processResponseBody?: (result: TResponse) => Promise<TResult>;\n}\n\n/**\n * Creates a poller from the serialized state of another poller. This can be\n * useful when you want to create pollers on a different host or a poller\n * needs to be constructed after the original one is not in scope.\n */\nexport function restorePoller<TResponse extends PathUncheckedResponse, TResult>(\n client: PostgresClient,\n serializedState: string,\n sourceOperation: (...args: any[]) => PollerLike<OperationState<TResult>, TResult>,\n options?: RestorePollerOptions<TResult>,\n): PollerLike<OperationState<TResult>, TResult> {\n const pollerConfig = deserializeState(serializedState).config;\n const { initialRequestUrl, requestMethod, metadata } = pollerConfig;\n if (!initialRequestUrl || !requestMethod) {\n throw new Error(\n `Invalid serialized state: ${serializedState} for sourceOperation ${sourceOperation?.name}`,\n );\n }\n const resourceLocationConfig = metadata?.[\"resourceLocationConfig\"] as\n | ResourceLocationConfig\n | undefined;\n const { deserializer, expectedStatuses = [] } =\n getDeserializationHelper(initialRequestUrl, requestMethod) ?? {};\n const deserializeHelper = options?.processResponseBody ?? deserializer;\n if (!deserializeHelper) {\n throw new Error(\n `Please ensure the operation is in this client! We can't find its deserializeHelper for ${sourceOperation?.name}.`,\n );\n }\n return getLongRunningPoller(\n (client as any)[\"_client\"] ?? client,\n deserializeHelper as (result: TResponse) => Promise<TResult>,\n expectedStatuses,\n {\n updateIntervalInMs: options?.updateIntervalInMs,\n abortSignal: options?.abortSignal,\n resourceLocationConfig,\n restoreFrom: serializedState,\n initialRequestUrl,\n },\n );\n}\n\ninterface DeserializationHelper {\n deserializer: Function;\n expectedStatuses: string[];\n}\n\nconst deserializeMap: Record<string, DeserializationHelper> = {\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/endpoints/{endpointName}\":\n { deserializer: _updateDeserialize, expectedStatuses: [\"200\", \"202\"] },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/endpoints/{endpointName}\":\n {\n deserializer: _createOrUpdateDeserialize,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/neonRoles/{neonRoleName}\":\n {\n deserializer: _updateDeserializeNeonRoles,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/neonRoles/{neonRoleName}\":\n {\n deserializer: _createOrUpdateDeserializeNeonRoles,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/neonDatabases/{neonDatabaseName}\":\n {\n deserializer: _updateDeserializeNeonDatabases,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/neonDatabases/{neonDatabaseName}\":\n {\n deserializer: _createOrUpdateDeserializeNeonDatabases,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/computes/{computeName}\":\n {\n deserializer: _updateDeserializeComputes,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/computes/{computeName}\":\n {\n deserializer: _createOrUpdateDeserializeComputes,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}\":\n {\n deserializer: _updateDeserializeBranches,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}\":\n {\n deserializer: _createOrUpdateDeserializeBranches,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}\":\n {\n deserializer: _updateDeserializeProjects,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}\":\n {\n deserializer: _createOrUpdateDeserializeProjects,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}\":\n {\n deserializer: _$deleteDeserialize,\n expectedStatuses: [\"202\", \"204\", \"200\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}\":\n {\n deserializer: _updateDeserializeOrganizations,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}\":\n {\n deserializer: _createOrUpdateDeserializeOrganizations,\n expectedStatuses: [\"200\", \"201\"],\n },\n};\n\nfunction getDeserializationHelper(\n urlStr: string,\n method: string,\n): DeserializationHelper | undefined {\n const path = new URL(urlStr).pathname;\n const pathParts = path.split(\"/\");\n\n // Traverse list to match the longest candidate\n // matchedLen: the length of candidate path\n // matchedValue: the matched status code array\n let matchedLen = -1,\n matchedValue: DeserializationHelper | undefined;\n\n // Iterate the responseMap to find a match\n for (const [key, value] of Object.entries(deserializeMap)) {\n // Extracting the path from the map key which is in format\n // GET /path/foo\n if (!key.startsWith(method)) {\n continue;\n }\n const candidatePath = getPathFromMapKey(key);\n // Get each part of the url path\n const candidateParts = candidatePath.split(\"/\");\n\n // track if we have found a match to return the values found.\n let found = true;\n for (let i = candidateParts.length - 1, j = pathParts.length - 1; i >= 1 && j >= 1; i--, j--) {\n if (candidateParts[i]?.startsWith(\"{\") && candidateParts[i]?.indexOf(\"}\") !== -1) {\n const start = candidateParts[i]!.indexOf(\"}\") + 1,\n end = candidateParts[i]?.length;\n // If the current part of the candidate is a \"template\" part\n // Try to use the suffix of pattern to match the path\n // {guid} ==> $\n // {guid}:export ==> :export$\n const isMatched = new RegExp(`${candidateParts[i]?.slice(start, end)}`).test(\n pathParts[j] || \"\",\n );\n\n if (!isMatched) {\n found = false;\n break;\n }\n continue;\n }\n\n // If the candidate part is not a template and\n // the parts don't match mark the candidate as not found\n // to move on with the next candidate path.\n if (candidateParts[i] !== pathParts[j]) {\n found = false;\n break;\n }\n }\n\n // We finished evaluating the current candidate parts\n // Update the matched value if and only if we found the longer pattern\n if (found && candidatePath.length > matchedLen) {\n matchedLen = candidatePath.length;\n matchedValue = value;\n }\n }\n\n return matchedValue;\n}\n\nfunction getPathFromMapKey(mapKey: string): string {\n const pathStart = mapKey.indexOf(\"/\");\n return mapKey.slice(pathStart);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"restorePollerHelpers.js","sourceRoot":"","sources":["../../src/restorePollerHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { PostgresClient } from \"./postgresClient.js\";\nimport { _updateDeserialize, _createOrUpdateDeserialize } from \"./api/endpoints/operations.js\";\nimport {\n _updateDeserialize as _updateDeserializeNeonRoles,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeNeonRoles,\n} from \"./api/neonRoles/operations.js\";\nimport {\n _updateDeserialize as _updateDeserializeNeonDatabases,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeNeonDatabases,\n} from \"./api/neonDatabases/operations.js\";\nimport {\n _updateDeserialize as _updateDeserializeComputes,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeComputes,\n} from \"./api/computes/operations.js\";\nimport {\n _updateDeserialize as _updateDeserializeBranches,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeBranches,\n} from \"./api/branches/operations.js\";\nimport {\n _updateDeserialize as _updateDeserializeProjects,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeProjects,\n} from \"./api/projects/operations.js\";\nimport {\n _$deleteDeserialize,\n _updateDeserialize as _updateDeserializeOrganizations,\n _createOrUpdateDeserialize as _createOrUpdateDeserializeOrganizations,\n} from \"./api/organizations/operations.js\";\nimport { getLongRunningPoller } from \"./static-helpers/pollingHelpers.js\";\nimport { OperationOptions, PathUncheckedResponse } from \"@azure-rest/core-client\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport {\n PollerLike,\n OperationState,\n deserializeState,\n ResourceLocationConfig,\n} from \"@azure/core-lro\";\n\nexport interface RestorePollerOptions<\n TResult,\n TResponse extends PathUncheckedResponse = PathUncheckedResponse,\n> extends OperationOptions {\n /** Delay to wait until next poll, in milliseconds. */\n updateIntervalInMs?: number;\n /**\n * The signal which can be used to abort requests.\n */\n abortSignal?: AbortSignalLike;\n /** Deserialization function for raw response body */\n processResponseBody?: (result: TResponse) => Promise<TResult>;\n}\n\n/**\n * Creates a poller from the serialized state of another poller. This can be\n * useful when you want to create pollers on a different host or a poller\n * needs to be constructed after the original one is not in scope.\n */\nexport function restorePoller<TResponse extends PathUncheckedResponse, TResult>(\n client: PostgresClient,\n serializedState: string,\n sourceOperation: (...args: any[]) => PollerLike<OperationState<TResult>, TResult>,\n options?: RestorePollerOptions<TResult>,\n): PollerLike<OperationState<TResult>, TResult> {\n const pollerConfig = deserializeState(serializedState).config;\n const { initialRequestUrl, requestMethod, metadata } = pollerConfig;\n if (!initialRequestUrl || !requestMethod) {\n throw new Error(\n `Invalid serialized state: ${serializedState} for sourceOperation ${sourceOperation?.name}`,\n );\n }\n const resourceLocationConfig = metadata?.[\"resourceLocationConfig\"] as\n | ResourceLocationConfig\n | undefined;\n const { deserializer, expectedStatuses = [] } =\n getDeserializationHelper(initialRequestUrl, requestMethod) ?? {};\n const deserializeHelper = options?.processResponseBody ?? deserializer;\n if (!deserializeHelper) {\n throw new Error(\n `Please ensure the operation is in this client! We can't find its deserializeHelper for ${sourceOperation?.name}.`,\n );\n }\n return getLongRunningPoller(\n (client as any)[\"_client\"] ?? client,\n deserializeHelper as (result: TResponse) => Promise<TResult>,\n expectedStatuses,\n {\n updateIntervalInMs: options?.updateIntervalInMs,\n abortSignal: options?.abortSignal,\n resourceLocationConfig,\n restoreFrom: serializedState,\n initialRequestUrl,\n },\n );\n}\n\ninterface DeserializationHelper {\n deserializer: Function;\n expectedStatuses: string[];\n}\n\nconst deserializeMap: Record<string, DeserializationHelper> = {\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/endpoints/{endpointName}\":\n { deserializer: _updateDeserialize, expectedStatuses: [\"200\", \"202\"] },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/endpoints/{endpointName}\":\n {\n deserializer: _createOrUpdateDeserialize,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/neonRoles/{neonRoleName}\":\n {\n deserializer: _updateDeserializeNeonRoles,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/neonRoles/{neonRoleName}\":\n {\n deserializer: _createOrUpdateDeserializeNeonRoles,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/neonDatabases/{neonDatabaseName}\":\n {\n deserializer: _updateDeserializeNeonDatabases,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/neonDatabases/{neonDatabaseName}\":\n {\n deserializer: _createOrUpdateDeserializeNeonDatabases,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/computes/{computeName}\":\n {\n deserializer: _updateDeserializeComputes,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}/computes/{computeName}\":\n {\n deserializer: _createOrUpdateDeserializeComputes,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}\":\n {\n deserializer: _updateDeserializeBranches,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}/branches/{branchName}\":\n {\n deserializer: _createOrUpdateDeserializeBranches,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}\":\n {\n deserializer: _updateDeserializeProjects,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}/projects/{projectName}\":\n {\n deserializer: _createOrUpdateDeserializeProjects,\n expectedStatuses: [\"200\", \"201\"],\n },\n \"DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}\":\n {\n deserializer: _$deleteDeserialize,\n expectedStatuses: [\"202\", \"204\", \"200\"],\n },\n \"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}\":\n {\n deserializer: _updateDeserializeOrganizations,\n expectedStatuses: [\"200\", \"202\"],\n },\n \"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}\":\n {\n deserializer: _createOrUpdateDeserializeOrganizations,\n expectedStatuses: [\"200\", \"201\"],\n },\n};\n\nfunction getDeserializationHelper(\n urlStr: string,\n method: string,\n): DeserializationHelper | undefined {\n const path = new URL(urlStr).pathname;\n const pathParts = path.split(\"/\");\n\n // Traverse list to match the longest candidate\n // matchedLen: the length of candidate path\n // matchedValue: the matched status code array\n let matchedLen = -1,\n matchedValue: DeserializationHelper | undefined;\n\n // Iterate the responseMap to find a match\n for (const [key, value] of Object.entries(deserializeMap)) {\n // Extracting the path from the map key which is in format\n // GET /path/foo\n if (!key.startsWith(method)) {\n continue;\n }\n const candidatePath = getPathFromMapKey(key);\n // Get each part of the url path\n const candidateParts = candidatePath.split(\"/\");\n\n // track if we have found a match to return the values found.\n let found = true;\n for (let i = candidateParts.length - 1, j = pathParts.length - 1; i >= 1 && j >= 1; i--, j--) {\n if (candidateParts[i]?.startsWith(\"{\") && candidateParts[i]?.indexOf(\"}\") !== -1) {\n const start = candidateParts[i]!.indexOf(\"}\") + 1,\n end = candidateParts[i]?.length;\n // If the current part of the candidate is a \"template\" part\n // Try to use the suffix of pattern to match the path\n // {guid} ==> $\n // {guid}:export ==> :export$\n const isMatched = new RegExp(`${candidateParts[i]?.slice(start, end)}`).test(\n pathParts[j] || \"\",\n );\n\n if (!isMatched) {\n found = false;\n break;\n }\n continue;\n }\n\n // If the candidate part is not a template and\n // the parts don't match mark the candidate as not found\n // to move on with the next candidate path.\n if (candidateParts[i] !== pathParts[j]) {\n found = false;\n break;\n }\n }\n\n // We finished evaluating the current candidate parts\n // Update the matched value if and only if we found the longer pattern\n if (found && candidatePath.length > matchedLen) {\n matchedLen = candidatePath.length;\n matchedValue = value;\n }\n }\n\n return matchedValue;\n}\n\nfunction getPathFromMapKey(mapKey: string): string {\n const pathStart = mapKey.indexOf(\"/\");\n return mapKey.slice(pathStart);\n}\n"]}
|
|
@@ -3,16 +3,14 @@
|
|
|
3
3
|
// Licensed under the MIT License.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.buildPagedAsyncIterator = buildPagedAsyncIterator;
|
|
6
|
-
const tslib_1 = require("tslib");
|
|
7
6
|
const core_client_1 = require("@azure-rest/core-client");
|
|
8
7
|
const core_rest_pipeline_1 = require("@azure/core-rest-pipeline");
|
|
9
8
|
/**
|
|
10
9
|
* Helper to paginate results in a generic way and return a PagedAsyncIterableIterator
|
|
11
10
|
*/
|
|
12
11
|
function buildPagedAsyncIterator(client, getInitialResponse, processResponseBody, expectedStatuses, options = {}) {
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
const nextLinkName = (_b = options.nextLinkName) !== null && _b !== void 0 ? _b : "nextLink";
|
|
12
|
+
const itemName = options.itemName ?? "value";
|
|
13
|
+
const nextLinkName = options.nextLinkName ?? "nextLink";
|
|
16
14
|
const pagedResult = {
|
|
17
15
|
getPage: async (pageLink) => {
|
|
18
16
|
const result = pageLink === undefined
|
|
@@ -28,7 +26,7 @@ function buildPagedAsyncIterator(client, getInitialResponse, processResponseBody
|
|
|
28
26
|
};
|
|
29
27
|
},
|
|
30
28
|
byPage: (settings) => {
|
|
31
|
-
const { continuationToken } = settings
|
|
29
|
+
const { continuationToken } = settings ?? {};
|
|
32
30
|
return getPageAsyncIterator(pagedResult, {
|
|
33
31
|
pageLink: continuationToken,
|
|
34
32
|
});
|
|
@@ -44,7 +42,6 @@ function buildPagedAsyncIterator(client, getInitialResponse, processResponseBody
|
|
|
44
42
|
* @returns a paged async iterator that iterates over results.
|
|
45
43
|
*/
|
|
46
44
|
function getPagedAsyncIterator(pagedResult) {
|
|
47
|
-
var _a;
|
|
48
45
|
const iter = getItemAsyncIterator(pagedResult);
|
|
49
46
|
return {
|
|
50
47
|
next() {
|
|
@@ -53,55 +50,39 @@ function getPagedAsyncIterator(pagedResult) {
|
|
|
53
50
|
[Symbol.asyncIterator]() {
|
|
54
51
|
return this;
|
|
55
52
|
},
|
|
56
|
-
byPage:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
byPage: pagedResult?.byPage ??
|
|
54
|
+
((settings) => {
|
|
55
|
+
const { continuationToken } = settings ?? {};
|
|
56
|
+
return getPageAsyncIterator(pagedResult, {
|
|
57
|
+
pageLink: continuationToken,
|
|
58
|
+
});
|
|
59
|
+
}),
|
|
62
60
|
};
|
|
63
61
|
}
|
|
64
|
-
function getItemAsyncIterator(pagedResult) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
for (var _d = true, pages_1 = tslib_1.__asyncValues(pages), pages_1_1; pages_1_1 = yield tslib_1.__await(pages_1.next()), _a = pages_1_1.done, !_a; _d = true) {
|
|
70
|
-
_c = pages_1_1.value;
|
|
71
|
-
_d = false;
|
|
72
|
-
const page = _c;
|
|
73
|
-
yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues(page)));
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
77
|
-
finally {
|
|
78
|
-
try {
|
|
79
|
-
if (!_d && !_a && (_b = pages_1.return)) yield tslib_1.__await(_b.call(pages_1));
|
|
80
|
-
}
|
|
81
|
-
finally { if (e_1) throw e_1.error; }
|
|
82
|
-
}
|
|
83
|
-
});
|
|
62
|
+
async function* getItemAsyncIterator(pagedResult) {
|
|
63
|
+
const pages = getPageAsyncIterator(pagedResult);
|
|
64
|
+
for await (const page of pages) {
|
|
65
|
+
yield* page;
|
|
66
|
+
}
|
|
84
67
|
}
|
|
85
|
-
function getPageAsyncIterator(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
68
|
+
async function* getPageAsyncIterator(pagedResult, options = {}) {
|
|
69
|
+
const { pageLink } = options;
|
|
70
|
+
let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink);
|
|
71
|
+
if (!response) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
let result = response.page;
|
|
75
|
+
result.continuationToken = response.nextPageLink;
|
|
76
|
+
yield result;
|
|
77
|
+
while (response.nextPageLink) {
|
|
78
|
+
response = await pagedResult.getPage(response.nextPageLink);
|
|
89
79
|
if (!response) {
|
|
90
|
-
return
|
|
80
|
+
return;
|
|
91
81
|
}
|
|
92
|
-
|
|
82
|
+
result = response.page;
|
|
93
83
|
result.continuationToken = response.nextPageLink;
|
|
94
|
-
yield
|
|
95
|
-
|
|
96
|
-
response = yield tslib_1.__await(pagedResult.getPage(response.nextPageLink));
|
|
97
|
-
if (!response) {
|
|
98
|
-
return yield tslib_1.__await(void 0);
|
|
99
|
-
}
|
|
100
|
-
result = response.page;
|
|
101
|
-
result.continuationToken = response.nextPageLink;
|
|
102
|
-
yield yield tslib_1.__await(result);
|
|
103
|
-
}
|
|
104
|
-
});
|
|
84
|
+
yield result;
|
|
85
|
+
}
|
|
105
86
|
}
|
|
106
87
|
/**
|
|
107
88
|
* Gets for the value of nextLink in the body
|
|
@@ -127,7 +108,7 @@ function getElements(body, itemName) {
|
|
|
127
108
|
if (!Array.isArray(value)) {
|
|
128
109
|
throw new core_rest_pipeline_1.RestError(`Couldn't paginate response\n Body doesn't contain an array property with name: ${itemName}`);
|
|
129
110
|
}
|
|
130
|
-
return value
|
|
111
|
+
return value ?? [];
|
|
131
112
|
}
|
|
132
113
|
/**
|
|
133
114
|
* Checks if a request failed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagingHelpers.js","sourceRoot":"","sources":["../../../src/static-helpers/pagingHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Client, createRestError, PathUncheckedResponse } from \"@azure-rest/core-client\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\n\n/**\n * Options for the byPage method\n */\nexport interface PageSettings {\n /**\n * A reference to a specific page to start iterating from.\n */\n continuationToken?: string;\n}\n\n/**\n * An interface that describes a page of results.\n */\nexport type ContinuablePage<TElement, TPage = TElement[]> = TPage & {\n /**\n * The token that keeps track of where to continue the iterator\n */\n continuationToken?: string;\n};\n\n/**\n * An interface that allows async iterable iteration both to completion and by page.\n */\nexport interface PagedAsyncIterableIterator<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n> {\n /**\n * The next method, part of the iteration protocol\n */\n next(): Promise<IteratorResult<TElement>>;\n /**\n * The connection to the async iterator, part of the iteration protocol\n */\n [Symbol.asyncIterator](): PagedAsyncIterableIterator<TElement, TPage, TPageSettings>;\n /**\n * Return an AsyncIterableIterator that works a page at a time\n */\n byPage: (settings?: TPageSettings) => AsyncIterableIterator<ContinuablePage<TElement, TPage>>;\n}\n\n/**\n * An interface that describes how to communicate with the service.\n */\nexport interface PagedResult<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n> {\n /**\n * Link to the first page of results.\n */\n firstPageLink?: string;\n /**\n * A method that returns a page of results.\n */\n getPage: (pageLink?: string) => Promise<{ page: TPage; nextPageLink?: string } | undefined>;\n /**\n * a function to implement the `byPage` method on the paged async iterator.\n */\n byPage?: (settings?: TPageSettings) => AsyncIterableIterator<ContinuablePage<TElement, TPage>>;\n\n /**\n * A function to extract elements from a page.\n */\n toElements?: (page: TPage) => TElement[];\n}\n\n/**\n * Options for the paging helper\n */\nexport interface BuildPagedAsyncIteratorOptions {\n itemName?: string;\n nextLinkName?: string;\n}\n\n/**\n * Helper to paginate results in a generic way and return a PagedAsyncIterableIterator\n */\nexport function buildPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n TResponse extends PathUncheckedResponse = PathUncheckedResponse,\n>(\n client: Client,\n getInitialResponse: () => PromiseLike<TResponse>,\n processResponseBody: (result: TResponse) => PromiseLike<unknown>,\n expectedStatuses: string[],\n options: BuildPagedAsyncIteratorOptions = {},\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const itemName = options.itemName ?? \"value\";\n const nextLinkName = options.nextLinkName ?? \"nextLink\";\n const pagedResult: PagedResult<TElement, TPage, TPageSettings> = {\n getPage: async (pageLink?: string) => {\n const result =\n pageLink === undefined\n ? await getInitialResponse()\n : await client.pathUnchecked(pageLink).get();\n checkPagingRequest(result, expectedStatuses);\n const results = await processResponseBody(result as TResponse);\n const nextLink = getNextLink(results, nextLinkName);\n const values = getElements<TElement>(results, itemName) as TPage;\n return {\n page: values,\n nextPageLink: nextLink,\n };\n },\n byPage: (settings?: TPageSettings) => {\n const { continuationToken } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken,\n });\n },\n };\n return getPagedAsyncIterator(pagedResult);\n}\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nfunction getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n>(\n pagedResult: PagedResult<TElement, TPage, TPageSettings>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n ((settings?: TPageSettings) => {\n const { continuationToken } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken,\n });\n }),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TPageSettings extends PageSettings>(\n pagedResult: PagedResult<TElement, TPage, TPageSettings>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n for await (const page of pages) {\n yield* page as unknown as TElement[];\n }\n}\n\nasync function* getPageAsyncIterator<TElement, TPage, TPageSettings extends PageSettings>(\n pagedResult: PagedResult<TElement, TPage, TPageSettings>,\n options: {\n pageLink?: string;\n } = {},\n): AsyncIterableIterator<ContinuablePage<TElement, TPage>> {\n const { pageLink } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink);\n if (!response) {\n return;\n }\n let result = response.page as ContinuablePage<TElement, TPage>;\n result.continuationToken = response.nextPageLink;\n yield result;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink);\n if (!response) {\n return;\n }\n result = response.page as ContinuablePage<TElement, TPage>;\n result.continuationToken = response.nextPageLink;\n yield result;\n }\n}\n\n/**\n * Gets for the value of nextLink in the body\n */\nfunction getNextLink(body: unknown, nextLinkName?: string): string | undefined {\n if (!nextLinkName) {\n return undefined;\n }\n\n const nextLink = (body as Record<string, unknown>)[nextLinkName];\n\n if (typeof nextLink !== \"string\" && typeof nextLink !== \"undefined\" && nextLink !== null) {\n throw new RestError(\n `Body Property ${nextLinkName} should be a string or undefined or null but got ${typeof nextLink}`,\n );\n }\n\n if (nextLink === null) {\n return undefined;\n }\n\n return nextLink;\n}\n\n/**\n * Gets the elements of the current request in the body.\n */\nfunction getElements<T = unknown>(body: unknown, itemName: string): T[] {\n const value = (body as Record<string, unknown>)[itemName] as T[];\n if (!Array.isArray(value)) {\n throw new RestError(\n `Couldn't paginate response\\n Body doesn't contain an array property with name: ${itemName}`,\n );\n }\n\n return value ?? [];\n}\n\n/**\n * Checks if a request failed\n */\nfunction checkPagingRequest(response: PathUncheckedResponse, expectedStatuses: string[]): void {\n if (!expectedStatuses.includes(response.status)) {\n throw createRestError(\n `Pagination failed with unexpected statusCode ${response.status}`,\n response,\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pagingHelpers.js","sourceRoot":"","sources":["../../../src/static-helpers/pagingHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Client, createRestError, PathUncheckedResponse } from \"@azure-rest/core-client\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\n\n/**\n * Options for the byPage method\n */\nexport interface PageSettings {\n /**\n * A reference to a specific page to start iterating from.\n */\n continuationToken?: string;\n}\n\n/**\n * An interface that describes a page of results.\n */\nexport type ContinuablePage<TElement, TPage = TElement[]> = TPage & {\n /**\n * The token that keeps track of where to continue the iterator\n */\n continuationToken?: string;\n};\n\n/**\n * An interface that allows async iterable iteration both to completion and by page.\n */\nexport interface PagedAsyncIterableIterator<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n> {\n /**\n * The next method, part of the iteration protocol\n */\n next(): Promise<IteratorResult<TElement>>;\n /**\n * The connection to the async iterator, part of the iteration protocol\n */\n [Symbol.asyncIterator](): PagedAsyncIterableIterator<TElement, TPage, TPageSettings>;\n /**\n * Return an AsyncIterableIterator that works a page at a time\n */\n byPage: (settings?: TPageSettings) => AsyncIterableIterator<ContinuablePage<TElement, TPage>>;\n}\n\n/**\n * An interface that describes how to communicate with the service.\n */\nexport interface PagedResult<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n> {\n /**\n * Link to the first page of results.\n */\n firstPageLink?: string;\n /**\n * A method that returns a page of results.\n */\n getPage: (pageLink?: string) => Promise<{ page: TPage; nextPageLink?: string } | undefined>;\n /**\n * a function to implement the `byPage` method on the paged async iterator.\n */\n byPage?: (settings?: TPageSettings) => AsyncIterableIterator<ContinuablePage<TElement, TPage>>;\n\n /**\n * A function to extract elements from a page.\n */\n toElements?: (page: TPage) => TElement[];\n}\n\n/**\n * Options for the paging helper\n */\nexport interface BuildPagedAsyncIteratorOptions {\n itemName?: string;\n nextLinkName?: string;\n}\n\n/**\n * Helper to paginate results in a generic way and return a PagedAsyncIterableIterator\n */\nexport function buildPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n TResponse extends PathUncheckedResponse = PathUncheckedResponse,\n>(\n client: Client,\n getInitialResponse: () => PromiseLike<TResponse>,\n processResponseBody: (result: TResponse) => PromiseLike<unknown>,\n expectedStatuses: string[],\n options: BuildPagedAsyncIteratorOptions = {},\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const itemName = options.itemName ?? \"value\";\n const nextLinkName = options.nextLinkName ?? \"nextLink\";\n const pagedResult: PagedResult<TElement, TPage, TPageSettings> = {\n getPage: async (pageLink?: string) => {\n const result =\n pageLink === undefined\n ? await getInitialResponse()\n : await client.pathUnchecked(pageLink).get();\n checkPagingRequest(result, expectedStatuses);\n const results = await processResponseBody(result as TResponse);\n const nextLink = getNextLink(results, nextLinkName);\n const values = getElements<TElement>(results, itemName) as TPage;\n return {\n page: values,\n nextPageLink: nextLink,\n };\n },\n byPage: (settings?: TPageSettings) => {\n const { continuationToken } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken,\n });\n },\n };\n return getPagedAsyncIterator(pagedResult);\n}\n\n/**\n * returns an async iterator that iterates over results. It also has a `byPage`\n * method that returns pages of items at once.\n *\n * @param pagedResult - an object that specifies how to get pages.\n * @returns a paged async iterator that iterates over results.\n */\n\nfunction getPagedAsyncIterator<\n TElement,\n TPage = TElement[],\n TPageSettings extends PageSettings = PageSettings,\n>(\n pagedResult: PagedResult<TElement, TPage, TPageSettings>,\n): PagedAsyncIterableIterator<TElement, TPage, TPageSettings> {\n const iter = getItemAsyncIterator<TElement, TPage, TPageSettings>(pagedResult);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage:\n pagedResult?.byPage ??\n ((settings?: TPageSettings) => {\n const { continuationToken } = settings ?? {};\n return getPageAsyncIterator(pagedResult, {\n pageLink: continuationToken,\n });\n }),\n };\n}\n\nasync function* getItemAsyncIterator<TElement, TPage, TPageSettings extends PageSettings>(\n pagedResult: PagedResult<TElement, TPage, TPageSettings>,\n): AsyncIterableIterator<TElement> {\n const pages = getPageAsyncIterator(pagedResult);\n for await (const page of pages) {\n yield* page as unknown as TElement[];\n }\n}\n\nasync function* getPageAsyncIterator<TElement, TPage, TPageSettings extends PageSettings>(\n pagedResult: PagedResult<TElement, TPage, TPageSettings>,\n options: {\n pageLink?: string;\n } = {},\n): AsyncIterableIterator<ContinuablePage<TElement, TPage>> {\n const { pageLink } = options;\n let response = await pagedResult.getPage(pageLink ?? pagedResult.firstPageLink);\n if (!response) {\n return;\n }\n let result = response.page as ContinuablePage<TElement, TPage>;\n result.continuationToken = response.nextPageLink;\n yield result;\n while (response.nextPageLink) {\n response = await pagedResult.getPage(response.nextPageLink);\n if (!response) {\n return;\n }\n result = response.page as ContinuablePage<TElement, TPage>;\n result.continuationToken = response.nextPageLink;\n yield result;\n }\n}\n\n/**\n * Gets for the value of nextLink in the body\n */\nfunction getNextLink(body: unknown, nextLinkName?: string): string | undefined {\n if (!nextLinkName) {\n return undefined;\n }\n\n const nextLink = (body as Record<string, unknown>)[nextLinkName];\n\n if (typeof nextLink !== \"string\" && typeof nextLink !== \"undefined\" && nextLink !== null) {\n throw new RestError(\n `Body Property ${nextLinkName} should be a string or undefined or null but got ${typeof nextLink}`,\n );\n }\n\n if (nextLink === null) {\n return undefined;\n }\n\n return nextLink;\n}\n\n/**\n * Gets the elements of the current request in the body.\n */\nfunction getElements<T = unknown>(body: unknown, itemName: string): T[] {\n const value = (body as Record<string, unknown>)[itemName] as T[];\n if (!Array.isArray(value)) {\n throw new RestError(\n `Couldn't paginate response\\n Body doesn't contain an array property with name: ${itemName}`,\n );\n }\n\n return value ?? [];\n}\n\n/**\n * Checks if a request failed\n */\nfunction checkPagingRequest(response: PathUncheckedResponse, expectedStatuses: string[]): void {\n if (!expectedStatuses.includes(response.status)) {\n throw createRestError(\n `Pagination failed with unexpected statusCode ${response.status}`,\n response,\n );\n }\n}\n"]}
|
|
@@ -21,23 +21,22 @@ function getLongRunningPoller(client, processResponseBody, expectedStatuses, opt
|
|
|
21
21
|
return getLroResponse(initialResponse, expectedStatuses);
|
|
22
22
|
},
|
|
23
23
|
sendPollRequest: async (path, pollOptions) => {
|
|
24
|
-
var _a, _b, _c, _d, _e, _f;
|
|
25
24
|
// The poll request would both listen to the user provided abort signal and the poller's own abort signal
|
|
26
25
|
function abortListener() {
|
|
27
26
|
pollAbortController.abort();
|
|
28
27
|
}
|
|
29
28
|
const abortSignal = pollAbortController.signal;
|
|
30
|
-
if (
|
|
29
|
+
if (options.abortSignal?.aborted) {
|
|
31
30
|
pollAbortController.abort();
|
|
32
31
|
}
|
|
33
|
-
else if (
|
|
32
|
+
else if (pollOptions?.abortSignal?.aborted) {
|
|
34
33
|
pollAbortController.abort();
|
|
35
34
|
}
|
|
36
35
|
else if (!abortSignal.aborted) {
|
|
37
|
-
|
|
36
|
+
options.abortSignal?.addEventListener("abort", abortListener, {
|
|
38
37
|
once: true,
|
|
39
38
|
});
|
|
40
|
-
|
|
39
|
+
pollOptions?.abortSignal?.addEventListener("abort", abortListener, {
|
|
41
40
|
once: true,
|
|
42
41
|
});
|
|
43
42
|
}
|
|
@@ -46,16 +45,16 @@ function getLongRunningPoller(client, processResponseBody, expectedStatuses, opt
|
|
|
46
45
|
response = await client.pathUnchecked(path).get({ abortSignal });
|
|
47
46
|
}
|
|
48
47
|
finally {
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
options.abortSignal?.removeEventListener("abort", abortListener);
|
|
49
|
+
pollOptions?.abortSignal?.removeEventListener("abort", abortListener);
|
|
51
50
|
}
|
|
52
51
|
return getLroResponse(response, expectedStatuses);
|
|
53
52
|
},
|
|
54
53
|
};
|
|
55
54
|
return (0, core_lro_1.createHttpPoller)(poller, {
|
|
56
|
-
intervalInMs: options
|
|
57
|
-
resourceLocationConfig: options
|
|
58
|
-
restoreFrom: options
|
|
55
|
+
intervalInMs: options?.updateIntervalInMs,
|
|
56
|
+
resourceLocationConfig: options?.resourceLocationConfig,
|
|
57
|
+
restoreFrom: options?.restoreFrom,
|
|
59
58
|
processResult: (result) => {
|
|
60
59
|
return processResponseBody(result);
|
|
61
60
|
},
|
|
@@ -73,7 +72,11 @@ function getLroResponse(response, expectedStatuses) {
|
|
|
73
72
|
}
|
|
74
73
|
return {
|
|
75
74
|
flatResponse: response,
|
|
76
|
-
rawResponse:
|
|
75
|
+
rawResponse: {
|
|
76
|
+
...response,
|
|
77
|
+
statusCode: Number.parseInt(response.status),
|
|
78
|
+
body: response.body,
|
|
79
|
+
},
|
|
77
80
|
};
|
|
78
81
|
}
|
|
79
82
|
//# sourceMappingURL=pollingHelpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pollingHelpers.js","sourceRoot":"","sources":["../../../src/static-helpers/pollingHelpers.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAuClC,oDA8DC;AAnGD,8CAOyB;AAEzB,yDAAyF;AA4BzF,SAAgB,oBAAoB,CAClC,MAAc,EACd,mBAA4D,EAC5D,gBAA0B,EAC1B,OAA+C;IAE/C,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IACpD,IAAI,CAAC,WAAW,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,eAAe,GAA0B,SAAS,CAAC;IACvD,MAAM,mBAAmB,GAAG,IAAI,eAAe,EAAE,CAAC;IAClD,MAAM,MAAM,GAAgC;QAC1C,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACnF,CAAC;YACD,eAAe,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC7C,OAAO,cAAc,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;QAC3D,CAAC;QACD,eAAe,EAAE,KAAK,EACpB,IAAY,EACZ,WAEC,EACD,EAAE
|
|
1
|
+
{"version":3,"file":"pollingHelpers.js","sourceRoot":"","sources":["../../../src/static-helpers/pollingHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n PollerLike,\n OperationState,\n ResourceLocationConfig,\n RunningOperation,\n createHttpPoller,\n OperationResponse,\n} from \"@azure/core-lro\";\n\nimport { Client, PathUncheckedResponse, createRestError } from \"@azure-rest/core-client\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\n\nexport interface GetLongRunningPollerOptions<TResponse> {\n /** Delay to wait until next poll, in milliseconds. */\n updateIntervalInMs?: number;\n /**\n * The signal which can be used to abort requests.\n */\n abortSignal?: AbortSignalLike;\n /**\n * The potential location of the result of the LRO if specified by the LRO extension in the swagger.\n */\n resourceLocationConfig?: ResourceLocationConfig;\n /**\n * The original url of the LRO\n * Should not be null when restoreFrom is set\n */\n initialRequestUrl?: string;\n /**\n * A serialized poller which can be used to resume an existing paused Long-Running-Operation.\n */\n restoreFrom?: string;\n /**\n * The function to get the initial response\n */\n getInitialResponse?: () => PromiseLike<TResponse>;\n}\nexport function getLongRunningPoller<TResponse extends PathUncheckedResponse, TResult = void>(\n client: Client,\n processResponseBody: (result: TResponse) => Promise<TResult>,\n expectedStatuses: string[],\n options: GetLongRunningPollerOptions<TResponse>,\n): PollerLike<OperationState<TResult>, TResult> {\n const { restoreFrom, getInitialResponse } = options;\n if (!restoreFrom && !getInitialResponse) {\n throw new Error(\"Either restoreFrom or getInitialResponse must be specified\");\n }\n let initialResponse: TResponse | undefined = undefined;\n const pollAbortController = new AbortController();\n const poller: RunningOperation<TResponse> = {\n sendInitialRequest: async () => {\n if (!getInitialResponse) {\n throw new Error(\"getInitialResponse is required when initializing a new poller\");\n }\n initialResponse = await getInitialResponse();\n return getLroResponse(initialResponse, expectedStatuses);\n },\n sendPollRequest: async (\n path: string,\n pollOptions?: {\n abortSignal?: AbortSignalLike;\n },\n ) => {\n // The poll request would both listen to the user provided abort signal and the poller's own abort signal\n function abortListener(): void {\n pollAbortController.abort();\n }\n const abortSignal = pollAbortController.signal;\n if (options.abortSignal?.aborted) {\n pollAbortController.abort();\n } else if (pollOptions?.abortSignal?.aborted) {\n pollAbortController.abort();\n } else if (!abortSignal.aborted) {\n options.abortSignal?.addEventListener(\"abort\", abortListener, {\n once: true,\n });\n pollOptions?.abortSignal?.addEventListener(\"abort\", abortListener, {\n once: true,\n });\n }\n let response;\n try {\n response = await client.pathUnchecked(path).get({ abortSignal });\n } finally {\n options.abortSignal?.removeEventListener(\"abort\", abortListener);\n pollOptions?.abortSignal?.removeEventListener(\"abort\", abortListener);\n }\n\n return getLroResponse(response as TResponse, expectedStatuses);\n },\n };\n return createHttpPoller(poller, {\n intervalInMs: options?.updateIntervalInMs,\n resourceLocationConfig: options?.resourceLocationConfig,\n restoreFrom: options?.restoreFrom,\n processResult: (result: unknown) => {\n return processResponseBody(result as TResponse);\n },\n });\n}\n/**\n * Converts a Rest Client response to a response that the LRO implementation understands\n * @param response - a rest client http response\n * @param deserializeFn - deserialize function to convert Rest response to modular output\n * @returns - An LRO response that the LRO implementation understands\n */\nfunction getLroResponse<TResponse extends PathUncheckedResponse>(\n response: TResponse,\n expectedStatuses: string[],\n): OperationResponse<TResponse> {\n if (!expectedStatuses.includes(response.status)) {\n throw createRestError(response);\n }\n\n return {\n flatResponse: response,\n rawResponse: {\n ...response,\n statusCode: Number.parseInt(response.status),\n body: response.body,\n },\n };\n}\n"]}
|
|
@@ -7,7 +7,7 @@ exports.expandUrlTemplate = expandUrlTemplate;
|
|
|
7
7
|
// helpers
|
|
8
8
|
// ---------------------
|
|
9
9
|
function encodeComponent(val, reserved, op) {
|
|
10
|
-
return (reserved
|
|
10
|
+
return (reserved ?? op === "+") || op === "#"
|
|
11
11
|
? encodeReservedComponent(val)
|
|
12
12
|
: encodeRFC3986URIComponent(val);
|
|
13
13
|
}
|
|
@@ -160,7 +160,7 @@ function expandUrlTemplate(template, context, option) {
|
|
|
160
160
|
varValue: context[varMatch[1]],
|
|
161
161
|
varName: varMatch[1],
|
|
162
162
|
modifier: varMatch[2] || varMatch[3],
|
|
163
|
-
reserved: option
|
|
163
|
+
reserved: option?.allowReserved,
|
|
164
164
|
});
|
|
165
165
|
if (varValue) {
|
|
166
166
|
result.push(varValue);
|