Skip to content

Commit 605559a

Browse files
committed
Remove semicolons, run formatting. Remove devDependencies
1 parent b5a396b commit 605559a

File tree

7 files changed

+8170
-2420
lines changed

7 files changed

+8170
-2420
lines changed

.eslintrc.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@ env:
33
es6: true
44
extends:
55
- 'eslint:recommended'
6+
- 'plugin:node/recommended'
7+
- 'plugin:import/recommended'
68
- 'prettier'
79
parserOptions:
810
ecmaVersion: 2020
11+
rules:
12+
no-console: error
13+
prefer-const: error
14+
no-var: error
15+
node/exports-style: [0, error]
16+
import/first: error
17+
import/no-anonymous-default-export: error
18+
import/no-unassigned-import: error
19+
import/no-internal-modules: error

.prettierrc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
trailingComma: none
22
tabWidth: 2
3-
semi: true
3+
semi: false
44
singleQuote: true
55
bracketSpacing: true
66
arrowParens: always

lib/get-transformer.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
const jstransformer = require('jstransformer');
2-
const toTransformer = require('inputformat-to-jstransformer');
1+
const jstransformer = require('jstransformer')
2+
const toTransformer = require('inputformat-to-jstransformer')
33

44
/**
55
* Gets jstransformer for an extension, and caches them
66
*/
77

8-
const cache = {};
8+
const cache = {}
99

1010
function getTransformer(ext) {
1111
if (ext in cache) {
12-
return cache[ext];
12+
return cache[ext]
1313
}
1414

15-
const transformer = toTransformer(ext);
16-
cache[ext] = transformer ? jstransformer(transformer) : false;
15+
const transformer = toTransformer(ext)
16+
cache[ext] = transformer ? jstransformer(transformer) : false
1717

18-
return cache[ext];
18+
return cache[ext]
1919
}
2020

21-
module.exports = getTransformer;
21+
module.exports = getTransformer

lib/index.js

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
const debug = require('debug')('@metalsmith/layouts');
2-
const match = require('multimatch');
3-
const path = require('path');
4-
const isUtf8 = require('is-utf8');
5-
const getTransformer = require('./get-transformer');
1+
const debug = require('debug')('@metalsmith/layouts')
2+
const match = require('multimatch')
3+
const path = require('path')
4+
const isUtf8 = require('is-utf8')
5+
const getTransformer = require('./get-transformer')
66

77
/**
88
* Resolves layouts, in the following order:
@@ -13,132 +13,132 @@ const getTransformer = require('./get-transformer');
1313

1414
function getLayout({ file, settings }) {
1515
if (file.layout || file.layout === false) {
16-
return file.layout;
16+
return file.layout
1717
}
1818

19-
return settings.default;
19+
return settings.default
2020
}
2121

2222
/**
2323
* Engine, renders file with the appropriate layout
2424
*/
2525

2626
function render({ filename, files, metadata, settings, metalsmith }) {
27-
const file = files[filename];
28-
const layout = getLayout({ file, settings });
29-
const extension = layout.split('.').pop();
27+
const file = files[filename]
28+
const layout = getLayout({ file, settings })
29+
const extension = layout.split('.').pop()
3030

31-
debug(`rendering ${filename} with layout ${layout}`);
31+
debug(`rendering ${filename} with layout ${layout}`)
3232

3333
// Stringify file contents
34-
const contents = file.contents.toString();
34+
const contents = file.contents.toString()
3535

36-
const transform = getTransformer(extension);
37-
const locals = { ...metadata, ...file, contents };
38-
const layoutPath = path.join(metalsmith.path(settings.directory), layout);
36+
const transform = getTransformer(extension)
37+
const locals = { ...metadata, ...file, contents }
38+
const layoutPath = path.join(metalsmith.path(settings.directory), layout)
3939

4040
// Transform the contents
4141
return transform
4242
.renderFileAsync(layoutPath, settings.engineOptions, locals)
4343
.then((rendered) => {
4444
// Update file with results
4545
// eslint-disable-next-line no-param-reassign
46-
file.contents = Buffer.from(rendered.body);
47-
debug(`done rendering ${filename}`);
46+
file.contents = Buffer.from(rendered.body)
47+
debug(`done rendering ${filename}`)
4848
})
4949
.catch((err) => {
5050
// Prepend error message with file path
5151
// eslint-disable-next-line no-param-reassign
52-
err.message = `${filename}: ${err.message}`;
53-
throw err;
54-
});
52+
err.message = `${filename}: ${err.message}`
53+
throw err
54+
})
5555
}
5656

5757
/**
5858
* Validate, checks whether a file should be processed
5959
*/
6060

6161
function validate({ filename, files, settings }) {
62-
const file = files[filename];
63-
const layout = getLayout({ file, settings });
62+
const file = files[filename]
63+
const layout = getLayout({ file, settings })
6464

65-
debug(`validating ${filename}`);
65+
debug(`validating ${filename}`)
6666

6767
// Files without a layout cannot be processed
6868
if (!layout) {
69-
debug(`validation failed, ${filename} does not have a layout set`);
70-
return false;
69+
debug(`validation failed, ${filename} does not have a layout set`)
70+
return false
7171
}
7272

7373
// Layouts without an extension cannot be processed
7474
if (!layout.includes('.')) {
75-
debug(`validation failed, layout for ${filename} does not have an extension`);
76-
return false;
75+
debug(`validation failed, layout for ${filename} does not have an extension`)
76+
return false
7777
}
7878

7979
// Files that are not utf8 are ignored
8080
if (!isUtf8(file.contents)) {
81-
debug(`validation failed, ${filename} is not utf-8`);
82-
return false;
81+
debug(`validation failed, ${filename} is not utf-8`)
82+
return false
8383
}
8484

8585
// Files without an applicable jstransformer are ignored
86-
const extension = layout.split('.').pop();
87-
const transformer = getTransformer(extension);
86+
const extension = layout.split('.').pop()
87+
const transformer = getTransformer(extension)
8888

8989
if (!transformer) {
90-
debug(`validation failed, no jstransformer found for layout for ${filename}`);
90+
debug(`validation failed, no jstransformer found for layout for ${filename}`)
9191
}
9292

93-
return transformer;
93+
return transformer
9494
}
9595

9696
/**
9797
* Plugin, the main plugin used by metalsmith
9898
*/
9999

100100
module.exports = (options) => (files, metalsmith, done) => {
101-
const metadata = metalsmith.metadata();
101+
const metadata = metalsmith.metadata()
102102
const defaults = {
103103
pattern: '**',
104104
directory: 'layouts',
105105
engineOptions: {},
106106
suppressNoFilesError: false
107-
};
108-
const settings = { ...defaults, ...options };
107+
}
108+
const settings = { ...defaults, ...options }
109109

110110
// Check whether the pattern option is valid
111111
if (!(typeof settings.pattern === 'string' || Array.isArray(settings.pattern))) {
112112
return done(
113113
new Error(
114114
'invalid pattern, the pattern option should be a string or array of strings. See https://www.npmjs.com/package/@metalsmith/layouts#pattern'
115115
)
116-
);
116+
)
117117
}
118118

119119
// Filter files by the pattern
120-
const matchedFiles = match(Object.keys(files), settings.pattern);
120+
const matchedFiles = match(Object.keys(files), settings.pattern)
121121

122122
// Filter files by validity
123-
const validFiles = matchedFiles.filter((filename) => validate({ filename, files, settings }));
123+
const validFiles = matchedFiles.filter((filename) => validate({ filename, files, settings }))
124124

125125
// Let the user know when there are no files to process, unless the check is suppressed
126126
if (validFiles.length === 0) {
127127
const message =
128-
'no files to process. See https://www.npmjs.com/package/@metalsmith/layouts#suppressnofileserror';
128+
'no files to process. See https://www.npmjs.com/package/@metalsmith/layouts#suppressnofileserror'
129129

130130
if (settings.suppressNoFilesError) {
131-
debug(message);
132-
return done();
131+
debug(message)
132+
return done()
133133
}
134134

135-
return done(new Error(message));
135+
return done(new Error(message))
136136
}
137137

138138
// Map all files that should be processed to an array of promises and call done when finished
139139
return Promise.all(
140140
validFiles.map((filename) => render({ filename, files, metadata, settings, metalsmith }))
141141
)
142142
.then(() => done())
143-
.catch(/* istanbul ignore next */ (error) => done(error));
144-
};
143+
.catch(/* istanbul ignore next */ (error) => done(error))
144+
}

0 commit comments

Comments
 (0)