Skip to content

Commit

Permalink
Merge pull request #1750 from apiaryio/kylef/apiejs
Browse files Browse the repository at this point in the history
  • Loading branch information
kylef committed May 6, 2020
2 parents 789f3be + d680e21 commit 6ee8760
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 48 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ documentation.

- [API Blueprint][]
- [OpenAPI 2][] (formerly known as Swagger)
- [OpenAPI 3][] ([experimental](https://github.com/apiaryio/api-elements.js/blob/master/packages/fury-adapter-oas3-parser/STATUS.md), contributions welcome!)
- [OpenAPI 3][] ([experimental](https://github.com/apiaryio/api-elements.js/blob/master/packages/openapi-parser/STATUS.md), contributions welcome!)

### Supported Hooks Languages

Expand Down
2 changes: 1 addition & 1 deletion docs/how-it-works.rst
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ OpenAPI 2

The effective request body is inferred from ``"in": "body"`` and ``"in": "formData"`` parameters (:openapi2:`parameterobject`).

If body parameter has ``schema.example`` (:openapi2:`schemaexample`), it is used as a raw JSON sample for the request body. If it’s not present, Dredd’s `OpenAPI 2 adapter <https://github.com/apiaryio/fury-adapter-swagger/>`__ generates sample values from the JSON Schema provided in the ``schema`` (:openapi2:`parameterschema`) property. Following rules apply when the adapter fills values of the properties, ordered by precedence:
If body parameter has ``schema.example`` (:openapi2:`schemaexample`), it is used as a raw JSON sample for the request body. If it’s not present, Dredd’s `OpenAPI 2 adapter <https://github.com/apiaryio/api-elements.js/tree/master/packages/openapi2-parser>`__ generates sample values from the JSON Schema provided in the ``schema`` (:openapi2:`parameterschema`) property. Following rules apply when the adapter fills values of the properties, ordered by precedence:

1. Value of ``default``.
2. First value from ``enum``.
Expand Down
2 changes: 1 addition & 1 deletion docs/how-to-guides.rst
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ OpenAPI 2
:language: openapi2

.. note::
Do not use the explicit ``binary`` or ``bytes`` formats with response bodies, as Dredd is not able to properly work with those (:ghissue:`fury-adapter-swagger#193`).
Do not use the explicit ``binary`` or ``bytes`` formats with response bodies, as Dredd is not able to properly work with those (:ghissue:`api-elements.js#269`).

Hooks
~~~~~
Expand Down
2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Supported API Description Formats

- `API Blueprint`_
- `OpenAPI 2`_ (formerly known as Swagger)
- `OpenAPI 3`_ (`experimental <https://github.com/apiaryio/api-elements.js/blob/master/packages/fury-adapter-oas3-parser/STATUS.md>`__, contributions welcome!)
- `OpenAPI 3`_ (`experimental <https://github.com/apiaryio/api-elements.js/blob/master/packages/openapi3-parser/STATUS.md>`__, contributions welcome!)

Supported Hooks Languages
~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
8 changes: 4 additions & 4 deletions packages/dredd-transactions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@
"README.md"
],
"dependencies": {
"@apielements/apib-parser": "0.19.0",
"@apielements/openapi2-parser": "0.30.0",
"@apielements/openapi3-parser": "0.12.0",
"fury": "3.0.0-beta.14",
"fury-adapter-apib-parser": "0.18.1",
"fury-adapter-oas3-parser": "0.11.1",
"fury-adapter-swagger": "0.29.0",
"uri-template": "1.0.1"
},
"bundledDependencies": [
"fury-adapter-apib-parser"
"@apielements/apib-parser"
],
"devDependencies": {
"chai": "4.2.0",
Expand Down
6 changes: 3 additions & 3 deletions packages/dredd-transactions/parse/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const fury = require('fury');


fury.use(require('fury-adapter-apib-parser'));
fury.use(require('fury-adapter-swagger'));
fury.use(require('fury-adapter-oas3-parser'));
fury.use(require('@apielements/apib-parser'));
fury.use(require('@apielements/openapi2-parser'));
fury.use(require('@apielements/openapi3-parser'));

const { Annotation, SourceMap, ParseResult } = fury.minim.elements;

Expand Down
14 changes: 11 additions & 3 deletions packages/dredd-transactions/scripts/prepack.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const rimraf = require('rimraf');

const PACKAGE_DIR = path.resolve(__dirname, '..');
const SYMLINKS_LOG = path.join(PACKAGE_DIR, 'prepack-symlinks.log');
const APIB_PARSER_PATH = path.join(PACKAGE_DIR, 'node_modules', 'fury-adapter-apib-parser');
const APIB_PARSER_PATH = path.join(PACKAGE_DIR, 'node_modules', '@apielements', 'apib-parser');


function readPackageJson(packageDir) {
Expand All @@ -34,10 +34,18 @@ function writePackageJson(packageDir, packageData) {
*/
function symlinkDependencyTreeToLocalNodeModules(dependencyName) {
const localDependencyPath = path.join(PACKAGE_DIR, 'node_modules', dependencyName);

if (!fs.existsSync(localDependencyPath)) {
fs.symlinkSync(`../../../node_modules/${dependencyName}`, localDependencyPath);
const localDependencyPathDir = path.dirname(localDependencyPath);
if (!fs.existsSync(localDependencyPathDir)) {
fs.mkdirSync(localDependencyPathDir);
}

const source = path.relative(localDependencyPathDir, path.resolve(`../../node_modules/${dependencyName}`));
fs.symlinkSync(source, localDependencyPath);
fs.appendFileSync(SYMLINKS_LOG, `${dependencyName}\n`);
}

const packageData = readPackageJson(localDependencyPath);
const dependencies = Object.keys(packageData.dependencies || {});
dependencies.forEach(symlinkDependencyTreeToLocalNodeModules);
Expand All @@ -49,7 +57,7 @@ const packageData = readPackageJson(PACKAGE_DIR);
const { bundledDependencies } = packageData;
bundledDependencies.forEach(symlinkDependencyTreeToLocalNodeModules);

// alter fury-adapter-apib-parser's package.json so it doesn't depend on protagonist
// alter @apielements/apib-parser's package.json so it doesn't depend on protagonist
const apibParserPackageData = readPackageJson(APIB_PARSER_PATH);
delete apibParserPackageData.dependencies.protagonist;
delete apibParserPackageData.optionalDependencies.protagonist;
Expand Down
68 changes: 34 additions & 34 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,40 @@
# yarn lockfile v1


"@apielements/apib-parser@0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@apielements/apib-parser/-/apib-parser-0.19.0.tgz#c22baf760f14afa9bc6547066170af4f1d72a5ac"
integrity sha512-1GA00KxzCSWFeaw2D+i9Zz/e4Jck67XyZAnv8y18F0o8ZANrGhukJSRggjmrGSxLcrbeqe/4CKhf/PQOC14NZA==
dependencies:
deckardcain "^1.0.0"
drafter.js "^3.2.0"
optionalDependencies:
protagonist "^2.1.0"

"@apielements/openapi2-parser@0.30.0":
version "0.30.0"
resolved "https://registry.yarnpkg.com/@apielements/openapi2-parser/-/openapi2-parser-0.30.0.tgz#ff5d820fa90fec17c5ec726b7be4e33aeeb5fdf9"
integrity sha512-yXPdgTUiIhC8Gg3Q4rDfuFs8i4WD139Tn8qFIWocHSbKHLZ36VNox15lWZKGUMKZ67u6cXTtKHyS4cwHILFflQ==
dependencies:
content-type "^1.0.4"
js-yaml "^3.12.0"
json-schema-faker "0.5.0-rc23"
lodash "^4.17.0"
media-typer "^1.0.1"
swagger-parser "^8.0.0"
yaml-js "^0.2.3"
z-schema "^4.1.0"

"@apielements/openapi3-parser@0.12.0":
version "0.12.0"
resolved "https://registry.yarnpkg.com/@apielements/openapi3-parser/-/openapi3-parser-0.12.0.tgz#6e1607b42648b6e102753f8f52d62c7f141eaaa5"
integrity sha512-zFMfKnSuUNjokIfiEPJHCpneuEiE5fgef5d+bKapivUo0/fh2i8oqAda93GpEHWXXVtxCQOrmalwyEiBxJuF5w==
dependencies:
content-type "^1.0.4"
media-typer "^1.0.1"
ramda "0.27.0"
yaml-js "^0.2.3"

"@babel/code-frame@^7.0.0":
version "7.5.5"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
Expand Down Expand Up @@ -3203,40 +3237,6 @@ functional-red-black-tree@^1.0.1:
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=

fury-adapter-apib-parser@0.18.1:
version "0.18.1"
resolved "https://registry.yarnpkg.com/fury-adapter-apib-parser/-/fury-adapter-apib-parser-0.18.1.tgz#23d1842c184b84ee9e238fce6d8ec902cde58a5c"
integrity sha512-wKFnUgVJ5/mGNs8rCCu1cVVhfZl1nvgKBwj4z/JXTW6PQuwI8Rp+bn5CGWAyJCXwrElIsfrACnHaJFnHPh0nnQ==
dependencies:
deckardcain "^1.0.0"
drafter.js "^3.2.0"
optionalDependencies:
protagonist "^2.1.0"

fury-adapter-oas3-parser@0.11.1:
version "0.11.1"
resolved "https://registry.yarnpkg.com/fury-adapter-oas3-parser/-/fury-adapter-oas3-parser-0.11.1.tgz#18be4a673e6a3ab3544cf0529baa1ca44f8ee320"
integrity sha512-UqacuC1B4EIr5UNfPDyf88aczNtISZqQXt2ytUtSC07gKdQoqzJUqvjCgFKzSVN0V5Fq1u5OiKNglJiIqfZt4A==
dependencies:
content-type "^1.0.4"
media-typer "^1.0.1"
ramda "0.27.0"
yaml-js "^0.2.3"

fury-adapter-swagger@0.29.0:
version "0.29.0"
resolved "https://registry.yarnpkg.com/fury-adapter-swagger/-/fury-adapter-swagger-0.29.0.tgz#36f486c9579a302058806e1641c83593653c8926"
integrity sha512-ssbYmqSBgx3VOc6lOpf9xr4ZwsFOdbVAF26XVuezlzo3nXInSGf3PGQ7tmRfVfk5MAZmeGvTc+Fzys9U+ouJ5A==
dependencies:
content-type "^1.0.4"
js-yaml "^3.12.0"
json-schema-faker "0.5.0-rc23"
lodash "^4.17.0"
media-typer "^1.0.1"
swagger-parser "^8.0.0"
yaml-js "^0.2.3"
z-schema "^4.1.0"

fury@3.0.0-beta.14:
version "3.0.0-beta.14"
resolved "https://registry.yarnpkg.com/fury/-/fury-3.0.0-beta.14.tgz#cdb0e93a0a8c7a6824c07ab6826123b471ff451c"
Expand Down

0 comments on commit 6ee8760

Please sign in to comment.