code formatted

This commit is contained in:
Filip Rojek 2022-07-30 22:44:24 +02:00
parent 564cd09d8b
commit 03fbb74171
23 changed files with 266 additions and 261 deletions

View File

@ -3,27 +3,16 @@
"es2021": true,
"node": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},
"plugins": [
"@typescript-eslint"
],
"plugins": ["@typescript-eslint"],
"rules": {
"indent": [
"error",
"tab"
],
"linebreak-style": [
"error",
"unix"
],
"indent": ["error", "tab"],
"linebreak-style": ["error", "unix"],
"quotes": [
"error",
"single",
@ -31,9 +20,6 @@
"allowTemplateLiterals": true
}
],
"semi": [
"error",
"never"
]
"semi": ["error", "never"]
}
}

15
.prettierrc Normal file
View File

@ -0,0 +1,15 @@
{
"tabWidth": 4,
"useTabs": true,
"singleQuote": true,
"semi": false,
"trailingComma": "none",
"jsxSingleQuote": true,
"jsxBracketSameLine": true,
"printWidth": 200,
"bracketSpacing": true,
"vueIndentScriptAndStyle": true,
"arrowParens": "always",
"bracketSameLine": false,
"endOfLine": "lf"
}

View File

@ -1,22 +1,29 @@
# Nork
Simple node.js tool that extends express projects.
- [About](#about)
- [Installation](#installation)
- [How to use](#how-to-use)
- [About](#about)
- [Installation](#installation)
- [How to use](#how-to-use)
## About
The point of this tool is to add to express some feeling of php framework Laravel. Primarily get simply express app into MVC architecture.
## Installation
```
npm install -g nork
```
This will install nork globally. If you would like to install nork for only one project, you can also install it locally. For local installation:
```
npm install nork
```
npm install nork
```
## How to use
```
Usage: nork <command> [options]

View File

@ -1 +1 @@
{"lang":"ts"}
{ "lang": "ts" }

View File

@ -14,7 +14,8 @@
"copy-assets": "ts-node src/utils/copyAssets",
"build": "npm-run-all clean tsc copy-assets",
"test": "mocha --config .mocharc.json --watch src/**/*.test.ts",
"prepublish": "npm-run-all build"
"prepublish": "npm-run-all build",
"format": "npx prettier --write ."
},
"keywords": [
"node",
@ -25,7 +26,7 @@
"author": "Filip Rojek",
"license": "MIT",
"dependencies": {
"colors":"1.4.0",
"colors": "1.4.0",
"fs-extra": "^10.0.0",
"inquirer": "^8.1.2",
"pad": "^3.2.0"
@ -42,6 +43,7 @@
"eslint": "^8.3.0",
"mocha": "^9.1.3",
"npm-run-all": "^4.1.5",
"prettier": "^2.7.1",
"rimraf": "^3.0.2",
"shelljs": "^0.8.5",
"ts-node": "^10.4.0",

View File

@ -1,6 +1,7 @@
/* spell-checker: disable */
/_ spell-checker: disable _/
# Todo:
- [ ] auth jwt refresh token based system
- https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/
- [ ] version of nork control
@ -9,8 +10,8 @@
- [ ] vyzadovat aktualni verzi 3.#.# pro make commandy (pouzivaly se jiny predtim soubory)
- [ ] moznost vytvorit projekt bez db
### 11-24-2021
- zacal jsem predelavat nork do OOP
- co jsem udelal:
- [x] --help
@ -23,14 +24,16 @@
- zatim netestovana funkcnost
### 1-10-2022
- dodelal jsem create a otestoval ho
- [x] create
### 7-30-2022
- norkconfig se generuje lepe a actually ho pouzivam
- pri vytvareni projektu je mozne vybrat si orm (mongoose & sequlize)
- default modely pro db se kopiruji na zaklade parametru db z norkconfigu
- updatnutej ts skeleton
- dropnul jsem support pro js
- version update: 3.0.5
- norkconfig se generuje lepe a actually ho pouzivam
- pri vytvareni projektu je mozne vybrat si orm (mongoose & sequlize)
- default modely pro db se kopiruji na zaklade parametru db z norkconfigu
- updatnutej ts skeleton
- dropnul jsem support pro js
- version update: 3.0.5

View File

@ -14,7 +14,7 @@ export default class Create {
{
type: 'input',
name: 'project_name',
message: 'Enter project name:',
message: 'Enter project name:'
},
{
type: 'list',
@ -22,8 +22,8 @@ export default class Create {
name: 'lang',
choices: [
{ name: 'Typescript', value: 'ts' },
{ name: 'Javascript - DEPRECATED', value: 'js' },
],
{ name: 'Javascript - DEPRECATED', value: 'js' }
]
},
{
type: 'list',
@ -32,24 +32,24 @@ export default class Create {
choices: [
{ name: 'MongoDB - Mongoose', value: { db: 'mongodb', orm: 'mongoose' } },
{ name: 'MySQL - Sequelize', value: { db: 'mysql', orm: 'sequelize' } },
{ name: 'PostgreSQL - Sequelize', value: { db: 'postgresql', orm: 'sequelize' } },
],
{ name: 'PostgreSQL - Sequelize', value: { db: 'postgresql', orm: 'sequelize' } }
]
},
{
type: 'input',
name: 'author',
message: 'Enter your name:',
message: 'Enter your name:'
},
{
type: 'input',
name: 'email',
message: 'Enter your email:',
message: 'Enter your email:'
},
{
type: 'input',
name: 'website',
message: 'Enter your website:',
},
message: 'Enter your website:'
}
]
// remove first question if project name is already known
if (projectName) questions.shift()
@ -61,7 +61,7 @@ export default class Create {
author: answers.author,
database: answers.db,
website: answers.website,
email: answers.email,
email: answers.email
}
// copy skeleton to new project
@ -76,7 +76,7 @@ export default class Create {
const pkgJson = fs.readJsonSync(path.join(projectPath, 'package.json'))
pkgJson.name = data.project_name
pkgJson.author = `${data.author} <${data.email}> (${data.website})`
fs.writeFile(path.join(projectPath, 'package.json'), JSON.stringify(pkgJson, null, 2), err => {
fs.writeFile(path.join(projectPath, 'package.json'), JSON.stringify(pkgJson, null, 2), (err) => {
if (err) return global.logError(err.message)
})

View File

@ -10,6 +10,6 @@ export interface Questions {
{
name: string
value: string
},
}
]
}

View File

@ -4,5 +4,5 @@ const root_get = (req, res) => {
}
module.exports = {
root_get,
root_get
}

View File

@ -5,12 +5,12 @@ const modelSchema = new Schema(
{
title: {
type: String,
required: true,
},
required: true
}
},
{
timestamps: true,
},
timestamps: true
}
)
const ModelName = mongoose.model('ModelName', modelSchema)

View File

@ -4,12 +4,12 @@ const modelSchema = new Schema<any>(
{
title: {
type: String,
required: true,
},
required: true
}
},
{
timestamps: true,
},
timestamps: true
}
)
export default model('ModelName', modelSchema)

View File

@ -13,8 +13,8 @@ export default class Setup {
name: 'lang',
choices: [
{ name: 'Typescript', value: 'ts' },
{ name: 'Javascript', value: 'js' },
],
{ name: 'Javascript', value: 'js' }
]
}
const answers = await inquirer.prompt(Object(questions))
fs.writeJsonSync(path.join(process.cwd(), './norkconfig.json'), answers)

View File

@ -15,13 +15,13 @@ const app = express()
const dbURI = process.env.DB_URI
mongoose
.connect(dbURI, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true })
.then(result => {
.then((result) => {
console.log('connected to db')
app.listen(port, () => {
console.log(`server is running on http://localhost:${port}`)
})
})
.catch(err => {
.catch((err) => {
console.log(err)
})

View File

@ -4,5 +4,5 @@ const root_get = (req, res) => {
}
module.exports = {
root_get,
root_get
}

View File

@ -10,26 +10,26 @@ Instance.init(
type: DataTypes.UUID,
primaryKey: true,
allowNull: false,
unique: true,
unique: true
},
username: {
type: DataTypes.STRING,
allowNull: false,
allowNull: false
},
password: {
type: DataTypes.STRING,
allowNull: false,
allowNull: false
},
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
},
unique: true
}
},
{
sequelize: db,
tableName: path.basename(__filename).split('.')[0].toLowerCase(),
},
tableName: path.basename(__filename).split('.')[0].toLowerCase()
}
)
export default Instance

View File

@ -1,23 +1,15 @@
{
"compilerOptions": {
"target": "es6", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
"module": "commonjs", /* Specify what module code is generated. */
"outDir": "./dist", /* Specify an output folder for all emitted files. */
"rootDir": "./src", /* Specify the root folder within your source files. */
"strict": true, /* Enable all strict type-checking options. */
"baseUrl": "./", /* Base directory to resolve non-absolute module names. */
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */
"skipLibCheck": true, /* Skip type checking all .d.ts files. */
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
"declaration": true,
"target": "es6" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
"module": "commonjs" /* Specify what module code is generated. */,
"outDir": "./dist" /* Specify an output folder for all emitted files. */,
"rootDir": "./src" /* Specify the root folder within your source files. */,
"strict": true /* Enable all strict type-checking options. */,
"baseUrl": "./" /* Base directory to resolve non-absolute module names. */,
"esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */,
"skipLibCheck": true /* Skip type checking all .d.ts files. */,
"forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
"declaration": true
},
"exclude": [
"_old",
"node_modules",
"src/make-files",
"src/skeletons",
"src/tests",
"src/interfaces",
"src/utils"
]
"exclude": ["_old", "node_modules", "src/make-files", "src/skeletons", "src/tests", "src/interfaces", "src/utils"]
}