- Better import sorter

This commit is contained in:
Ferdi Koomen 2020-03-06 21:27:45 +01:00
parent e32c4be5d4
commit ca2174c64b
45 changed files with 61 additions and 44 deletions

View File

@ -11,7 +11,7 @@
"jest": true
},
"plugins": [
"sort-imports-es6-autofix"
"simple-import-sort"
],
"rules": {
"@typescript-eslint/no-explicit-any": 0,
@ -19,7 +19,9 @@
"@typescript-eslint/no-non-null-assertion": 0,
"@typescript-eslint/ban-ts-ignore": 0,
"@typescript-eslint/explicit-function-return-type": 0,
"sort-imports-es6-autofix/sort-imports-es6": "error",
"sort-imports": "off",
"import/order": "off",
"simple-import-sort/sort": "error",
"prettier/prettier": ["error"]
}
}

View File

@ -85,7 +85,7 @@
"eslint": "6.8.0",
"eslint-config-prettier": "6.10.0",
"eslint-plugin-prettier": "3.1.2",
"eslint-plugin-sort-imports-es6-autofix": "0.5.0",
"eslint-plugin-simple-import-sort": "5.0.1",
"jest": "25.1.0",
"jest-cli": "25.1.0",
"prettier": "1.19.1",

View File

@ -1,8 +1,8 @@
import { OpenApiVersion, getOpenApiVersion } from './utils/getOpenApiVersion';
import { getOpenApiSpec } from './utils/getOpenApiSpec';
import { isString } from './utils/isString';
import { parse as parseV2 } from './openApi/v2';
import { parse as parseV3 } from './openApi/v3';
import { getOpenApiSpec } from './utils/getOpenApiSpec';
import { getOpenApiVersion, OpenApiVersion } from './utils/getOpenApiVersion';
import { isString } from './utils/isString';
import { postProcessClient } from './utils/postProcessClient';
import { readHandlebarsTemplates } from './utils/readHandlebarsTemplates';
import { writeClient } from './utils/writeClient';

View File

@ -2,8 +2,8 @@ import { Client } from '../../client/interfaces/Client';
import { OpenApi } from './interfaces/OpenApi';
import { getModels } from './parser/getModels';
import { getServer } from './parser/getServer';
import { getServiceVersion } from './parser/getServiceVersion';
import { getServices } from './parser/getServices';
import { getServiceVersion } from './parser/getServiceVersion';
/**
* Parse the OpenAPI specification to a Client model that contains

View File

@ -1,7 +1,7 @@
import { WithEnumExtension } from './Extensions/WithEnumExtension';
import { OpenApiItems } from './OpenApiItems';
import { OpenApiReference } from './OpenApiReference';
import { OpenApiSchema } from './OpenApiSchema';
import { WithEnumExtension } from './Extensions/WithEnumExtension';
/**
* https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#parameterObject

View File

@ -1,8 +1,8 @@
import { Dictionary } from '../../../utils/types';
import { WithEnumExtension } from './Extensions/WithEnumExtension';
import { OpenApiExternalDocs } from './OpenApiExternalDocs';
import { OpenApiReference } from './OpenApiReference';
import { OpenApiXml } from './OpenApiXml';
import { WithEnumExtension } from './Extensions/WithEnumExtension';
/**
* https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#schemaObject

View File

@ -1,4 +1,5 @@
import { EOL } from 'os';
import { getComment } from './getComment';
describe('getComment', () => {

View File

@ -1,6 +1,6 @@
import { Operation } from '../../../client/interfaces/Operation';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiOperation } from '../interfaces/OpenApiOperation';
import { Operation } from '../../../client/interfaces/Operation';
import { getComment } from './getComment';
import { getOperationErrors } from './getOperationErrors';
import { getOperationName } from './getOperationName';

View File

@ -1,6 +1,6 @@
import { OperationParameter } from '../../../client/interfaces/OperationParameter';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiParameter } from '../interfaces/OpenApiParameter';
import { OperationParameter } from '../../../client/interfaces/OperationParameter';
import { PrimaryType } from './constants';
import { extendEnum } from './extendEnum';
import { getComment } from './getComment';

View File

@ -1,5 +1,5 @@
import { OpenApiParameter } from '../interfaces/OpenApiParameter';
import { OperationParameter } from '../../../client/interfaces/OperationParameter';
import { OpenApiParameter } from '../interfaces/OpenApiParameter';
export function getOperationParameterDefault(parameter: OpenApiParameter, operationParameter: OperationParameter): string | null {
if (parameter.default === null) {

View File

@ -1,6 +1,6 @@
import { OperationParameters } from '../../../client/interfaces/OperationParameters';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiParameter } from '../interfaces/OpenApiParameter';
import { OperationParameters } from '../../../client/interfaces/OperationParameters';
import { getOperationParameter } from './getOperationParameter';
import { getRef } from './getRef';
import { sortByRequired } from './sortByRequired';

View File

@ -1,6 +1,6 @@
import { OperationResponse } from '../../../client/interfaces/OperationResponse';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiResponse } from '../interfaces/OpenApiResponse';
import { OperationResponse } from '../../../client/interfaces/OperationResponse';
import { PrimaryType } from './constants';
import { getComment } from './getComment';
import { getModel } from './getModel';

View File

@ -1,7 +1,7 @@
import { OperationResponse } from '../../../client/interfaces/OperationResponse';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiResponse } from '../interfaces/OpenApiResponse';
import { OpenApiResponses } from '../interfaces/OpenApiResponses';
import { OperationResponse } from '../../../client/interfaces/OperationResponse';
import { getOperationResponse } from './getOperationResponse';
import { getOperationResponseCode } from './getOperationResponseCode';
import { getRef } from './getRef';

View File

@ -1,6 +1,6 @@
import { Method } from './constants';
import { OpenApi } from '../interfaces/OpenApi';
import { Service } from '../../../client/interfaces/Service';
import { OpenApi } from '../interfaces/OpenApi';
import { Method } from './constants';
import { getOperation } from './getOperation';
/**

View File

@ -1,5 +1,5 @@
import { PrimaryType } from './constants';
import { Type } from '../../../client/interfaces/Type';
import { PrimaryType } from './constants';
import { getMappedType, hasMappedType } from './getMappedType';
import { stripNamespace } from './stripNamespace';

View File

@ -2,8 +2,8 @@ import { Client } from '../../client/interfaces/Client';
import { OpenApi } from './interfaces/OpenApi';
import { getModels } from './parser/getModels';
import { getServer } from './parser/getServer';
import { getServiceVersion } from './parser/getServiceVersion';
import { getServices } from './parser/getServices';
import { getServiceVersion } from './parser/getServiceVersion';
/**
* Parse the OpenAPI specification to a Client model that contains

View File

@ -1,9 +1,9 @@
import { Dictionary } from '../../../utils/types';
import { WithEnumExtension } from './Extensions/WithEnumExtension';
import { OpenApiDiscriminator } from './OpenApiDiscriminator';
import { OpenApiExternalDocs } from './OpenApiExternalDocs';
import { OpenApiReference } from './OpenApiReference';
import { OpenApiXml } from './OpenApiXml';
import { WithEnumExtension } from './Extensions/WithEnumExtension';
/**
* https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schemaObject

View File

@ -1,4 +1,5 @@
import { EOL } from 'os';
import { getComment } from './getComment';
describe('getComment', () => {

View File

@ -1,8 +1,8 @@
import { ContentType } from './constants';
import { Dictionary } from '../../../utils/types';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiMediaType } from '../interfaces/OpenApiMediaType';
import { OpenApiSchema } from '../interfaces/OpenApiSchema';
import { ContentType } from './constants';
export function getContent(openApi: OpenApi, content: Dictionary<OpenApiMediaType>): OpenApiSchema | null {
/* prettier-ignore */

View File

@ -1,6 +1,6 @@
import { Operation } from '../../../client/interfaces/Operation';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiOperation } from '../interfaces/OpenApiOperation';
import { Operation } from '../../../client/interfaces/Operation';
import { getComment } from './getComment';
import { getOperationErrors } from './getOperationErrors';
import { getOperationName } from './getOperationName';

View File

@ -1,6 +1,6 @@
import { OperationParameter } from '../../../client/interfaces/OperationParameter';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiParameter } from '../interfaces/OpenApiParameter';
import { OperationParameter } from '../../../client/interfaces/OperationParameter';
import { PrimaryType } from './constants';
import { getComment } from './getComment';
import { getModel } from './getModel';

View File

@ -1,6 +1,6 @@
import { OperationParameters } from '../../../client/interfaces/OperationParameters';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiParameter } from '../interfaces/OpenApiParameter';
import { OperationParameters } from '../../../client/interfaces/OperationParameters';
import { getOperationParameter } from './getOperationParameter';
import { getRef } from './getRef';
import { sortByRequired } from './sortByRequired';

View File

@ -1,6 +1,6 @@
import { OperationParameter } from '../../../client/interfaces/OperationParameter';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiRequestBody } from '../interfaces/OpenApiRequestBody';
import { OperationParameter } from '../../../client/interfaces/OperationParameter';
import { PrimaryType } from './constants';
import { getComment } from './getComment';
import { getContent } from './getContent';

View File

@ -1,6 +1,6 @@
import { OperationResponse } from '../../../client/interfaces/OperationResponse';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiResponse } from '../interfaces/OpenApiResponse';
import { OperationResponse } from '../../../client/interfaces/OperationResponse';
import { PrimaryType } from './constants';
import { getComment } from './getComment';
import { getContent } from './getContent';

View File

@ -1,7 +1,7 @@
import { OperationResponse } from '../../../client/interfaces/OperationResponse';
import { OpenApi } from '../interfaces/OpenApi';
import { OpenApiResponse } from '../interfaces/OpenApiResponse';
import { OpenApiResponses } from '../interfaces/OpenApiResponses';
import { OperationResponse } from '../../../client/interfaces/OperationResponse';
import { getOperationResponse } from './getOperationResponse';
import { getOperationResponseCode } from './getOperationResponseCode';
import { getRef } from './getRef';

View File

@ -1,6 +1,6 @@
import { Method } from './constants';
import { OpenApi } from '../interfaces/OpenApi';
import { Service } from '../../../client/interfaces/Service';
import { OpenApi } from '../interfaces/OpenApi';
import { Method } from './constants';
import { getOperation } from './getOperation';
/**

View File

@ -1,5 +1,5 @@
import { PrimaryType } from './constants';
import { Type } from '../../../client/interfaces/Type';
import { PrimaryType } from './constants';
import { getMappedType, hasMappedType } from './getMappedType';
import { stripNamespace } from './stripNamespace';

View File

@ -1,4 +1,5 @@
import * as fs from 'fs';
import { getOpenApiSpec } from './getOpenApiSpec';
jest.mock('fs');

View File

@ -1,6 +1,6 @@
import * as fs from 'fs';
import * as path from 'path';
import * as yaml from 'js-yaml';
import * as path from 'path';
/**
* Check if given file exists and try to read the content as string.

View File

@ -1,4 +1,5 @@
import * as fs from 'fs';
import { readHandlebarsTemplate } from './readHandlebarsTemplate';
jest.mock('fs');

View File

@ -1,5 +1,5 @@
import * as Handlebars from 'handlebars';
import * as fs from 'fs';
import * as Handlebars from 'handlebars';
/**
* Read and compile the Handlebars template.

View File

@ -1,5 +1,6 @@
import * as fs from 'fs';
import * as glob from 'glob';
import { readHandlebarsTemplates } from './readHandlebarsTemplates';
jest.mock('fs');

View File

@ -1,6 +1,7 @@
import * as Handlebars from 'handlebars';
import * as glob from 'glob';
import * as Handlebars from 'handlebars';
import * as path from 'path';
import { readHandlebarsTemplate } from './readHandlebarsTemplate';
import { registerHandlebarHelpers } from './registerHandlebarHelpers';

View File

@ -2,6 +2,7 @@ import * as fs from 'fs';
import * as glob from 'glob';
import * as mkdirp from 'mkdirp';
import * as rimraf from 'rimraf';
import { Client } from '../client/interfaces/Client';
import { HttpClient } from '../index';
import { Templates } from './readHandlebarsTemplates';

View File

@ -3,6 +3,7 @@ import * as glob from 'glob';
import * as mkdirp from 'mkdirp';
import * as path from 'path';
import * as rimraf from 'rimraf';
import { Client } from '../client/interfaces/Client';
import { HttpClient } from '../index';
import { Templates } from './readHandlebarsTemplates';

View File

@ -1,5 +1,6 @@
import * as fs from 'fs';
import * as glob from 'glob';
import { Client } from '../client/interfaces/Client';
import { Templates } from './readHandlebarsTemplates';
import { writeClientIndex } from './writeClientIndex';

View File

@ -1,9 +1,10 @@
import * as fs from 'fs';
import * as path from 'path';
import { Client } from '../client/interfaces/Client';
import { Templates } from './readHandlebarsTemplates';
import { getModelNames } from './getModelNames';
import { getServiceNames } from './getServiceNames';
import { Templates } from './readHandlebarsTemplates';
/**
* Generate the OpenAPI client index file using the Handlebar template and write it to disk.

View File

@ -1,4 +1,5 @@
import * as fs from 'fs';
import { Model } from '../client/interfaces/Model';
import { Templates } from './readHandlebarsTemplates';
import { writeClientModels } from './writeClientModels';

View File

@ -1,8 +1,9 @@
import * as fs from 'fs';
import * as path from 'path';
import { Model } from '../client/interfaces/Model';
import { Templates } from './readHandlebarsTemplates';
import { format } from './format';
import { Templates } from './readHandlebarsTemplates';
/**
* Generate Models using the Handlebar template and write to disk.

View File

@ -1,4 +1,5 @@
import * as fs from 'fs';
import { Model } from '../client/interfaces/Model';
import { Templates } from './readHandlebarsTemplates';
import { writeClientModels } from './writeClientModels';

View File

@ -1,8 +1,9 @@
import * as fs from 'fs';
import * as path from 'path';
import { Model } from '../client/interfaces/Model';
import { Templates } from './readHandlebarsTemplates';
import { format } from './format';
import { Templates } from './readHandlebarsTemplates';
/**
* Generate Schemas using the Handlebar template and write to disk.

View File

@ -1,4 +1,5 @@
import * as fs from 'fs';
import { Service } from '../client/interfaces/Service';
import { Templates } from './readHandlebarsTemplates';
import { writeClientServices } from './writeClientServices';

View File

@ -1,8 +1,9 @@
import * as fs from 'fs';
import * as path from 'path';
import { Service } from '../client/interfaces/Service';
import { Templates } from './readHandlebarsTemplates';
import { format } from './format';
import { Templates } from './readHandlebarsTemplates';
/**
* Generate Services using the Handlebar template and write to disk.

View File

@ -1,5 +1,6 @@
import * as fs from 'fs';
import * as path from 'path';
import { Client } from '../client/interfaces/Client';
import { HttpClient } from '../index';
import { Templates } from './readHandlebarsTemplates';

View File

@ -1889,12 +1889,10 @@ eslint-plugin-prettier@3.1.2:
dependencies:
prettier-linter-helpers "^1.0.0"
eslint-plugin-sort-imports-es6-autofix@0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-sort-imports-es6-autofix/-/eslint-plugin-sort-imports-es6-autofix-0.5.0.tgz#dabae09a457eac6e95c52d8edd7855f576d014b6"
integrity sha512-KEX2Uz6bAs67jDYiH/OT1xz1E7AzIJJOIRg1F7OnFAfUVlpws3ldSZj5oZySRHfoVkWqDX9GGExYxckdLrWhwg==
dependencies:
eslint "^6.2.2"
eslint-plugin-simple-import-sort@5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-5.0.1.tgz#fd47d3ed2af30db3dd2cadaed285ad510dde479b"
integrity sha512-s6Hjp9rcIDYT1h7tuTulblbY7+XQNZK+014uUkNJSKRXEHZO2i7CTr16HOpfgD9HDnUOpl0fwphPsr0oxZqgGg==
eslint-scope@^5.0.0:
version "5.0.0"
@ -1916,7 +1914,7 @@ eslint-visitor-keys@^1.1.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
eslint@6.8.0, eslint@^6.2.2:
eslint@6.8.0:
version "6.8.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==