next-format
Advanced tools
Comparing version 0.0.8 to 0.0.9
#!/usr/bin/env node | ||
const next = require('../') | ||
const fs = require('fs') | ||
const path = require('path') | ||
const walker = dir => { | ||
const many = [] | ||
const walkSync = d => { | ||
if (/node_modules/g.test(d)) { | ||
return | ||
} | ||
const files = fs.readdirSync(d) | ||
files.forEach(file => { | ||
const p = `${d}/${file}` | ||
if (fs.statSync(p).isDirectory()) { | ||
walkSync(p) | ||
} else { | ||
many.push(path.relative(dir, p)) | ||
} | ||
}) | ||
} | ||
walkSync(dir) | ||
return many | ||
} | ||
const read = file => fs.readFileSync(file, 'UTF-8') | ||
const write = file => | ||
content => fs.writeFileSync(file, content, 'UTF-8', { flags: 'w+' }) | ||
const format = file => write(file)(next(read(file))) | ||
walker(process.cwd()).filter(f => f.toLowerCase().endsWith('.js')).map(format) | ||
require('../src/main') |
41
index.js
@@ -1,40 +0,1 @@ | ||
const prettier = require('prettier') | ||
const prettify = source => | ||
prettier.format(source, { | ||
printWidth: 80, | ||
tabWidth: 2, | ||
singleQuote: true, | ||
trailingComma: 'es5', | ||
bracketSpacing: true, | ||
jsxBracketSameLine: true, | ||
parser: 'babylon', | ||
}) | ||
const alwaysAString = (s = '') => s | ||
const compose = (...args) => a => args.reduceRight((acc, func) => func(acc), a) | ||
const replace = (exp, repl) => s => s.replace(exp, repl) | ||
const removeSemi = replace(/[ ;]+([\n\r])/gmi, '$1') | ||
const moveImportantSemi = replace(/(;)([\n\r ]*)([\[`\(])/gmi, '$2$1$3') | ||
const endParenthesisRegex = /(\))[\n\r ]+(\))/gmi | ||
const formatEndParenthesis = source => | ||
!endParenthesisRegex.exec(source) | ||
? source | ||
: formatEndParenthesis(source.replace(endParenthesisRegex, '$1$2')) | ||
module.exports = compose( | ||
formatEndParenthesis, | ||
removeSemi, | ||
moveImportantSemi, | ||
alwaysAString, | ||
prettify | ||
) | ||
//const insertImportantSemi = replace(/([^=>\|\(,\{\[+\-&]\n^[ ]*)([\(\[`])/gmi, '$1;$2') | ||
//const removeSemiAfterComment = replace(/(^[ ]+?([/*]){2,2}.+?(?!;)[\n\r]{1,2}[ ]+?);/gmi, '$1') | ||
module.exports = {} |
{ | ||
"name": "next-format", | ||
"version": "0.0.8", | ||
"version": "0.0.9", | ||
"description": "Opinionated es-next formatter inspired by golang fmt.", | ||
@@ -20,4 +20,4 @@ "homepage": "https://github.com/pre63/next-format", | ||
"dependencies": { | ||
"prettier": "^0.22.0" | ||
"prettier": "^1.0.2" | ||
} | ||
} |
@@ -13,3 +13,3 @@ Sould format and object assignation | ||
b, | ||
x, | ||
x | ||
}) |
@@ -13,2 +13,2 @@ Sould format end parens | ||
----------------------------------- | ||
d => a.a(b).a(b => c.d(e).f() ? g(current) : h.e(current)) | ||
d => a.a(b).a(b => (c.d(e).f() ? g(current) : h.e(current))) |
@@ -18,4 +18,4 @@ Sould format end parens | ||
b => | ||
!c.daaaaaaaaaaaaaaaaaa(e).f() | ||
(!c.daaaaaaaaaaaaaaaaaa(e).f() | ||
? g(current) | ||
: h.eaaaaaaaaaaaaaaaaaa(current)) | ||
: h.eaaaaaaaaaaaaaaaaaa(current))) |
@@ -5,4 +5,3 @@ Should not insert a semi after arrow | ||
----------------------------------- | ||
d => | ||
() => | ||
a.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() | ||
d => () => | ||
a.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() |
@@ -8,3 +8,3 @@ Should not insert a semi after a coma | ||
[a]: [aaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbb], | ||
[a]: [aaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbb], | ||
[a]: [aaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbb] | ||
}) |
@@ -8,3 +8,3 @@ Should not insert a semi after a coma | ||
[aaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbb], | ||
[aaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbb], | ||
[aaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbb] | ||
]) |
@@ -8,3 +8,3 @@ Should not insert a semi after a opening curly | ||
[a]: [aaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbb], | ||
[a]: [aaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbb], | ||
[a]: [aaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbb] | ||
}) |
@@ -13,1 +13,2 @@ const test = require('./test-runner') | ||
test('semi-keep-leading')() | ||
test('curly-spacing')() |
const assert = require('assert') | ||
const fs = require('fs') | ||
const next = require('../') | ||
const next = require('../src/next') | ||
@@ -5,0 +5,0 @@ // PURE |
Sorry, the diff of this file is not supported yet
17255
23
112
+ Addedprettier@1.19.1(transitive)
- Removedansi-regex@2.1.1(transitive)
- Removedansi-styles@2.2.13.2.1(transitive)
- Removedast-types@0.8.180.9.4(transitive)
- Removedbabel-code-frame@6.22.0(transitive)
- Removedbabylon@6.15.0(transitive)
- Removedbalanced-match@1.0.2(transitive)
- Removedbrace-expansion@1.1.11(transitive)
- Removedchalk@1.1.3(transitive)
- Removedcolor-convert@1.9.3(transitive)
- Removedcolor-name@1.1.3(transitive)
- Removedcolors@1.4.0(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removedescape-string-regexp@1.0.5(transitive)
- Removedesutils@2.0.2(transitive)
- Removedflow-parser@0.40.0(transitive)
- Removedfs.realpath@1.0.0(transitive)
- Removedget-stdin@5.0.1(transitive)
- Removedglob@7.1.1(transitive)
- Removedhas-ansi@2.0.0(transitive)
- Removedinflight@1.0.6(transitive)
- Removedinherits@2.0.4(transitive)
- Removedjest-matcher-utils@19.0.0(transitive)
- Removedjest-validate@19.0.0(transitive)
- Removedjs-tokens@3.0.2(transitive)
- Removedleven@2.1.0(transitive)
- Removedminimatch@3.1.2(transitive)
- Removedminimist@1.2.0(transitive)
- Removedonce@1.4.0(transitive)
- Removedpath-is-absolute@1.0.1(transitive)
- Removedprettier@0.22.0(transitive)
- Removedpretty-format@19.0.0(transitive)
- Removedstrip-ansi@3.0.1(transitive)
- Removedsupports-color@2.0.0(transitive)
- Removedwrappy@1.0.2(transitive)
Updatedprettier@^1.0.2