') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); [typescript-angular] allow empty string basePath by martinnovak · Pull Request #3489 · OpenAPITools/openapi-generator · GitHub
Skip to content

[typescript-angular] allow empty string basePath - #3489

Merged
macjohnny merged 4 commits into
OpenAPITools:masterfrom
martinnovak:fix_2731
Sep 9, 2019
Merged

[typescript-angular] allow empty string basePath#3489
macjohnny merged 4 commits into
OpenAPITools:masterfrom
martinnovak:fix_2731

Conversation

@martinnovak

@martinnovakmartinnovak commented Jul 29, 2019

Copy link
Copy Markdown
Contributor

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\. If contributing template-only or documentation-only changes which will change sample output, be sure to build the project first.
  • Filed the PR against the correct branch: master, 4.1.x, 5.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

This fixes#2731 - empty strings in javascript are not getting into api services. Instead, the default url is used.

@auto-labeler

Copy link
Copy Markdown

👍 Thanks for opening this issue!
🏷 I have applied any labels matching special text in your issue.

The team will review the labels and make any necessary changes.

if (configuration) {
this.configuration = configuration;
this.configuration.basePath = configuration.basePath || basePath || this.basePath;
this.configuration.basePath = (typeof configuration.basePath === 'string') ? configuration.basePath : ((typeof basePath === 'string') ? basePath : this.basePath);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please refactor this to a more readable if() ... else if () ...

@macjohnny

Copy link
Copy Markdown
Member

@martinnovak thanks for your PR.
Please also generate the samples and copy the technical committee (see PR description)

@macjohnnymacjohnny added this to the 4.1.2 milestone Aug 26, 2019
@macjohnny

Copy link
Copy Markdown
Member

@martinnovak any update there? we could include this change in the next release

@macjohnny

Copy link
Copy Markdown
Member

@akehir can you have a look at this change?

@akehirakehir left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@macjohnnymacjohnny changed the title [typescript-angular] Fixing #2731 - empty string basePath[typescript-angular] allow empty string basePathSep 9, 2019
@macjohnny
macjohnny merged commit 8d67acc into OpenAPITools:masterSep 9, 2019
hokamoto pushed a commit to hokamoto/openapi-generator that referenced this pull request Sep 12, 2019
* [typescript-angular] Fixing OpenAPITools#2731 - empty string basePath
* typescript-angular: refactor base path configuration
* typescript-angular: refactor base path configuration
@wing328

Copy link
Copy Markdown
Member

@martinnovak thanks for the PR, which has been included in the v4.1.2 release: https://twitter.com/oas_generator/status/1172068944355528705

wing328 pushed a commit that referenced this pull request Sep 13, 2019
* First version of Nim Client
* Add some codes
* Add some codes
* Add some codes
* Add some codes
* Add some codes
* First version of Nim Client
* Add some codes
* Add some codes
* [Dart] Fix README template and update testing doco (#3809)
* [Dart] Fix README template and update testing doco
- deleted redundant shell script
- fixed and updated README template
- updated test package and moved to a dev_dependency
- removed old unused dev_dependency packages
- updated testing documentation in petstore sample
* Remove references to dart-flutter-petstore.sh
* Fix typos
* Fix typo
* Support custom git repository (#3757)
* add gitHost param to GeneratorSettings and related
* parameterize gitHost in READMEs
* parameterize gitHost in go.mod
* parameterize gitHost in git_push
* update petstore samples
* run ./bin/utils/export_docs_generators.sh
* run meta-codehen.sh
* Revert "run meta-codehen.sh"
This reverts commit d6d579f.
* Revert "run ./bin/utils/export_docs_generators.sh"
This reverts commit 1b81538.
* Revert "update petstore samples"
This reverts commit f513add.
* run ensure-up-to-date
* Add links to article and video (#3820)
* Better Go code format (#3819)
* better varible naming
* better comments
* better code format for go experimental client
* better comment, update samples
* Add some codes
* Add some codes
* Add some codes
* Add gRPC Protobuf schema generator (#3818)
* add grpc protobuf generator
* update doc
* add new doc
* add windows batch, comment out root proto
* 1792 fix remote spec handling and hash calculation (#3440)
* fixed bug where nullApi.java would be generated. Instead, generated DefaultApi.java to match the default path /{pathParam} (#3821)
* Revert "1792 fix remote spec handling and hash calculation (#3440)"
This reverts commit 2a2eefe.
* Add nickmeinhold to Dart technical committee (#3830)
* Bug #2845 typescript angular inheritance (#3812)
* issue #2845: enable 'supportsMultipleInheritance' on typescript angular client codegen
- note I reran ./bin/openapi3/typescript-angular-petstore-all.sh and no changes occurred.
this suggests to me that the petstore.yaml sample should be improved to make use of the
anyOf / allOf / oneOf keywords, in order to better show the effects of changes on generated code.
* issue #2845: run ./bin/openapi3/typescript-angular-petstore-all.sh
* run `mvn clean package && ./bin/typescript-angular-petstore-all.sh`
* revert extranous files
* fix warnings in csharp-netcore client (#3831)
* Add missing files to the form request (#3834)
* [client][go] avoid duplicated reflect imports (#3847)
* Following up for #3440 (1792 fix remote spec handling and hash calculation) (#3826)
* This patch fixes the bug that we cannot access to remote files when checking file updates.
Following up #3440, supporting auth.
* 1792 fix remote spec handling and hash calculation (#3440)
(cherry picked from commit 2a2eefe)
* fix detecting remote file / local file logic while finding the hash file, taking care of IllegalArgumentException for local files.
* add testcase
* Add a link (#3850)
* Add Element AI to the list (#3856)
* maven-plugin-plugin 3.6.0 (#3854)
* [Java][okhttp-gson] fix failure to deserialize floats (#3846)
* fixed bug where nullApi.java would be generated. Instead, generated DefaultApi.java to match the default path /{pathParam}
* fix to bug #3157
* update samples
* Adds Http Info To Dart Api (#3851)
* [C++][Pistache] Add missing setter for arrays (#3837)
* [C++][Pistache] Add missing setter for arrays
Fixes#3769
* [C++][Pistache] Update Petstore sample
* typescript-inversify: improve check for required parameters, support multiple media types (#3849)
* [typescript-inversify] Allow falsy parameters
A required parameter to an api method must not be `null` or `undefined`.
It can be any other falsy value, e.g. `""`, `0` or `false` though. This
change makes sure an error is only thrown in the former case and not in
the latter.
* [typescript-inversify] Handle multiple media types
The Accept and Content-Type HTTP headers can contain a list of media
types. Previously all but the first media type in the api definition
were ignored. Now the headers are properly generated.
* [typescript-inversify] Fix http client interface
The api service methods allow the `body` parameter to be optional. The
parameter is then passed to an `IHttpClient`. So it needs to be optional
there as well.
Also fixed the sample implementation `HttpClient`.
Fixes#3618.
* [typescript-inversify] Regenerate Petstore sample
* [typescript-inversify] Use more explicit null check
This does not change the semantic of the generated code, but makes it more explicit.
Co-Authored-By: Esteban Gehring <esteban.gehring@gmail.com>
* [typescript-angular] allow empty string basePath (#3489)
* [typescript-angular] Fixing #2731 - empty string basePath
* typescript-angular: refactor base path configuration
* typescript-angular: refactor base path configuration
* Fix/r/serialization fix and minor 3xx resp fix (#3817)
* fix(qlik): fix for minor serialization bug
* fix(r): add petsore generated classes
* fix(r): indendation fixes
* typescript-axios: Fix baseoptions (#3866)
* Fixed missing baseOptions of typescript-axios.
The typescript-axios template was missing the baseOptions setting when building an API Configuration. Set it.
* update sample.
* re-generate typescript axios samples
* Rename gRPC generator to "protobuf-schema" (#3864)
* rename grpc generator to protobuf-schema
* update doc
* Prepare v4.1.2 release (#3873)
* update samples
* update date
* fix version in readme
* BugFix #2053 Spring Boot fails to parse LocalDate query parameter (#3860)
Adds the format annotation so that Spring is able to serialize OpenApi date/date-time format into LocalDate/OffsetDateTime.
* update doc, samples (#3875)
* update stable release
* Update the batch for Windows
* Add a test snippet
* Update ensure-up-to-date
* Add Nim to README.md
* Ran ensure-up-to-date to pass CircleCI tests
jimschubert added a commit that referenced this pull request Sep 13, 2019
* master: (22 commits)
various minor improvements to nim generator (#3883)
Add Nim client code generator (#3879)
updated google-api-client version from 1.23.0 to 1.30.2. Bugfix #3625 (#3882)
typescript-fetch: fix missing comma in multiple imports (#3881)
[scala][client] add Scala code generation test (#3859)
typescript-node: Use HttpError class when rejecting promises (#3876)
update stable release
update doc, samples (#3875)
BugFix #2053 Spring Boot fails to parse LocalDate query parameter (#3860)
fix version in readme
Prepare v4.1.2 release (#3873)
Rename gRPC generator to "protobuf-schema" (#3864)
typescript-axios: Fix baseoptions (#3866)
Fix/r/serialization fix and minor 3xx resp fix (#3817)
[typescript-angular] allow empty string basePath (#3489)
typescript-inversify: improve check for required parameters, support multiple media types (#3849)
[C++][Pistache] Add missing setter for arrays (#3837)
Adds Http Info To Dart Api (#3851)
[Java][okhttp-gson] fix failure to deserialize floats (#3846)
maven-plugin-plugin 3.6.0 (#3854)
...
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] [typescript-angular] Base Path can't be set to '<empty string>'

4 participants

@martinnovak@macjohnny@wing328@akehir