Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeScript SDK generation using Speakeasy #56

Merged
merged 26 commits into from
Apr 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 0 additions & 30 deletions .github/workflows/ci.yml

This file was deleted.

32 changes: 0 additions & 32 deletions .github/workflows/publish-npm.yml

This file was deleted.

19 changes: 0 additions & 19 deletions .github/workflows/release-doctor.yml

This file was deleted.

30 changes: 30 additions & 0 deletions .github/workflows/sdk-generation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Generate

permissions:
checks: write
contents: write
pull-requests: write
statuses: write

on:
workflow_dispatch:
inputs:
force:
description: Force generation of SDKs
type: boolean
default: false
schedule:
- cron: 0 0 * * *

jobs:
generate:
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
with:
force: ${{ github.event.inputs.force }}
mode: pr
speakeasy_version: latest
working_directory: ./typescript
secrets:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}
# npm_token: ${{ secrets.NPM_TOKEN }}
203 changes: 203 additions & 0 deletions .speakeasy/gen.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
lockVersion: 2.0.0
id: f28179cc-ef59-426d-9e85-60cec22fc642
management:
docChecksum: cca62df209e2e9fe36ff456a41001da4
docVersion: 0.0.1
speakeasyVersion: 1.244.0
generationVersion: 2.301.0
releaseVersion: 0.18.3
configChecksum: df48e024b99e6b2abb07c6eafc8d5bfd
features:
typescript:
acceptHeaders: 2.81.1
constsAndDefaults: 0.1.5
core: 3.7.1
deprecations: 2.81.1
flattening: 2.81.1
globalSecurity: 2.82.9
globalServerURLs: 2.82.4
globals: 2.82.1
hiddenGlobals: 0.1.0
nameOverrides: 2.81.2
responseFormat: 0.2.3
unions: 2.85.3
generatedFiles:
- src/sdk/links.ts
- src/sdk/qrcodes.ts
- src/sdk/analytics.ts
- src/sdk/workspaces.ts
- src/sdk/tags.ts
- src/sdk/sdk.ts
- .eslintrc.js
- .npmignore
- RUNTIMES.md
- package.json
- src/index.ts
- src/lib/base64.ts
- src/lib/config.ts
- src/lib/encodings.ts
- src/lib/http.ts
- src/lib/retries.ts
- src/lib/schemas.ts
- src/lib/sdks.ts
- src/lib/security.ts
- src/lib/url.ts
- src/sdk/index.ts
- src/models/errors/sdkerror.ts
- src/models/errors/sdkvalidationerror.ts
- src/types/blobs.ts
- src/types/index.ts
- src/types/operations.ts
- src/types/rfcdate.ts
- tsconfig.json
- src/models/components/linkschema.ts
- src/models/components/tagschema.ts
- src/models/components/workspaceschema.ts
- src/models/components/security.ts
- src/models/errors/badrequest.ts
- src/models/errors/unauthorized.ts
- src/models/errors/forbidden.ts
- src/models/errors/notfound.ts
- src/models/errors/conflict.ts
- src/models/errors/inviteexpired.ts
- src/models/errors/unprocessableentity.ts
- src/models/errors/ratelimitexceeded.ts
- src/models/errors/internalservererror.ts
- src/models/operations/getlinks.ts
- src/models/operations/createlink.ts
- src/models/operations/getlinkscount.ts
- src/models/operations/getlinkinfo.ts
- src/models/operations/editlink.ts
- src/models/operations/deletelink.ts
- src/models/operations/bulkcreatelinks.ts
- src/models/operations/getqrcode.ts
- src/models/operations/getclicksanalytics.ts
- src/models/operations/gettimeseriesanalytics.ts
- src/models/operations/getcountryanalytics.ts
- src/models/operations/getcityanalytics.ts
- src/models/operations/getdeviceanalytics.ts
- src/models/operations/getbrowseranalytics.ts
- src/models/operations/getosanalytics.ts
- src/models/operations/getrefereranalytics.ts
- src/models/operations/gettoplinks.ts
- src/models/operations/gettopurls.ts
- src/models/operations/createworkspace.ts
- src/models/operations/getworkspace.ts
- src/models/operations/gettags.ts
- src/models/operations/createtag.ts
- src/models/errors/index.ts
- src/models/components/index.ts
- src/models/operations/index.ts
- docs/models/components/linkschema.md
- docs/models/components/color.md
- docs/models/components/tagschema.md
- docs/models/components/plan.md
- docs/models/components/role.md
- docs/models/components/users.md
- docs/models/components/domains.md
- docs/models/components/workspaceschema.md
- docs/models/components/security.md
- docs/models/errors/code.md
- docs/models/errors/errort.md
- docs/models/errors/badrequest.md
- docs/models/errors/unauthorizedcode.md
- docs/models/errors/unauthorizederror.md
- docs/models/errors/unauthorized.md
- docs/models/errors/forbiddencode.md
- docs/models/errors/forbiddenerror.md
- docs/models/errors/forbidden.md
- docs/models/errors/notfoundcode.md
- docs/models/errors/notfounderror.md
- docs/models/errors/notfound.md
- docs/models/errors/conflictcode.md
- docs/models/errors/conflicterror.md
- docs/models/errors/conflict.md
- docs/models/errors/inviteexpiredcode.md
- docs/models/errors/inviteexpirederror.md
- docs/models/errors/inviteexpired.md
- docs/models/errors/unprocessableentitycode.md
- docs/models/errors/unprocessableentityerror.md
- docs/models/errors/unprocessableentity.md
- docs/models/errors/ratelimitexceededcode.md
- docs/models/errors/ratelimitexceedederror.md
- docs/models/errors/ratelimitexceeded.md
- docs/models/errors/internalservererrorcode.md
- docs/models/errors/internalservererrorerror.md
- docs/models/errors/internalservererror.md
- docs/models/operations/queryparamtagids.md
- docs/models/operations/sort.md
- docs/models/operations/getlinksrequest.md
- docs/models/operations/tagids.md
- docs/models/operations/createlinkrequestbody.md
- docs/models/operations/getlinkscountqueryparamtagids.md
- docs/models/operations/two.md
- docs/models/operations/one.md
- docs/models/operations/groupby.md
- docs/models/operations/getlinkscountrequest.md
- docs/models/operations/getlinkinforequest.md
- docs/models/operations/editlinktagids.md
- docs/models/operations/editlinkrequestbody.md
- docs/models/operations/editlinkrequest.md
- docs/models/operations/deletelinkrequest.md
- docs/models/operations/deletelinkresponsebody.md
- docs/models/operations/bulkcreatelinkstagids.md
- docs/models/operations/requestbody.md
- docs/models/operations/level.md
- docs/models/operations/getqrcoderequest.md
- docs/models/operations/interval.md
- docs/models/operations/country.md
- docs/models/operations/getclicksanalyticsrequest.md
- docs/models/operations/queryparaminterval.md
- docs/models/operations/queryparamcountry.md
- docs/models/operations/gettimeseriesanalyticsrequest.md
- docs/models/operations/responsebody.md
- docs/models/operations/getcountryanalyticsqueryparaminterval.md
- docs/models/operations/getcountryanalyticsqueryparamcountry.md
- docs/models/operations/getcountryanalyticsrequest.md
- docs/models/operations/getcountryanalyticscountry.md
- docs/models/operations/getcountryanalyticsresponsebody.md
- docs/models/operations/getcityanalyticsqueryparaminterval.md
- docs/models/operations/getcityanalyticsqueryparamcountry.md
- docs/models/operations/getcityanalyticsrequest.md
- docs/models/operations/getcityanalyticscountry.md
- docs/models/operations/getcityanalyticsresponsebody.md
- docs/models/operations/getdeviceanalyticsqueryparaminterval.md
- docs/models/operations/getdeviceanalyticsqueryparamcountry.md
- docs/models/operations/getdeviceanalyticsrequest.md
- docs/models/operations/getdeviceanalyticsresponsebody.md
- docs/models/operations/getbrowseranalyticsqueryparaminterval.md
- docs/models/operations/getbrowseranalyticsqueryparamcountry.md
- docs/models/operations/getbrowseranalyticsrequest.md
- docs/models/operations/getbrowseranalyticsresponsebody.md
- docs/models/operations/getosanalyticsqueryparaminterval.md
- docs/models/operations/getosanalyticsqueryparamcountry.md
- docs/models/operations/getosanalyticsrequest.md
- docs/models/operations/getosanalyticsresponsebody.md
- docs/models/operations/getrefereranalyticsqueryparaminterval.md
- docs/models/operations/getrefereranalyticsqueryparamcountry.md
- docs/models/operations/getrefereranalyticsrequest.md
- docs/models/operations/getrefereranalyticsresponsebody.md
- docs/models/operations/gettoplinksqueryparaminterval.md
- docs/models/operations/gettoplinksqueryparamcountry.md
- docs/models/operations/gettoplinksrequest.md
- docs/models/operations/gettoplinksresponsebody.md
- docs/models/operations/gettopurlsqueryparaminterval.md
- docs/models/operations/gettopurlsqueryparamcountry.md
- docs/models/operations/gettopurlsrequest.md
- docs/models/operations/gettopurlsresponsebody.md
- docs/models/operations/createworkspacerequestbody.md
- docs/models/operations/getworkspacerequest.md
- docs/models/operations/gettagsrequest.md
- docs/models/operations/color.md
- docs/models/operations/createtagrequestbody.md
- docs/sdks/dub/README.md
- docs/sdks/links/README.md
- docs/sdks/qrcodes/README.md
- docs/sdks/analytics/README.md
- docs/sdks/workspaces/README.md
- docs/sdks/tags/README.md
- USAGE.md
- .gitattributes
- src/hooks/hooks.ts
- src/hooks/types.ts
- src/hooks/index.ts
37 changes: 37 additions & 0 deletions .speakeasy/gen.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
configVersion: 2.0.0
generation:
sdkClassName: dub
maintainOpenAPIOrder: true
usageSnippets:
optionalPropertyRendering: withExample
useClassNamesForArrayFields: true
fixes:
nameResolutionDec2023: true
parameterOrderingFeb2024: true
requestResponseComponentNamesFeb2024: true
auth:
oAuth2ClientCredentialsEnabled: false
typescript:
version: 0.18.3
additionalDependencies:
dependencies: {}
devDependencies:
vitest: 1.4.0
peerDependencies: {}
author: Dub
clientServerStatusCodesAsErrors: true
flattenGlobalSecurity: true
imports:
option: openapi
paths:
callbacks: models/callbacks
errors: models/errors
operations: models/operations
shared: models/components
webhooks: models/webhooks
inputModelSuffix: input
maxMethodParams: 0
outputModelSuffix: output
packageName: dub
responseFormat: flat
templateVersion: v2
10 changes: 10 additions & 0 deletions .speakeasy/workflow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
workflowVersion: 1.0.0
sources:
my-first-source:
inputs:
- location: https://api.dub.sh
targets:
my-first-target:
target: typescript
source: my-first-source
output: ./typescript
28 changes: 28 additions & 0 deletions typescript/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/* eslint-env node */
module.exports = {
root: true,
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/recommended",
"plugin:import/typescript",
],
parser: "@typescript-eslint/parser",
plugins: ["@typescript-eslint"],
settings: {
"import/resolver": {
typescript: true,
node: true,
},
},
rules: {
// Handled by typescript compiler
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/no-explicit-any": "off",
"import/no-named-as-default-member": "off",

"import/no-default-export": "error",
},
};
Loading