Sfoglia il codice sorgente

Initial commit

tags/v0.1.1
Dylan Baker 5 anni fa
commit
f32ed98432
7 ha cambiato i file con 779 aggiunte e 0 eliminazioni
  1. 1
    0
      .gitignore
  2. 21
    0
      .prettierrc
  3. 19
    0
      LICENSE
  4. 146
    0
      index.js
  5. 529
    0
      package-lock.json
  6. 25
    0
      package.json
  7. 38
    0
      test.js

+ 1
- 0
.gitignore Vedi File

@@ -0,0 +1 @@
1
+node_modules/

+ 21
- 0
.prettierrc Vedi File

@@ -0,0 +1,21 @@
1
+{
2
+  "arrowParens": "avoid",
3
+  "bracketSpacing": true,
4
+  "endOfLine": "auto",
5
+  "filepath": "",
6
+  "htmlWhitespaceSensitivity": "css",
7
+  "insertPragma": false,
8
+  "jsxBracketSameLine": false,
9
+  "jsxSingleQuote": false,
10
+  "parser": "",
11
+  "printWidth": 80,
12
+  "proseWrap": "preserve",
13
+  "quoteProps": "as-needed",
14
+  "requirePragma": false,
15
+  "semi": true,
16
+  "singleQuote": true,
17
+  "tabWidth": 2,
18
+  "trailingComma": "es5",
19
+  "useTabs": false,
20
+  "vueIndentScriptAndStyle": false
21
+}

+ 19
- 0
LICENSE Vedi File

@@ -0,0 +1,19 @@
1
+Copyright (c) 2020 Dylan Baker dylan@simulacrum.party
2
+
3
+Permission is hereby granted, free of charge, to any person obtaining a copy
4
+of this software and associated documentation files (the "Software"), to deal
5
+in the Software without restriction, including without limitation the rights
6
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+copies of the Software, and to permit persons to whom the Software is
8
+furnished to do so, subject to the following conditions:
9
+
10
+The above copyright notice and this permission notice shall be included in all
11
+copies or substantial portions of the Software.
12
+
13
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+SOFTWARE.

+ 146
- 0
index.js Vedi File

@@ -0,0 +1,146 @@
1
+#!/usr/bin/env node
2
+
3
+const fs = require('fs');
4
+const minimist = require('minimist');
5
+const path = require('path');
6
+
7
+const defaultConfig = {
8
+  arrowParens: 'avoid',
9
+  bracketSpacing: true,
10
+  endOfLine: 'auto',
11
+  filepath: '',
12
+  htmlWhitespaceSensitivity: 'css',
13
+  insertPragma: false,
14
+  jsxBracketSameLine: false,
15
+  jsxSingleQuote: false,
16
+  parser: '',
17
+  printWidth: 80,
18
+  proseWrap: 'preserve',
19
+  quoteProps: 'as-needed',
20
+  requirePragma: false,
21
+  semi: true,
22
+  singleQuote: false,
23
+  tabWidth: 2,
24
+  trailingComma: 'none',
25
+  useTabs: false,
26
+  vueIndentScriptAndStyle: false,
27
+};
28
+
29
+const formats = {
30
+  json: {
31
+    filename: '.prettierrc',
32
+    generate: function() {
33
+      return JSON.stringify(defaultConfig, null, 2);
34
+    },
35
+  },
36
+  yaml: {
37
+    filename: '.prettierrc.yaml',
38
+    generate: function() {
39
+      return Object.entries(defaultConfig)
40
+        .map(([key, value]) => {
41
+          if (typeof value === 'string' && value === '') return `${key}: ''`;
42
+          return `${key}: ${value}`;
43
+        })
44
+        .join('\n');
45
+    },
46
+  },
47
+  toml: {
48
+    filename: '.prettierrc.toml',
49
+    generate: function() {
50
+      return Object.entries(defaultConfig)
51
+        .map(([key, value]) => {
52
+          if (typeof value === 'string') return `${key} = "${value}"`;
53
+          return `${key} = ${value}`;
54
+        })
55
+        .join('\n');
56
+    },
57
+  },
58
+  js: {
59
+    filename: '.prettierrc.js',
60
+    generate: function() {
61
+      const contents = Object.entries(defaultConfig)
62
+        .map(([key, value]) => {
63
+          if (typeof value === 'string') return `  ${key}: '${value}',`;
64
+          return `  ${key}: ${value},`;
65
+        })
66
+        .join('\n');
67
+      return `module.exports = {\n${contents}\n};`;
68
+    },
69
+  },
70
+  'package.json': {
71
+    filename: 'package.json',
72
+    generate: function() {
73
+      const file = path.resolve('package.json');
74
+      if (!fs.existsSync(file)) {
75
+        console.error(
76
+          'Error: no package.json file found in the current directory'
77
+        );
78
+        process.exit(0);
79
+      }
80
+      const data = JSON.parse(fs.readFileSync(file));
81
+      data.prettier = defaultConfig;
82
+      return JSON.stringify(data, null, 2);
83
+    },
84
+  },
85
+};
86
+
87
+function writeToFile(filename, data) {
88
+  fs.writeFile(path.resolve(filename), `${data}\n`, {}, () => {
89
+    console.log(`Wrote default config to ${filename}`);
90
+    process.exit(0);
91
+  });
92
+}
93
+
94
+function writeToStdout(data) {
95
+  process.stdout.write(`${data}\n`);
96
+  process.exit(0);
97
+}
98
+
99
+function help(logger) {
100
+  if (!logger) logger = console.log;
101
+
102
+  const formatDisplay = Object.keys(formats).join('|');
103
+
104
+  logger('USAGE:');
105
+  logger('    prettier-default-config [OPTIONS]');
106
+  logger();
107
+  logger('OPTIONS:');
108
+  logger('    --format <FORMAT> The config file format to generate.');
109
+  logger(`                      <${formatDisplay}>`);
110
+  logger('                      default: json');
111
+  logger();
112
+  logger('    --stdout          Write config to STDOUT rather than to a file');
113
+  logger();
114
+  logger('    --help            Prints help information');
115
+  process.exit(0);
116
+}
117
+
118
+function run() {
119
+  const args = minimist(process.argv);
120
+
121
+  if (args.help) help();
122
+
123
+  const format = formats[args.format ? args.format : 'json'];
124
+  if (format) {
125
+    const config = format.generate();
126
+
127
+    if (args.stdout) {
128
+      writeToStdout(config);
129
+    } else {
130
+      writeToFile(format.filename, config);
131
+    }
132
+  } else {
133
+    console.error('Error: invalid format');
134
+    console.error();
135
+    help(console.error);
136
+  }
137
+}
138
+
139
+module.exports = {
140
+  defaultConfig,
141
+  formats,
142
+};
143
+
144
+if (require.main === module) {
145
+  run();
146
+}

+ 529
- 0
package-lock.json Vedi File

@@ -0,0 +1,529 @@
1
+{
2
+  "name": "prettier-default-config",
3
+  "version": "0.1.0",
4
+  "lockfileVersion": 1,
5
+  "requires": true,
6
+  "dependencies": {
7
+    "@babel/runtime": {
8
+      "version": "7.8.4",
9
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz",
10
+      "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==",
11
+      "dev": true,
12
+      "requires": {
13
+        "regenerator-runtime": "^0.13.2"
14
+      }
15
+    },
16
+    "balanced-match": {
17
+      "version": "1.0.0",
18
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
19
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
20
+      "dev": true
21
+    },
22
+    "brace-expansion": {
23
+      "version": "1.1.11",
24
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
25
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
26
+      "dev": true,
27
+      "requires": {
28
+        "balanced-match": "^1.0.0",
29
+        "concat-map": "0.0.1"
30
+      }
31
+    },
32
+    "concat-map": {
33
+      "version": "0.0.1",
34
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
35
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
36
+      "dev": true
37
+    },
38
+    "core-util-is": {
39
+      "version": "1.0.2",
40
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
41
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
42
+      "dev": true
43
+    },
44
+    "deep-equal": {
45
+      "version": "1.1.1",
46
+      "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
47
+      "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
48
+      "dev": true,
49
+      "requires": {
50
+        "is-arguments": "^1.0.4",
51
+        "is-date-object": "^1.0.1",
52
+        "is-regex": "^1.0.4",
53
+        "object-is": "^1.0.1",
54
+        "object-keys": "^1.1.1",
55
+        "regexp.prototype.flags": "^1.2.0"
56
+      }
57
+    },
58
+    "define-properties": {
59
+      "version": "1.1.3",
60
+      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
61
+      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
62
+      "dev": true,
63
+      "requires": {
64
+        "object-keys": "^1.0.12"
65
+      }
66
+    },
67
+    "defined": {
68
+      "version": "1.0.0",
69
+      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
70
+      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
71
+      "dev": true
72
+    },
73
+    "dotignore": {
74
+      "version": "0.1.2",
75
+      "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz",
76
+      "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==",
77
+      "dev": true,
78
+      "requires": {
79
+        "minimatch": "^3.0.4"
80
+      }
81
+    },
82
+    "duplexer": {
83
+      "version": "0.1.1",
84
+      "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
85
+      "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
86
+      "dev": true
87
+    },
88
+    "es-abstract": {
89
+      "version": "1.17.4",
90
+      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
91
+      "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
92
+      "dev": true,
93
+      "requires": {
94
+        "es-to-primitive": "^1.2.1",
95
+        "function-bind": "^1.1.1",
96
+        "has": "^1.0.3",
97
+        "has-symbols": "^1.0.1",
98
+        "is-callable": "^1.1.5",
99
+        "is-regex": "^1.0.5",
100
+        "object-inspect": "^1.7.0",
101
+        "object-keys": "^1.1.1",
102
+        "object.assign": "^4.1.0",
103
+        "string.prototype.trimleft": "^2.1.1",
104
+        "string.prototype.trimright": "^2.1.1"
105
+      }
106
+    },
107
+    "es-to-primitive": {
108
+      "version": "1.2.1",
109
+      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
110
+      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
111
+      "dev": true,
112
+      "requires": {
113
+        "is-callable": "^1.1.4",
114
+        "is-date-object": "^1.0.1",
115
+        "is-symbol": "^1.0.2"
116
+      }
117
+    },
118
+    "faucet": {
119
+      "version": "0.0.1",
120
+      "resolved": "https://registry.npmjs.org/faucet/-/faucet-0.0.1.tgz",
121
+      "integrity": "sha1-WX3PHSGJosBiMhtZHo8VHtIDnZw=",
122
+      "dev": true,
123
+      "requires": {
124
+        "defined": "0.0.0",
125
+        "duplexer": "~0.1.1",
126
+        "minimist": "0.0.5",
127
+        "sprintf": "~0.1.3",
128
+        "tap-parser": "~0.4.0",
129
+        "tape": "~2.3.2",
130
+        "through2": "~0.2.3"
131
+      },
132
+      "dependencies": {
133
+        "deep-equal": {
134
+          "version": "0.1.2",
135
+          "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.1.2.tgz",
136
+          "integrity": "sha1-skbCuApXCkfBG+HZvRBw7IeLh84=",
137
+          "dev": true
138
+        },
139
+        "defined": {
140
+          "version": "0.0.0",
141
+          "resolved": "https://registry.npmjs.org/defined/-/defined-0.0.0.tgz",
142
+          "integrity": "sha1-817qfXBekzuvE7LwOz+D2SFAOz4=",
143
+          "dev": true
144
+        },
145
+        "minimist": {
146
+          "version": "0.0.5",
147
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz",
148
+          "integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY=",
149
+          "dev": true
150
+        },
151
+        "tape": {
152
+          "version": "2.3.3",
153
+          "resolved": "https://registry.npmjs.org/tape/-/tape-2.3.3.tgz",
154
+          "integrity": "sha1-Lnzgox3wn41oUWZKcYQuDKUFevc=",
155
+          "dev": true,
156
+          "requires": {
157
+            "deep-equal": "~0.1.0",
158
+            "defined": "~0.0.0",
159
+            "inherits": "~2.0.1",
160
+            "jsonify": "~0.0.0",
161
+            "resumer": "~0.0.0",
162
+            "through": "~2.3.4"
163
+          }
164
+        }
165
+      }
166
+    },
167
+    "for-each": {
168
+      "version": "0.3.3",
169
+      "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
170
+      "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
171
+      "dev": true,
172
+      "requires": {
173
+        "is-callable": "^1.1.3"
174
+      }
175
+    },
176
+    "fs.realpath": {
177
+      "version": "1.0.0",
178
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
179
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
180
+      "dev": true
181
+    },
182
+    "function-bind": {
183
+      "version": "1.1.1",
184
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
185
+      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
186
+      "dev": true
187
+    },
188
+    "glob": {
189
+      "version": "7.1.6",
190
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
191
+      "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
192
+      "dev": true,
193
+      "requires": {
194
+        "fs.realpath": "^1.0.0",
195
+        "inflight": "^1.0.4",
196
+        "inherits": "2",
197
+        "minimatch": "^3.0.4",
198
+        "once": "^1.3.0",
199
+        "path-is-absolute": "^1.0.0"
200
+      }
201
+    },
202
+    "has": {
203
+      "version": "1.0.3",
204
+      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
205
+      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
206
+      "dev": true,
207
+      "requires": {
208
+        "function-bind": "^1.1.1"
209
+      }
210
+    },
211
+    "has-symbols": {
212
+      "version": "1.0.1",
213
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
214
+      "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
215
+      "dev": true
216
+    },
217
+    "inflight": {
218
+      "version": "1.0.6",
219
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
220
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
221
+      "dev": true,
222
+      "requires": {
223
+        "once": "^1.3.0",
224
+        "wrappy": "1"
225
+      }
226
+    },
227
+    "inherits": {
228
+      "version": "2.0.4",
229
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
230
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
231
+      "dev": true
232
+    },
233
+    "is-arguments": {
234
+      "version": "1.0.4",
235
+      "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
236
+      "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
237
+      "dev": true
238
+    },
239
+    "is-callable": {
240
+      "version": "1.1.5",
241
+      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
242
+      "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
243
+      "dev": true
244
+    },
245
+    "is-date-object": {
246
+      "version": "1.0.2",
247
+      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
248
+      "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
249
+      "dev": true
250
+    },
251
+    "is-regex": {
252
+      "version": "1.0.5",
253
+      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
254
+      "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
255
+      "dev": true,
256
+      "requires": {
257
+        "has": "^1.0.3"
258
+      }
259
+    },
260
+    "is-symbol": {
261
+      "version": "1.0.3",
262
+      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
263
+      "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
264
+      "dev": true,
265
+      "requires": {
266
+        "has-symbols": "^1.0.1"
267
+      }
268
+    },
269
+    "isarray": {
270
+      "version": "0.0.1",
271
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
272
+      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
273
+      "dev": true
274
+    },
275
+    "jsonify": {
276
+      "version": "0.0.0",
277
+      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
278
+      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
279
+      "dev": true
280
+    },
281
+    "minimatch": {
282
+      "version": "3.0.4",
283
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
284
+      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
285
+      "dev": true,
286
+      "requires": {
287
+        "brace-expansion": "^1.1.7"
288
+      }
289
+    },
290
+    "minimist": {
291
+      "version": "1.2.0",
292
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
293
+      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
294
+    },
295
+    "object-inspect": {
296
+      "version": "1.7.0",
297
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
298
+      "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
299
+      "dev": true
300
+    },
301
+    "object-is": {
302
+      "version": "1.0.2",
303
+      "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
304
+      "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==",
305
+      "dev": true
306
+    },
307
+    "object-keys": {
308
+      "version": "1.1.1",
309
+      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
310
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
311
+      "dev": true
312
+    },
313
+    "object.assign": {
314
+      "version": "4.1.0",
315
+      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
316
+      "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
317
+      "dev": true,
318
+      "requires": {
319
+        "define-properties": "^1.1.2",
320
+        "function-bind": "^1.1.1",
321
+        "has-symbols": "^1.0.0",
322
+        "object-keys": "^1.0.11"
323
+      }
324
+    },
325
+    "once": {
326
+      "version": "1.4.0",
327
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
328
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
329
+      "dev": true,
330
+      "requires": {
331
+        "wrappy": "1"
332
+      }
333
+    },
334
+    "path-is-absolute": {
335
+      "version": "1.0.1",
336
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
337
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
338
+      "dev": true
339
+    },
340
+    "path-parse": {
341
+      "version": "1.0.6",
342
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
343
+      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
344
+      "dev": true
345
+    },
346
+    "prettier": {
347
+      "version": "1.19.1",
348
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
349
+      "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
350
+      "dev": true
351
+    },
352
+    "readable-stream": {
353
+      "version": "1.1.14",
354
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
355
+      "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
356
+      "dev": true,
357
+      "requires": {
358
+        "core-util-is": "~1.0.0",
359
+        "inherits": "~2.0.1",
360
+        "isarray": "0.0.1",
361
+        "string_decoder": "~0.10.x"
362
+      }
363
+    },
364
+    "regenerator-runtime": {
365
+      "version": "0.13.3",
366
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
367
+      "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
368
+      "dev": true
369
+    },
370
+    "regexp.prototype.flags": {
371
+      "version": "1.3.0",
372
+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
373
+      "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==",
374
+      "dev": true,
375
+      "requires": {
376
+        "define-properties": "^1.1.3",
377
+        "es-abstract": "^1.17.0-next.1"
378
+      }
379
+    },
380
+    "resolve": {
381
+      "version": "1.14.2",
382
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz",
383
+      "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==",
384
+      "dev": true,
385
+      "requires": {
386
+        "path-parse": "^1.0.6"
387
+      }
388
+    },
389
+    "resumer": {
390
+      "version": "0.0.0",
391
+      "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz",
392
+      "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
393
+      "dev": true,
394
+      "requires": {
395
+        "through": "~2.3.4"
396
+      }
397
+    },
398
+    "sprintf": {
399
+      "version": "0.1.5",
400
+      "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.5.tgz",
401
+      "integrity": "sha1-j4PjmpMXwaUCy324BQ5Rxnn27c8=",
402
+      "dev": true
403
+    },
404
+    "string.prototype.trim": {
405
+      "version": "1.2.1",
406
+      "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz",
407
+      "integrity": "sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw==",
408
+      "dev": true,
409
+      "requires": {
410
+        "define-properties": "^1.1.3",
411
+        "es-abstract": "^1.17.0-next.1",
412
+        "function-bind": "^1.1.1"
413
+      }
414
+    },
415
+    "string.prototype.trimleft": {
416
+      "version": "2.1.1",
417
+      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
418
+      "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
419
+      "dev": true,
420
+      "requires": {
421
+        "define-properties": "^1.1.3",
422
+        "function-bind": "^1.1.1"
423
+      }
424
+    },
425
+    "string.prototype.trimright": {
426
+      "version": "2.1.1",
427
+      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
428
+      "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
429
+      "dev": true,
430
+      "requires": {
431
+        "define-properties": "^1.1.3",
432
+        "function-bind": "^1.1.1"
433
+      }
434
+    },
435
+    "string_decoder": {
436
+      "version": "0.10.31",
437
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
438
+      "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
439
+      "dev": true
440
+    },
441
+    "tap-parser": {
442
+      "version": "0.4.3",
443
+      "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-0.4.3.tgz",
444
+      "integrity": "sha1-pOrhkMENdsehEZIf84u+TVjwnuo=",
445
+      "dev": true,
446
+      "requires": {
447
+        "inherits": "~2.0.1",
448
+        "readable-stream": "~1.1.11"
449
+      }
450
+    },
451
+    "tape": {
452
+      "version": "4.13.0",
453
+      "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.0.tgz",
454
+      "integrity": "sha512-J/hvA+GJnuWJ0Sj8Z0dmu3JgMNU+MmusvkCT7+SN4/2TklW18FNCp/UuHIEhPZwHfy4sXfKYgC7kypKg4umbOw==",
455
+      "dev": true,
456
+      "requires": {
457
+        "deep-equal": "~1.1.1",
458
+        "defined": "~1.0.0",
459
+        "dotignore": "~0.1.2",
460
+        "for-each": "~0.3.3",
461
+        "function-bind": "~1.1.1",
462
+        "glob": "~7.1.6",
463
+        "has": "~1.0.3",
464
+        "inherits": "~2.0.4",
465
+        "is-regex": "~1.0.5",
466
+        "minimist": "~1.2.0",
467
+        "object-inspect": "~1.7.0",
468
+        "resolve": "~1.14.2",
469
+        "resumer": "~0.0.0",
470
+        "string.prototype.trim": "~1.2.1",
471
+        "through": "~2.3.8"
472
+      }
473
+    },
474
+    "through": {
475
+      "version": "2.3.8",
476
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
477
+      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
478
+      "dev": true
479
+    },
480
+    "through2": {
481
+      "version": "0.2.3",
482
+      "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
483
+      "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
484
+      "dev": true,
485
+      "requires": {
486
+        "readable-stream": "~1.1.9",
487
+        "xtend": "~2.1.1"
488
+      }
489
+    },
490
+    "toml": {
491
+      "version": "3.0.0",
492
+      "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz",
493
+      "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==",
494
+      "dev": true
495
+    },
496
+    "wrappy": {
497
+      "version": "1.0.2",
498
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
499
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
500
+      "dev": true
501
+    },
502
+    "xtend": {
503
+      "version": "2.1.2",
504
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
505
+      "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
506
+      "dev": true,
507
+      "requires": {
508
+        "object-keys": "~0.4.0"
509
+      },
510
+      "dependencies": {
511
+        "object-keys": {
512
+          "version": "0.4.0",
513
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
514
+          "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
515
+          "dev": true
516
+        }
517
+      }
518
+    },
519
+    "yaml": {
520
+      "version": "1.7.2",
521
+      "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz",
522
+      "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==",
523
+      "dev": true,
524
+      "requires": {
525
+        "@babel/runtime": "^7.6.3"
526
+      }
527
+    }
528
+  }
529
+}

+ 25
- 0
package.json Vedi File

@@ -0,0 +1,25 @@
1
+{
2
+  "name": "prettier-default-config",
3
+  "version": "0.1.0",
4
+  "description": "Generate a prettier config file with all the possible options and their default values",
5
+  "bin": "index.js",
6
+  "scripts": {
7
+    "format": "prettier --write ./*.js",
8
+    "test": "tape test.js | faucet"
9
+  },
10
+  "author": "Dylan Baker <dylan@simulacrum.party>",
11
+  "license": "MIT",
12
+  "files": [
13
+    "index.js"
14
+  ],
15
+  "dependencies": {
16
+    "minimist": "^1.2.0"
17
+  },
18
+  "devDependencies": {
19
+    "faucet": "0.0.1",
20
+    "prettier": "^1.19.1",
21
+    "tape": "^4.13.0",
22
+    "toml": "^3.0.0",
23
+    "yaml": "^1.7.2"
24
+  }
25
+}

+ 38
- 0
test.js Vedi File

@@ -0,0 +1,38 @@
1
+const fs = require('fs');
2
+const test = require('tape');
3
+const TOML = require('toml');
4
+const YAML = require('yaml');
5
+
6
+const { defaultConfig, formats } = require('.');
7
+
8
+test('generate JSON', t => {
9
+  t.plan(1);
10
+  const result = formats.json.generate();
11
+  t.deepEqual(JSON.parse(result), defaultConfig);
12
+});
13
+
14
+test('generate TOML', t => {
15
+  t.plan(1);
16
+  const result = formats.toml.generate();
17
+  t.deepEqual(TOML.parse(result), defaultConfig);
18
+});
19
+
20
+test('generate YAML', t => {
21
+  t.plan(1);
22
+  const result = formats.yaml.generate();
23
+  t.deepEqual(YAML.parse(result), defaultConfig);
24
+});
25
+
26
+test('generate JS', t => {
27
+  t.plan(1);
28
+  const result = formats.js.generate();
29
+  t.deepEqual(eval(result), defaultConfig);
30
+});
31
+
32
+test('generate package.json', t => {
33
+  t.plan(1);
34
+  const before = JSON.parse(fs.readFileSync('package.json'));
35
+  const result = formats['package.json'].generate();
36
+  before.prettier = defaultConfig;
37
+  t.deepEqual(JSON.parse(result), before);
38
+});

Loading…
Annulla
Salva