From c3c32e496fdfc4be24e71f4c2a67735d6824cfbd Mon Sep 17 00:00:00 2001 From: TAKAYA IDE Date: Wed, 28 Mar 2018 09:01:30 +0000 Subject: [PATCH 1/2] Use path.join() to make filepath --- lib/nodegen.js | 76 ++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/lib/nodegen.js b/lib/nodegen.js index 32137dc..b234164 100644 --- a/lib/nodegen.js +++ b/lib/nodegen.js @@ -21,30 +21,31 @@ var mustache = require('mustache'); var jsStringEscape = require('js-string-escape'); var obfuscator = require('javascript-obfuscator'); var csv = require('csv-string'); +var path = require('path'); var CodeGen = require('swagger-js-codegen').CodeGen; function createCommonFiles(templateDirectory, data) { // Make directories try { - fs.mkdirSync(data.dst + '/' + data.module); + fs.mkdirSync(path.join(data.dst, data.module)); } catch (error) { if (error.code !== 'EEXIST') { console.error(error); } } try { - fs.mkdirSync(data.dst + '/' + data.module + '/icons'); + fs.mkdirSync(path.join(data.dst, data.module, 'icons')); } catch (error) { if (error.code !== 'EEXIST') { console.error(error); } } try { - var icons = fs.readdirSync(templateDirectory + '/icons'); + var icons = fs.readdirSync(path.join(templateDirectory, 'icons')); icons.forEach(function (icon) { try { - var buf = fs.readFileSync(templateDirectory + '/icons/' + icon); - fs.writeFileSync(data.dst + '/' + data.module + '/icons/' + icon, buf); + var buf = fs.readFileSync(path.join(templateDirectory, 'icons', icon)); + fs.writeFileSync(path.join(data.dst, data.module, 'icons', icon), buf); } catch (error) { console.error(error); } @@ -55,17 +56,17 @@ function createCommonFiles(templateDirectory, data) { } } try { - fs.mkdirSync(data.dst + '/' + data.module + '/locales'); + fs.mkdirSync(path.join(data.dst, data.module, 'locales')); } catch (error) { if (error.code !== 'EEXIST') { console.error(error); } } try { - var languages = fs.readdirSync(templateDirectory + '/locales'); + var languages = fs.readdirSync(path.join(templateDirectory, 'locales')); languages.forEach(function (language) { try { - fs.mkdirSync(data.dst + '/' + data.module + '/locales/' + language); + fs.mkdirSync(path.join(data.dst, data.module, 'locales', language)); } catch (error) { if (error.code !== 'EEXIST') { console.error(error); @@ -147,38 +148,38 @@ function function2node(data, options) { createCommonFiles(__dirname + '/../templates/function', data); // Create package.json - var packageTemplate = fs.readFileSync(__dirname + '/../templates/function/package.json.mustache', 'utf-8'); + var packageTemplate = fs.readFileSync(path.join(__dirname, '../templates/function/package.json.mustache'), 'utf-8'); var packageSourceCode = mustache.render(packageTemplate, params); - fs.writeFileSync(data.dst + '/' + data.module + '/package.json', packageSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'package.json'), packageSourceCode); // Create node.js - var nodeTemplate = fs.readFileSync(__dirname + '/../templates/function/node.js.mustache', 'utf-8'); + var nodeTemplate = fs.readFileSync(path.join(__dirname, '../templates/function/node.js.mustache'), 'utf-8'); var nodeSourceCode = mustache.render(nodeTemplate, params); if (options.obfuscate) { nodeSourceCode = obfuscator.obfuscate(nodeSourceCode, { stringArrayEncoding: 'rc4' }); } - fs.writeFileSync(data.dst + '/' + data.module + '/node.js', nodeSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'node.js'), nodeSourceCode); // Create node.html - var htmlTemplate = fs.readFileSync(__dirname + '/../templates/function/node.html.mustache', 'utf-8'); + var htmlTemplate = fs.readFileSync(path.join(__dirname, '../templates/function/node.html.mustache'), 'utf-8'); var htmlSourceCode = mustache.render(htmlTemplate, params); - fs.writeFileSync(data.dst + '/' + data.module + '/node.html', htmlSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'node.html'), htmlSourceCode); // Create README.md - var readmeTemplate = fs.readFileSync(__dirname + '/../templates/function/README.md.mustache', 'utf-8'); + var readmeTemplate = fs.readFileSync(path.join(__dirname, '../templates/function/README.md.mustache'), 'utf-8'); var readmeSourceCode = mustache.render(readmeTemplate, params); - fs.writeFileSync(data.dst + '/' + data.module + '/README.md', readmeSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'README.md'), readmeSourceCode); // Create LICENSE file - var licenseTemplate = fs.readFileSync(__dirname + '/../templates/function/LICENSE.mustache', 'utf-8'); + var licenseTemplate = fs.readFileSync(path.join(__dirname, '../templates/function/LICENSE.mustache'), 'utf-8'); var licenseSourceCode = mustache.render(licenseTemplate, params); - fs.writeFileSync(data.dst + '/' + data.module + '/LICENSE', licenseSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'LICENSE'), licenseSourceCode); if (options.tgz) { runNpmPack(data); - return data.dst + '/' + data.module + '-' + data.version + '.tgz'; + return path.join(data.dst, data.module + '-' + data.version) + '.tgz'; } else { - return data.dst + '/' + data.module; + return path.join(data.dst, data.module); } } } @@ -249,7 +250,7 @@ function swagger2node(data, options) { } } - createCommonFiles(__dirname + '/../templates/swagger', data); + createCommonFiles(path.join(__dirname, '../templates/swagger'), data); // Create Node.js SDK var nodejsSourceCode = CodeGen.getNodeCode({ @@ -261,14 +262,14 @@ function swagger2node(data, options) { if (options.obfuscate) { nodejsSourceCode = obfuscator.obfuscate(nodejsSourceCode, { stringArrayEncoding: 'rc4' }); } - fs.writeFileSync(data.dst + '/' + data.module + '/lib.js', nodejsSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'lib.js'), nodejsSourceCode); // Create package.json var packageSourceCode = CodeGen.getCustomCode({ className: className, swagger: swagger, template: { - class: fs.readFileSync(__dirname + '/../templates/swagger/package.json.mustache', 'utf-8'), + class: fs.readFileSync(path.join(__dirname, '../templates/swagger/package.json.mustache'), 'utf-8'), method: '', type: '' }, @@ -289,7 +290,7 @@ function swagger2node(data, options) { lint: false, beautify: false }); - fs.writeFileSync(data.dst + '/' + data.module + '/package.json', packageSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'package.json'), packageSourceCode); // Mustache helpers var isNotBodyParam = function () { @@ -314,7 +315,7 @@ function swagger2node(data, options) { className: className, swagger: swagger, template: { - class: fs.readFileSync(__dirname + '/../templates/swagger/node.js.mustache', 'utf-8'), + class: fs.readFileSync(path.join(__dirname, '../templates/swagger/node.js.mustache'), 'utf-8'), method: '', type: '' }, @@ -329,14 +330,14 @@ function swagger2node(data, options) { if (options.obfuscate) { nodeSourceCode = obfuscator.obfuscate(nodeSourceCode, { stringArrayEncoding: 'rc4' }); } - fs.writeFileSync(data.dst + '/' + data.module + '/node.js', nodeSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'node.js'), nodeSourceCode); // Create node.html var htmlSourceCode = CodeGen.getCustomCode({ className: className, swagger: swagger, template: { - class: fs.readFileSync(__dirname + '/../templates/swagger/node.html.mustache', 'utf-8'), + class: fs.readFileSync(path.join(__dirname, '../templates/swagger/node.html.mustache'), 'utf-8'), method: '', type: '' }, @@ -349,16 +350,16 @@ function swagger2node(data, options) { lint: false, beautify: false }); - fs.writeFileSync(data.dst + '/' + data.module + '/node.html', htmlSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'node.html'), htmlSourceCode); // Create language files - var languages = fs.readdirSync(__dirname + '/../templates/swagger/locales'); + var languages = fs.readdirSync(path.join(__dirname, '../templates/swagger/locales')); languages.forEach(function (language) { var languageFileSourceCode = CodeGen.getCustomCode({ className: className, swagger: swagger, template: { - class: fs.readFileSync(__dirname + '/../templates/swagger/locales/' + language + '/node.json.mustache', 'utf-8'), + class: fs.readFileSync(path.join(__dirname, '../templates/swagger/locales', language, 'node.json.mustache'), 'utf-8'), method: '', type: '' }, @@ -368,7 +369,8 @@ function swagger2node(data, options) { lint: false, beautify: false }); - fs.writeFileSync(data.dst + '/' + data.module + '/locales/' + language + '/node.json', JSON.stringify(JSON.parse(languageFileSourceCode), null, 4)); + fs.writeFileSync(path.join(data.dst, data.module, 'locales', language, 'node.json'), + JSON.stringify(JSON.parse(languageFileSourceCode), null, 4)); }); // Create README.md @@ -376,7 +378,7 @@ function swagger2node(data, options) { className: className, swagger: swagger, template: { - class: fs.readFileSync(__dirname + '/../templates/swagger/README.md.mustache', 'utf-8'), + class: fs.readFileSync(path.join(__dirname, '../templates/swagger/README.md.mustache'), 'utf-8'), method: '', type: '' }, @@ -387,7 +389,7 @@ function swagger2node(data, options) { lint: false, beautify: false }); - fs.writeFileSync(data.dst + '/' + data.module + '/README.md', readmeSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'README.md'), readmeSourceCode); // Create LICENSE file var licenseSourceCode = CodeGen.getCustomCode({ @@ -395,7 +397,7 @@ function swagger2node(data, options) { className: className, swagger: swagger, template: { - class: fs.readFileSync(__dirname + '/../templates/swagger/LICENSE.mustache', 'utf-8'), + class: fs.readFileSync(path.join(__dirname, '../templates/swagger/LICENSE.mustache'), 'utf-8'), method: '', type: '' }, @@ -418,13 +420,13 @@ function swagger2node(data, options) { lint: false, beautify: false }); - fs.writeFileSync(data.dst + '/' + data.module + '/LICENSE', licenseSourceCode); + fs.writeFileSync(path.join(data.dst, data.module, 'LICENSE'), licenseSourceCode); if (options.tgz) { runNpmPack(data); - return data.dst + '/' + data.module + '-' + data.version + '.tgz'; + return path.join(data.dst, data.module + '-' + data.version) + '.tgz'; } else { - return data.dst + '/' + data.module; + return path.join(data.dst, data.module); } } From d61b4f7a5f89af4cdb9725847f66de0e96b11d85 Mon Sep 17 00:00:00 2001 From: TAKAYA IDE Date: Fri, 30 Mar 2018 00:50:23 +0000 Subject: [PATCH 2/2] fix to include .tgz in path.join --- lib/nodegen.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/nodegen.js b/lib/nodegen.js index b234164..cb9cc32 100644 --- a/lib/nodegen.js +++ b/lib/nodegen.js @@ -177,7 +177,7 @@ function function2node(data, options) { if (options.tgz) { runNpmPack(data); - return path.join(data.dst, data.module + '-' + data.version) + '.tgz'; + return path.join(data.dst, data.module + '-' + data.version + '.tgz'); } else { return path.join(data.dst, data.module); } @@ -424,7 +424,7 @@ function swagger2node(data, options) { if (options.tgz) { runNpmPack(data); - return path.join(data.dst, data.module + '-' + data.version) + '.tgz'; + return path.join(data.dst, data.module + '-' + data.version + '.tgz'); } else { return path.join(data.dst, data.module); }