Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
wch-kamil committed Aug 18, 2020
0 parents commit 0a5fd42
Show file tree
Hide file tree
Showing 19 changed files with 10,510 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"presets": [
"@babel/env",
"@babel/typescript"
],
"plugins": [
"@babel/proposal-class-properties",
"@babel/proposal-object-rest-spread"
]
}
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
node_modules
dist
src/__index.ts
.DS_Store
.idea
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2017 Paw

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# OpenAPI 3.0 Importer for Paw

A [Paw Extension](https://paw.cloud/extensions) to import OpenAPI files (json or yaml) to Paw.

## How to use?

1. In Paw, go to File menu, then Import OpenAPI 3.0
2. Pick the saved OpenAPI file, and make sure the Format is "OpenAPI 3.0 Importer"

#Development
1. `npm run watch` to live reload + upload extension to Paw
2. In Paw -> "Window" -> "Extension console" is the console where You have access to debugging console
3. To use `console.log` and `console.error` function it is recommended to use `Console` class from `src/lib`. Standard console.log outputs object as `[object Object]` while `Console.log` will output stringified version of object

## License

This Paw Extension is released under the MIT License. Feel free to fork, and modify!

Copyright © 2014-2019 [Paw](https://paw.cloud)
102 changes: 102 additions & 0 deletions examples/exported-with-generator.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
openapi: 3.0.3
info:
title: Untitled Paw Document
version: "1596784727917"
paths:
/test/:
servers:
- url: https://example.com/
get:
operationId: f6507537-dd9a-4d81-ba1c-1b98a7c7ee3c
summary: Example request
description: >-
This is first example request with type "GET".
The base url is "https://example.com" and path is "/test".
It should be simple get with 2 URL params "a" and "b" with values same as their names.
Request has also 1 custom header "Forehead" with value "Clean"
responses:
default:
description: Default response
parameters:
- name: a
in: query
schema:
type: string
default: a
- name: b
in: query
schema:
type: string
default: b
- name: Forehead
in: header
schema:
type: string
default: Clean
"/user/{user_id}/limit/{limit}/":
servers:
- url: https://example.com/
post:
operationId: e3bf96da-239f-487c-b3d1-617c4f9ca6a8
summary: Example post request
description: >-
This is second example request ith type "POST".
The base url is "https://example.com" and path is "/user/{user_id}/limit/{limit}". The variable {limit} has set value 15 and is set as not required.
This request has set Basic Authorization with login "Admin" and password "VeryStrongPassword"
Request has also "text/plain" content in body with value "Body is here"
responses:
default:
description: Default response
requestBody:
content:
text/plain:
example:
value: Body is here
parameters:
- name: Authorization
in: header
schema:
type: string
default: Basic QWRtaW46VmVyeVN0cm9uZ1Bhc3N3b3Jk
- name: Content-Type
in: header
schema:
type: string
default: text/plain; charset=utf-8
- name: limit
in: path
required: true
example:
summary: NonRequired
value: true
schema:
type: string
default: "15"
- name: user_id
in: path
required: true
schema:
type: string
default: ""
security:
- BasicAuth: []
components:
securitySchemes:
BasicAuth:
type: http
scheme: basic
examples:
BasicAuth:
summary: Basic credentials
value:
username: Admin
password: VeryStrongPassword
158 changes: 158 additions & 0 deletions examples/petstore-expanded.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger Petstore
description: A sample API that uses a petstore as an example to demonstrate features in the OpenAPI 3.0 specification
termsOfService: http://swagger.io/terms/
contact:
name: Swagger API Team
email: [email protected]
url: http://swagger.io
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: http://petstore.swagger.io/api
paths:
/pets:
get:
description: |
Returns all pets from the system that the user has access to
Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia.
Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien.
operationId: findPets
parameters:
- name: tags
in: query
description: tags to filter by
required: false
style: form
schema:
type: array
items:
type: string
- name: limit
in: query
description: maximum number of results to return
required: false
schema:
type: integer
format: int32
responses:
'200':
description: pet response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
default:
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
description: Creates a new pet in the store. Duplicates are allowed
operationId: addPet
requestBody:
description: Pet to add to the store
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NewPet'
responses:
'200':
description: pet response
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
default:
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/pets/{id}:
get:
description: Returns a user based on a single ID, if the user does not have access to the pet
operationId: find pet by id
parameters:
- name: id
in: path
description: ID of pet to fetch
required: true
schema:
type: integer
format: int64
responses:
'200':
description: pet response
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
default:
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
description: deletes a single pet based on the ID supplied
operationId: deletePet
parameters:
- name: id
in: path
description: ID of pet to delete
required: true
schema:
type: integer
format: int64
responses:
'204':
description: pet deleted
default:
description: unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Pet:
allOf:
- $ref: '#/components/schemas/NewPet'
- type: object
required:
- id
properties:
id:
type: integer
format: int64

NewPet:
type: object
required:
- name
properties:
name:
type: string
tag:
type: string

Error:
type: object
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
type: string
8 changes: 8 additions & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module.exports = {
"roots": [
"<rootDir>/src"
],
"transform": {
"^.+\\.tsx?$": "ts-jest"
},
}
Loading

0 comments on commit 0a5fd42

Please sign in to comment.