1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00

Tools: Linter: Enforce object-curly-spacing - always

This commit is contained in:
Laurent Cozic 2020-02-04 22:09:34 +00:00
parent 49701fbc55
commit 737c3f62db
36 changed files with 88 additions and 87 deletions

View File

@ -68,6 +68,7 @@ module.exports = {
"linebreak-style": ["error", "unix"],
"prefer-template": ["error"],
"template-curly-spacing": ["error", "never"],
"object-curly-spacing": ["error", "always"],
"key-spacing": ["error", {
"beforeColon": false,
"afterColon": true,

View File

@ -25,7 +25,7 @@ class Command extends BaseCommand {
info: stdoutFn,
warn: stdoutFn,
error: stdoutFn,
}});
} });
ClipperServer.instance().setDispatch(() => {});
ClipperServer.instance().setLogger(clipperLogger);

View File

@ -90,13 +90,13 @@ describe('models_Note', function() {
}));
it('should serialize and unserialize without modifying data', asyncTest(async () => {
let folder1 = await Folder.save({ title: 'folder1'});
let folder1 = await Folder.save({ title: 'folder1' });
const testCases = [
[ {title: '', body: 'Body and no title\nSecond line\nThird Line', parent_id: folder1.id},
[ { title: '', body: 'Body and no title\nSecond line\nThird Line', parent_id: folder1.id },
'', 'Body and no title\nSecond line\nThird Line'],
[ {title: 'Note title', body: 'Body and title', parent_id: folder1.id},
[ { title: 'Note title', body: 'Body and title', parent_id: folder1.id },
'Note title', 'Body and title'],
[ {title: 'Title and no body', body: '', parent_id: folder1.id},
[ { title: 'Title and no body', body: '', parent_id: folder1.id },
'Title and no body', ''],
];

View File

@ -86,7 +86,7 @@ describe('models_Tag', function() {
let folder1 = await Folder.save({ title: 'folder1' });
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
let note2 = await Note.save({ title: 'ma 2nd note', parent_id: folder1.id });
let tag = await Tag.save({ title: 'mytag'});
let tag = await Tag.save({ title: 'mytag' });
await Tag.addNote(tag.id, note1.id);
let tagWithCount = await Tag.loadWithCount(tag.id);

View File

@ -1,11 +1,11 @@
/* eslint-disable no-unused-vars */
require('app-module-path').addPath(__dirname);
const {setupDatabaseAndSynchronizer, switchClient, asyncTest } = require('test-utils.js');
const { setupDatabaseAndSynchronizer, switchClient, asyncTest } = require('test-utils.js');
const Folder = require('lib/models/Folder.js');
const Note = require('lib/models/Note.js');
const Tag = require('lib/models/Tag.js');
const { reducer, defaultState, stateUtils} = require('lib/reducer.js');
const { reducer, defaultState, stateUtils } = require('lib/reducer.js');
async function createNTestFolders(n) {
let folders = [];
@ -64,7 +64,7 @@ function initTestState(folders, selectedFolderIndex, notes, selectedIndexes, tag
}
function createExpectedState(items, keepIndexes, selectedIndexes) {
let expected = { items: [], selectedIds: []};
let expected = { items: [], selectedIds: [] };
for (let i = 0; i < selectedIndexes.length; i++) {
expected.selectedIds.push(items[selectedIndexes[i]].id);
@ -111,7 +111,7 @@ describe('Reducer', function() {
// test action
// delete the third note
state = reducer(state, {type: 'NOTE_DELETE', id: notes[2].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[2].id });
// expect that the third note is missing, and the 4th note is now selected
let expected = createExpectedState(notes, [0,1,3,4], [3]);
@ -128,7 +128,7 @@ describe('Reducer', function() {
let state = initTestState(folders, 0, notes, [1]);
// test action
state = reducer(state, {type: 'NOTE_DELETE', id: notes[0].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[0].id });
let expected = createExpectedState(notes, [1,2,3,4], [1]);
@ -142,7 +142,7 @@ describe('Reducer', function() {
let state = initTestState(folders, 0, notes, [0]);
// test action
state = reducer(state, {type: 'NOTE_DELETE', id: notes[0].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[0].id });
let expected = createExpectedState(notes, [], []);
@ -156,7 +156,7 @@ describe('Reducer', function() {
let state = initTestState(folders, 0, notes, [4]);
// test action
state = reducer(state, {type: 'NOTE_DELETE', id: notes[4].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[4].id });
let expected = createExpectedState(notes, [0,1,2,3], [3]);
@ -170,7 +170,7 @@ describe('Reducer', function() {
let state = initTestState(folders, 0, notes, [3]);
// test action
state = reducer(state, {type: 'NOTE_DELETE', id: notes[1].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[1].id });
let expected = createExpectedState(notes, [0,2,3,4], [3]);
@ -184,7 +184,7 @@ describe('Reducer', function() {
let state = initTestState(folders, 0, notes, [1]);
// test action
state = reducer(state, {type: 'NOTE_DELETE', id: notes[3].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[3].id });
let expected = createExpectedState(notes, [0,1,2,4], [1]);
@ -198,8 +198,8 @@ describe('Reducer', function() {
let state = initTestState(folders, 0, notes, [1,2]);
// test action
state = reducer(state, {type: 'NOTE_DELETE', id: notes[1].id});
state = reducer(state, {type: 'NOTE_DELETE', id: notes[2].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[1].id });
state = reducer(state, { type: 'NOTE_DELETE', id: notes[2].id });
let expected = createExpectedState(notes, [0,3,4], [3]);
@ -213,7 +213,7 @@ describe('Reducer', function() {
let state = initTestState(folders, 0, notes, [3,4]);
// test action
state = reducer(state, {type: 'NOTE_DELETE', id: notes[1].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[1].id });
let expected = createExpectedState(notes, [0,2,3,4], [3,4]);
@ -227,7 +227,7 @@ describe('Reducer', function() {
let state = initTestState(folders, 0, notes, [1,2]);
// test action
state = reducer(state, {type: 'NOTE_DELETE', id: notes[3].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[3].id });
let expected = createExpectedState(notes, [0,1,2,4], [1,2]);
@ -241,8 +241,8 @@ describe('Reducer', function() {
let state = initTestState(folders, 0, notes, [3,4]);
// test action
state = reducer(state, {type: 'NOTE_DELETE', id: notes[3].id});
state = reducer(state, {type: 'NOTE_DELETE', id: notes[4].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[3].id });
state = reducer(state, { type: 'NOTE_DELETE', id: notes[4].id });
let expected = createExpectedState(notes, [0,1,2], [2]);
@ -256,9 +256,9 @@ describe('Reducer', function() {
let state = initTestState(folders, 0, notes, [0,2,4]);
// test action
state = reducer(state, {type: 'NOTE_DELETE', id: notes[0].id});
state = reducer(state, {type: 'NOTE_DELETE', id: notes[2].id});
state = reducer(state, {type: 'NOTE_DELETE', id: notes[4].id});
state = reducer(state, { type: 'NOTE_DELETE', id: notes[0].id });
state = reducer(state, { type: 'NOTE_DELETE', id: notes[2].id });
state = reducer(state, { type: 'NOTE_DELETE', id: notes[4].id });
let expected = createExpectedState(notes, [1,3], [1]);
@ -273,7 +273,7 @@ describe('Reducer', function() {
let state = initTestState(folders, 2, notes, [2]);
// test action
state = reducer(state, {type: 'FOLDER_DELETE', id: folders[2].id});
state = reducer(state, { type: 'FOLDER_DELETE', id: folders[2].id });
let expected = createExpectedState(folders, [0,1,3,4], [3]);
@ -287,7 +287,7 @@ describe('Reducer', function() {
let state = initTestState(folders, 1, notes, [2]);
// test action
state = reducer(state, {type: 'FOLDER_DELETE', id: folders[2].id});
state = reducer(state, { type: 'FOLDER_DELETE', id: folders[2].id });
let expected = createExpectedState(folders, [0,1,3,4], [1]);
@ -301,7 +301,7 @@ describe('Reducer', function() {
let state = initTestState(folders, 4, notes, [2]);
// test action
state = reducer(state, {type: 'FOLDER_DELETE', id: folders[2].id});
state = reducer(state, { type: 'FOLDER_DELETE', id: folders[2].id });
let expected = createExpectedState(folders, [0,1,3,4], [4]);
@ -315,7 +315,7 @@ describe('Reducer', function() {
let state = initTestState(null, null, null, null, tags, [2]);
// test action
state = reducer(state, {type: 'TAG_DELETE', id: tags[2].id});
state = reducer(state, { type: 'TAG_DELETE', id: tags[2].id });
let expected = createExpectedState(tags, [0,1,3,4], [3]);
@ -328,7 +328,7 @@ describe('Reducer', function() {
let state = initTestState(null, null, null, null, tags, [2]);
// test action
state = reducer(state, {type: 'TAG_DELETE', id: tags[4].id});
state = reducer(state, { type: 'TAG_DELETE', id: tags[4].id });
let expected = createExpectedState(tags, [0,1,2,3], [2]);
@ -341,7 +341,7 @@ describe('Reducer', function() {
let state = initTestState(null, null, null, null, tags, [2]);
// test action
state = reducer(state, {type: 'TAG_DELETE', id: tags[0].id});
state = reducer(state, { type: 'TAG_DELETE', id: tags[0].id });
let expected = createExpectedState(tags, [1,2,3,4], [2]);
@ -365,7 +365,7 @@ describe('Reducer', function() {
expect(state.selectedNoteIds).toEqual(expected.selectedIds);
// test action
state = reducer(state, {type: 'NOTE_SELECT_ALL'});
state = reducer(state, { type: 'NOTE_SELECT_ALL' });
expected = createExpectedState(notes.slice(0,3), [0,1,2], [0,1,2]);
expect(getIds(state.notes)).toEqual(getIds(expected.items));

View File

@ -279,7 +279,7 @@ describe('services_rest_Api', function() {
const response = await api.route('GET', 'notes', { token: 'mytoken' });
expect(response.length).toBe(0);
hasThrown = await checkThrowAsync(async () => await api.route('POST', 'notes', null, JSON.stringify({title: 'testing'})));
hasThrown = await checkThrowAsync(async () => await api.route('POST', 'notes', null, JSON.stringify({ title: 'testing' })));
expect(hasThrown).toBe(true);
}));

View File

@ -189,10 +189,10 @@ class AppComponent extends Component {
}
async loadContentScripts() {
await bridge().tabsExecuteScript({file: '/content_scripts/JSDOMParser.js'});
await bridge().tabsExecuteScript({file: '/content_scripts/Readability.js'});
await bridge().tabsExecuteScript({file: '/content_scripts/Readability-readerable.js'});
await bridge().tabsExecuteScript({file: '/content_scripts/index.js'});
await bridge().tabsExecuteScript({ file: '/content_scripts/JSDOMParser.js' });
await bridge().tabsExecuteScript({ file: '/content_scripts/Readability.js' });
await bridge().tabsExecuteScript({ file: '/content_scripts/Readability-readerable.js' });
await bridge().tabsExecuteScript({ file: '/content_scripts/index.js' });
}
async componentDidMount() {
@ -248,7 +248,7 @@ class AppComponent extends Component {
if (!this.state.contentScriptLoaded) {
let msg = 'Loading...';
if (this.state.contentScriptError) msg = `The Joplin extension is not available on this tab due to: ${this.state.contentScriptError}`;
return <div style={{padding: 10, fontSize: 12, maxWidth: 200}}>{msg}</div>;
return <div style={{ padding: 10, fontSize: 12, maxWidth: 200 }}>{msg}</div>;
}
const warningComponent = !this.props.warning ? null : <div className="Warning">{ this.props.warning }</div>;

View File

@ -99,7 +99,7 @@ class InteropServiceHelper {
if (module.target === 'file') {
path = bridge().showSaveDialog({
filters: [{ name: module.description, extensions: module.fileExtensions}],
filters: [{ name: module.description, extensions: module.fileExtensions }],
});
} else {
path = bridge().showOpenDialog({

View File

@ -408,7 +408,7 @@ class Application extends BaseApplication {
if (moduleSource === 'file') {
path = bridge().showOpenDialog({
filters: [{ name: module.description, extensions: module.fileExtensions}],
filters: [{ name: module.description, extensions: module.fileExtensions }],
});
} else {
path = bridge().showOpenDialog({

View File

@ -56,7 +56,7 @@ class Bridge {
}
showSaveDialog(options) {
const {dialog} = require('electron');
const { dialog } = require('electron');
if (!options) options = {};
if (!('defaultPath' in options) && this.lastSelectedPath_) options.defaultPath = this.lastSelectedPath_;
const filePath = dialog.showSaveDialogSync(this.window(), options);
@ -67,7 +67,7 @@ class Bridge {
}
showOpenDialog(options) {
const {dialog} = require('electron');
const { dialog } = require('electron');
if (!options) options = {};
if (!('defaultPath' in options) && this.lastSelectedPath_) options.defaultPath = this.lastSelectedPath_;
if (!('createDirectory' in options)) options.createDirectory = true;
@ -80,7 +80,7 @@ class Bridge {
// Don't use this directly - call one of the showXxxxxxxMessageBox() instead
showMessageBox_(window, options) {
const {dialog} = require('electron');
const { dialog } = require('electron');
if (!window) window = this.window();
return dialog.showMessageBoxSync(window, options);
}

View File

@ -21,8 +21,8 @@ let branch;
let hash;
try {
// Use stdio: 'pipe' so that execSync doesn't print error directly to stdout
branch = execSync('git rev-parse --abbrev-ref HEAD', {stdio: 'pipe' }).toString().trim();
hash = execSync('git log --pretty="%h" -1', {stdio: 'pipe' }).toString().trim();
branch = execSync('git rev-parse --abbrev-ref HEAD', { stdio: 'pipe' }).toString().trim();
hash = execSync('git log --pretty="%h" -1', { stdio: 'pipe' }).toString().trim();
} catch (err) {
// Don't display error object as it's a "fatal" error, but
// not for us, since is it not critical information

View File

@ -121,9 +121,9 @@ class ClipperConfigScreenComponent extends React.Component {
<div style={stepBoxStyle}>
<p style={theme.h1Style}>{_('Step 2: Install the extension')}</p>
<p style={theme.textStyle}>{_('Download and install the relevant extension for your browser:')}</p>
<div style={{display: 'flex', flexDirection: 'row'}}>
<div style={{ display: 'flex', flexDirection: 'row' }}>
<ExtensionBadge theme={this.props.theme} type="firefox" url="https://addons.mozilla.org/en-US/firefox/addon/joplin-web-clipper/"/>
<ExtensionBadge style={{marginLeft: 10}} theme={this.props.theme} type="chrome" url="https://chrome.google.com/webstore/detail/joplin-web-clipper/alofnhikmmkdbbbgpnglcpdollgjjfek"/>
<ExtensionBadge style={{ marginLeft: 10 }} theme={this.props.theme} type="chrome" url="https://chrome.google.com/webstore/detail/joplin-web-clipper/alofnhikmmkdbbbgpnglcpdollgjjfek"/>
</div>
</div>

View File

@ -212,7 +212,7 @@ class ConfigScreenComponent extends React.Component {
if (advancedSettingComps.length) {
const iconName = this.state.showAdvancedSettings ? 'fa fa-toggle-up' : 'fa fa-toggle-down';
const advancedSettingsButtonStyle = Object.assign({}, theme.buttonStyle, { marginBottom: 10 });
advancedSettingsButton = <button onClick={() => shared.advancedSettingsButton_click(this)} style={advancedSettingsButtonStyle}><i style={{fontSize: 14}} className={iconName}></i> {_('Show Advanced Settings')}</button>;
advancedSettingsButton = <button onClick={() => shared.advancedSettingsButton_click(this)} style={advancedSettingsButtonStyle}><i style={{ fontSize: 14 }} className={iconName}></i> {_('Show Advanced Settings')}</button>;
advancedSettingsSectionStyle.display = this.state.showAdvancedSettings ? 'block' : 'none';
}
@ -575,7 +575,7 @@ class ConfigScreenComponent extends React.Component {
borderTopColor: theme.dividerColor,
};
const screenComp = this.state.screenName ? <div style={{overflow: 'scroll', flex: 1}}>{this.screenFromName(this.state.screenName)}</div> : null;
const screenComp = this.state.screenName ? <div style={{ overflow: 'scroll', flex: 1 }}>{this.screenFromName(this.state.screenName)}</div> : null;
if (screenComp) containerStyle.display = 'none';

View File

@ -152,7 +152,7 @@ class MainScreenComponent extends React.Component {
.sort((a, b) => {
// sensitivity accent will treat accented characters as differemt
// but treats caps as equal
return a.label.localeCompare(b.label, undefined, {sensitivity: 'accent'});
return a.label.localeCompare(b.label, undefined, { sensitivity: 'accent' });
});
const allTags = await Tag.allWithNotes();
const tagSuggestions = allTags.map(a => {

View File

@ -1117,7 +1117,7 @@ class NoteTextComponent extends React.Component {
if (command.name === 'exportPdf') {
fn = this.commandSavePdf;
args = {noteId: command.noteId};
args = { noteId: command.noteId };
} else if (command.name === 'print') {
fn = this.commandPrint;
}

View File

@ -70,7 +70,7 @@ class OneDriveLoginScreenComponent extends React.Component {
return (
<div>
<Header style={headerStyle}/>
<div style={{padding: 10}}>
<div style={{ padding: 10 }}>
{logComps}
</div>
</div>

View File

@ -62,9 +62,9 @@ class Dialog extends React.PureComponent {
this.styles_[this.props.theme] = {
dialogBox: Object.assign({}, theme.dialogBox, { minWidth: '50%', maxWidth: '50%' }),
input: Object.assign({}, theme.inputStyle, { flex: 1 }),
row: {overflow: 'hidden', height: itemHeight, display: 'flex', justifyContent: 'center', flexDirection: 'column', paddingLeft: 10, paddingRight: 10},
row: { overflow: 'hidden', height: itemHeight, display: 'flex', justifyContent: 'center', flexDirection: 'column', paddingLeft: 10, paddingRight: 10 },
help: Object.assign({}, theme.textStyle, { marginBottom: 10 }),
inputHelpWrapper: {display: 'flex', flexDirection: 'row', alignItems: 'center'},
inputHelpWrapper: { display: 'flex', flexDirection: 'row', alignItems: 'center' },
};
const rowTextStyle = {
@ -254,7 +254,7 @@ class Dialog extends React.PureComponent {
return (
<div key={item.id} style={rowStyle} onClick={this.listItem_onClick} data-id={item.id} data-parent-id={item.parent_id}>
<div style={style.rowTitle} dangerouslySetInnerHTML={{__html: titleHtml}}></div>
<div style={style.rowTitle} dangerouslySetInnerHTML={{ __html: titleHtml }}></div>
{pathComp}
</div>
);

View File

@ -24,4 +24,4 @@ const injectCustomStyles = async cssFilePath => {
document.head.appendChild(styleTag);
};
module.exports = {loadCustomCss, injectCustomStyles};
module.exports = { loadCustomCss, injectCustomStyles };

View File

@ -3,7 +3,7 @@ const { shim } = require('lib/shim.js');
const JoplinError = require('lib/JoplinError');
const { rtrimSlashes } = require('lib/path-utils.js');
const base64 = require('base-64');
const {_ } = require('lib/locale');
const { _ } = require('lib/locale');
interface JoplinServerApiOptions {
username: Function,

View File

@ -45,7 +45,7 @@ TemplateUtils.loadTemplates = async function(filePath) {
// Make sure templates are always in the same order
// sensitivity ensures that the sort will ignore case
files.sort((a, b) => { return a.path.localeCompare(b.path, undefined, {sensitivity: 'accent'}); });
files.sort((a, b) => { return a.path.localeCompare(b.path, undefined, { sensitivity: 'accent' }); });
files.forEach(async file => {
if (file.path.endsWith('.md')) {

View File

@ -99,7 +99,7 @@ class CameraView extends Component {
return (
<TouchableOpacity onPress={onPress} style={Object.assign({}, style)}>
<View style={{borderRadius: 32, width: 60, height: 60, borderColor: '#00000040', borderWidth: 1, borderStyle: 'solid', backgroundColor: '#ffffff77', justifyContent: 'center', alignItems: 'center', alignSelf: 'baseline' }}>
<View style={{ borderRadius: 32, width: 60, height: 60, borderColor: '#00000040', borderWidth: 1, borderStyle: 'solid', backgroundColor: '#ffffff77', justifyContent: 'center', alignItems: 'center', alignSelf: 'baseline' }}>
{ icon }
</View>
</TouchableOpacity>
@ -152,7 +152,7 @@ class CameraView extends Component {
const displayRatios = shim.mobilePlatform() === 'android' && this.state.ratios.length > 1;
const reverseCameraButton = this.renderButton(this.reverse_onPress, 'md-reverse-camera', { flex: 1, flexDirection: 'row', justifyContent: 'flex-start', marginLeft: 20 });
const ratioButton = !displayRatios ? <View style={{ flex: 1 }}/> : this.renderButton(this.ratio_onPress, <Text style={{fontWeight: 'bold', fontSize: 20}}>{Setting.value('camera.ratio')}</Text>, { flex: 1, flexDirection: 'row', justifyContent: 'flex-end', marginRight: 20 });
const ratioButton = !displayRatios ? <View style={{ flex: 1 }}/> : this.renderButton(this.ratio_onPress, <Text style={{ fontWeight: 'bold', fontSize: 20 }}>{Setting.value('camera.ratio')}</Text>, { flex: 1, flexDirection: 'row', justifyContent: 'flex-end', marginRight: 20 });
let cameraRatio = '4:3';
const cameraProps = {};

View File

@ -170,7 +170,7 @@ class ScreenHeaderComponent extends React.PureComponent {
// Duplicate all selected notes. ensureUniqueTitle is set to true to use the
// original note's name as a root for the new unique identifier.
await Note.duplicateMultipleNotes(noteIds, {ensureUniqueTitle: true});
await Note.duplicateMultipleNotes(noteIds, { ensureUniqueTitle: true });
this.props.dispatch({ type: 'NOTE_SELECTION_END' });
}

View File

@ -443,7 +443,7 @@ class ConfigScreenComponent extends BaseScreenComponent {
const profileExportPrompt = (
<View style={this.styles().settingContainer}>
<Text style={this.styles().settingText}>Path:</Text>
<TextInput style={{marginRight: 20}} onChange={(event) => this.setState({profileExportPath: event.nativeEvent.text })} value={this.state.profileExportPath} placeholder="/path/to/sdcard"></TextInput>
<TextInput style={{ marginRight: 20 }} onChange={(event) => this.setState({ profileExportPath: event.nativeEvent.text })} value={this.state.profileExportPath} placeholder="/path/to/sdcard"></TextInput>
<Button title="OK" onPress={this.exportProfileButtonPress2_}></Button>
</View>
);

View File

@ -81,7 +81,7 @@ class SelectDateTimeDialog extends React.PureComponent {
width={0.9}
height={350}
>
<View style={{flex: 1, margin: 20, alignItems: 'center'}}>
<View style={{ flex: 1, margin: 20, alignItems: 'center' }}>
<DatePicker
date={this.state.date}
mode="datetime"
@ -90,7 +90,7 @@ class SelectDateTimeDialog extends React.PureComponent {
confirmBtnText={_('Confirm')}
cancelBtnText={_('Cancel')}
onDateChange={(date) => { this.setState({ date: this.stringToDate(date) }); }}
style={{width: 300}}
style={{ width: 300 }}
customStyles={{
btnConfirm: {
paddingVertical: 0,

View File

@ -11,7 +11,7 @@ function addResourceTag(lines, resource, attributes) {
const src = `:/${resource.id}`;
if (resourceUtils.isImageMimeType(resource.mime)) {
lines.push(resourceUtils.imgElement({src, attributes}));
lines.push(resourceUtils.imgElement({ src, attributes }));
} else if (resource.mime === 'audio/x-m4a') {
/**
* TODO: once https://github.com/laurent22/joplin/issues/1794 is resolved,
@ -162,9 +162,9 @@ async function enexXmlToHtml(xmlString, resources, options = {}) {
const beautifyHtml = (html) => {
return new Promise((resolve) => {
const options = {wrap: 0};
const options = { wrap: 0 };
cleanHtml.clean(html, options, (...cleanedHtml) => resolve(cleanedHtml));
});
};
module.exports = {enexXmlToHtml};
module.exports = { enexXmlToHtml };

View File

@ -1,5 +1,5 @@
const fs = require('fs-extra');
const {dirname } = require('../pathUtils');
const { dirname } = require('../pathUtils');
const rootDir = dirname(__dirname);
const assetsDir = `${rootDir}/assets`;

View File

@ -345,8 +345,8 @@ class Setting extends BaseModel {
},
// Deprecated - use markdown.plugin.*
'markdown.softbreaks': { value: false, type: Setting.TYPE_BOOL, public: false, appTypes: ['mobile', 'desktop']},
'markdown.typographer': { value: false, type: Setting.TYPE_BOOL, public: false, appTypes: ['mobile', 'desktop']},
'markdown.softbreaks': { value: false, type: Setting.TYPE_BOOL, public: false, appTypes: ['mobile', 'desktop'] },
'markdown.typographer': { value: false, type: Setting.TYPE_BOOL, public: false, appTypes: ['mobile', 'desktop'] },
// Deprecated
'markdown.plugin.softbreaks': { value: false, type: Setting.TYPE_BOOL, section: 'plugins', public: true, appTypes: ['mobile', 'desktop'], label: () => _('Enable soft breaks') },
@ -502,13 +502,13 @@ class Setting extends BaseModel {
'Tabloid': _('Tabloid'),
'Legal': _('Legal'),
};
}},
} },
'export.pdfPageOrientation': { value: 'portrait', type: Setting.TYPE_STRING, isEnum: true, public: true, appTypes: ['desktop'], label: () => _('Page orientation for PDF export'), options: () => {
return {
'portrait': _('Portrait'),
'landscape': _('Landscape'),
};
}},
} },
'net.customCertificates': {

View File

@ -45,17 +45,17 @@ const attributesToStr = (attributes) =>
.map(([key, value]) => ` ${key}="${escapeQuotes(value)}"`)
.join('');
const attachmentElement = ({src, attributes, id}) =>
const attachmentElement = ({ src, attributes, id }) =>
[
`<a href='joplin://${id}' ${attributesToStr(attributes)}>`,
` ${attributes.alt || src}`,
'</a>',
].join('');
const imgElement = ({src, attributes}) =>
const imgElement = ({ src, attributes }) =>
`<img src="${src}" ${attributesToStr(attributes)} />`;
const audioElement = ({src, alt, id}) =>
const audioElement = ({ src, alt, id }) =>
[
'<audio controls preload="none" style="width:480px;">',
` <source src="${src}" type="audio/mp4" />`,

View File

@ -196,7 +196,7 @@ class InteropService {
const ModuleClass = require(modulePath);
const output = new ModuleClass();
const moduleMetadata = this.findModuleByFormat_(type, options.format, options.target);
output.setMetadata({options, ...moduleMetadata}); // TODO: Check that this metadata is equivalent to module above
output.setMetadata({ options, ...moduleMetadata }); // TODO: Check that this metadata is equivalent to module above
return output;
}

View File

@ -13,7 +13,7 @@ class InteropService_Importer_EnexToHtml extends InteropService_Importer_Base {
folder = await Folder.save({ title: folderTitle });
}
await importEnex(folder.id, this.sourcePath_, {...this.options_, outputFormat: 'html'});
await importEnex(folder.id, this.sourcePath_, { ...this.options_, outputFormat: 'html' });
return result;
}

View File

@ -4,8 +4,8 @@ const Note = require('lib/models/Note.js');
const { basename, filename, rtrimSlashes, fileExtension, dirname } = require('lib/path-utils.js');
const { shim } = require('lib/shim');
const { _ } = require('lib/locale');
const {extractImageUrls} = require('lib/markdownUtils');
const {unique} = require('lib/ArrayUtils');
const { extractImageUrls } = require('lib/markdownUtils');
const { unique } = require('lib/ArrayUtils');
const { pregQuote } = require('lib/string-utils-common');
class InteropService_Importer_Md extends InteropService_Importer_Base {

View File

@ -8,7 +8,7 @@
// console.disableYellowBox = true
import {YellowBox} from 'react-native';
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings([
'Require cycle: node_modules/react-native-',
'Require cycle: node_modules/rn-fetch-blob',

View File

@ -717,10 +717,10 @@ class AppComponent extends React.Component {
let menuPosition = 'left';
if (this.props.routeName === 'Note') {
sideMenuContent = <SafeAreaView style={{flex: 1, backgroundColor: theme.backgroundColor}}><SideMenuContentNote options={this.props.noteSideMenuOptions}/></SafeAreaView>;
sideMenuContent = <SafeAreaView style={{ flex: 1, backgroundColor: theme.backgroundColor }}><SideMenuContentNote options={this.props.noteSideMenuOptions}/></SafeAreaView>;
menuPosition = 'right';
} else {
sideMenuContent = <SafeAreaView style={{flex: 1, backgroundColor: theme.backgroundColor}}><SideMenuContent/></SafeAreaView>;
sideMenuContent = <SafeAreaView style={{ flex: 1, backgroundColor: theme.backgroundColor }}><SideMenuContent/></SafeAreaView>;
}
const appNavInit = {
@ -750,12 +750,12 @@ class AppComponent extends React.Component {
}}
>
<MenuContext style={{ flex: 1 }}>
<SafeAreaView style={{flex: 0, backgroundColor: theme.raisedBackgroundColor}} />
<SafeAreaView style={{flex: 1, backgroundColor: theme.backgroundColor}}>
<SafeAreaView style={{ flex: 0, backgroundColor: theme.raisedBackgroundColor }} />
<SafeAreaView style={{ flex: 1, backgroundColor: theme.backgroundColor }}>
<AppNav screens={appNavInit} />
</SafeAreaView>
<DropdownAlert ref={ref => this.dropdownAlert_ = ref} tapToCloseEnabled={true} />
<Animated.View pointerEvents='none' style={{position: 'absolute', backgroundColor: 'black', opacity: this.state.sideMenuContentOpacity, width: '100%', height: '100%'}}/>
<Animated.View pointerEvents='none' style={{ position: 'absolute', backgroundColor: 'black', opacity: this.state.sideMenuContentOpacity, width: '100%', height: '100%' }}/>
</MenuContext>
</SideMenu>
);

View File

@ -25,7 +25,7 @@ toolUtils.execCommandWithPipes = function(executable, args) {
var spawn = require('child_process').spawn;
return new Promise((resolve, reject) => {
const child = spawn(executable, args, { stdio: 'inherit'});
const child = spawn(executable, args, { stdio: 'inherit' });
child.on('error', (error) => {
reject(error);

View File

@ -12,7 +12,7 @@ async function gitHubContributors(page) {
request.get({
url: `https://api.github.com/repos/laurent22/joplin/contributors${page ? `?page=${page}` : ''}`,
json: true,
headers: {'User-Agent': 'Joplin Readme Updater'},
headers: { 'User-Agent': 'Joplin Readme Updater' },
}, (error, response, data) => {
if (error) {
reject(error);

View File

@ -22,7 +22,7 @@ async function gitHubLatestRelease() {
request.get({
url: url,
json: true,
headers: {'User-Agent': 'Joplin Readme Updater'},
headers: { 'User-Agent': 'Joplin Readme Updater' },
}, (error, response, data) => {
if (error) {
reject(error);