mirror of
https://github.com/valitydev/frontend-openapi-generator-cli.git
synced 2024-11-06 01:25:21 +00:00
TD-253: Init
This commit is contained in:
commit
d321bd77e8
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/node_modules
|
5
.idea/.gitignore
vendored
Normal file
5
.idea/.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
6
.idea/jsLibraryMappings.xml
Normal file
6
.idea/jsLibraryMappings.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JavaScriptLibraryMappings">
|
||||||
|
<includedPredefinedLibrary name="Node.js Core" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/openapi-cli.iml" filepath="$PROJECT_DIR$/.idea/openapi-cli.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
12
.idea/openapi-cli.iml
Normal file
12
.idea/openapi-cli.iml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
7
.idea/prettier.xml
Normal file
7
.idea/prettier.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="PrettierConfiguration">
|
||||||
|
<option name="myRunOnSave" value="true" />
|
||||||
|
<option name="myRunOnReformat" value="true" />
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/thriftCompiler.xml
Normal file
6
.idea/thriftCompiler.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ThriftCompiler">
|
||||||
|
<compilers />
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
3
.prettierignore
Normal file
3
.prettierignore
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
package.json
|
||||||
|
package-lock.json
|
||||||
|
node_modules
|
5
.prettierrc
Normal file
5
.prettierrc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"printWidth": 120,
|
||||||
|
"singleQuote": true,
|
||||||
|
"tabWidth": 4
|
||||||
|
}
|
61
lib/bin.js
Executable file
61
lib/bin.js
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
const shell = require('shelljs');
|
||||||
|
const sade = require('sade');
|
||||||
|
const path = require('path');
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
const PACKAGE_JSON = require('../package.json');
|
||||||
|
const CLI_NAME = Object.keys(PACKAGE_JSON.bin)[0];
|
||||||
|
|
||||||
|
const prog = sade(CLI_NAME).describe('OpenAPI generator CLI').version(PACKAGE_JSON.version);
|
||||||
|
|
||||||
|
prog.command('generate <src>')
|
||||||
|
.describe('Generate OpenAPI for Angular')
|
||||||
|
.option('-o, --output')
|
||||||
|
.option('-n, --ng-version')
|
||||||
|
.action((src, opts) => {
|
||||||
|
const angularVersion = opts.n || '~13.0.0';
|
||||||
|
const openapiGeneratorCliVersion = opts.n || '~2.4.0';
|
||||||
|
const outputDir = opts.o || 'lib';
|
||||||
|
|
||||||
|
const ngCommand = `npm_config_yes=true npx -p @angular/cli@${angularVersion} ng`;
|
||||||
|
const openapiGeneratorCliCommand = `npx @openapitools/openapi-generator-cli@${openapiGeneratorCliVersion}`;
|
||||||
|
const generatedDir = CLI_NAME;
|
||||||
|
const packageJson = require(path.join(process.cwd(), 'package.json'));
|
||||||
|
const libraryName = packageJson.name;
|
||||||
|
const libraryPath = path.join(generatedDir, 'projects', libraryName.replace('@', ''));
|
||||||
|
|
||||||
|
shell.rm('-rf', generatedDir);
|
||||||
|
shell.rm('-rf', outputDir);
|
||||||
|
shell.exec(`${ngCommand} new ${generatedDir} --no-create-application`);
|
||||||
|
shell.cd(generatedDir);
|
||||||
|
shell.exec(`${ngCommand} generate library ${libraryName}`);
|
||||||
|
shell.cd(`..`);
|
||||||
|
shell.rm('-rf', path.join(libraryPath, 'src/lib'));
|
||||||
|
fs.writeFileSync(path.join(libraryPath, 'src/public-api.ts'), 'export * from "./lib";');
|
||||||
|
shell.exec(
|
||||||
|
`${openapiGeneratorCliCommand} generate -i ${src} -g typescript-angular -o ${path.join(
|
||||||
|
libraryPath,
|
||||||
|
'src/lib'
|
||||||
|
)} -p=fileNaming=kebab-case,useSingleRequestParameter=true`
|
||||||
|
);
|
||||||
|
shell.cd(generatedDir);
|
||||||
|
shell.exec(`npm run build`);
|
||||||
|
shell.cd('..');
|
||||||
|
shell.mv(path.join(generatedDir, 'dist', libraryName.replace('@', '')), outputDir);
|
||||||
|
let resultPackageJson = require(path.join(process.cwd(), outputDir, 'package.json'));
|
||||||
|
resultPackageJson = {
|
||||||
|
...resultPackageJson,
|
||||||
|
version: packageJson.version || resultPackageJson.version,
|
||||||
|
license: packageJson.license || 'MIT',
|
||||||
|
publishConfig: packageJson.publishConfig || {
|
||||||
|
access: 'public',
|
||||||
|
registry: 'https://registry.npmjs.org/',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
fs.writeFileSync(path.join(outputDir, 'package.json'), JSON.stringify(resultPackageJson, null, 2));
|
||||||
|
shell.rm('-rf', generatedDir);
|
||||||
|
});
|
||||||
|
|
||||||
|
prog.parse(process.argv);
|
2116
package-lock.json
generated
Normal file
2116
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
22
package.json
Normal file
22
package.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "@vality/openapi-generator-cli",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "lib/index.js",
|
||||||
|
"bin": {
|
||||||
|
"vality-openapi": "lib/bin.js"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"author": "Vality",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"devDependencies": {
|
||||||
|
"prettier": "^2.6.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@openapitools/openapi-generator-cli": "^2.4.26",
|
||||||
|
"sade": "^1.8.1",
|
||||||
|
"shelljs": "^0.8.5"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user