mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-11-04 15:11:31 +08:00 
			
		
		
		
	lazy loading of eslint only for JS code
This commit is contained in:
		
							parent
							
								
									89666eb078
								
							
						
					
					
						commit
						e1200aa308
					
				@ -142,7 +142,6 @@ const noteEditor = (function() {
 | 
			
		||||
        else if (currentNote.detail.type === 'code') {
 | 
			
		||||
            if (!codeEditor) {
 | 
			
		||||
                await requireLibrary(CODE_MIRROR);
 | 
			
		||||
                await requireLibrary(JS_LINT);
 | 
			
		||||
 | 
			
		||||
                CodeMirror.keyMap.default["Shift-Tab"] = "indentLess";
 | 
			
		||||
                CodeMirror.keyMap.default["Tab"] = "indentMore";
 | 
			
		||||
 | 
			
		||||
@ -143,24 +143,18 @@ const CODE_MIRROR = {
 | 
			
		||||
        "libraries/codemirror/addon/edit/matchbrackets.js",
 | 
			
		||||
        "libraries/codemirror/addon/edit/matchtags.js",
 | 
			
		||||
        "libraries/codemirror/addon/search/match-highlighter.js",
 | 
			
		||||
        "libraries/codemirror/mode/meta.js"
 | 
			
		||||
    ],
 | 
			
		||||
    css: [
 | 
			
		||||
        "libraries/codemirror/codemirror.css"
 | 
			
		||||
    ]
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const JS_LINT = {
 | 
			
		||||
    js: [
 | 
			
		||||
        "libraries/codemirror/mode/meta.js",
 | 
			
		||||
        "libraries/codemirror/addon/lint/lint.js",
 | 
			
		||||
        "libraries/codemirror/addon/lint/eslint.js",
 | 
			
		||||
        "libraries/eslint.js"
 | 
			
		||||
        "libraries/codemirror/addon/lint/eslint.js"
 | 
			
		||||
    ],
 | 
			
		||||
    css: [
 | 
			
		||||
        "libraries/codemirror/codemirror.css",
 | 
			
		||||
        "libraries/codemirror/addon/lint/lint.css"
 | 
			
		||||
    ]
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const ESLINT = { js: [ "libraries/eslint.js" ] };
 | 
			
		||||
 | 
			
		||||
async function requireLibrary(library) {
 | 
			
		||||
    if (library.css) {
 | 
			
		||||
        library.css.map(cssUrl => requireCss(cssUrl));
 | 
			
		||||
@ -173,13 +167,13 @@ async function requireLibrary(library) {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function requireScript(url) {
 | 
			
		||||
    const scripts = Array
 | 
			
		||||
        .from(document.querySelectorAll('script'))
 | 
			
		||||
        .map(scr => scr.src);
 | 
			
		||||
const dynamicallyLoadedScripts = [];
 | 
			
		||||
 | 
			
		||||
    if (!scripts.includes(url)) {
 | 
			
		||||
        return $.ajax({
 | 
			
		||||
async function requireScript(url) {
 | 
			
		||||
    if (!dynamicallyLoadedScripts.includes(url)) {
 | 
			
		||||
        dynamicallyLoadedScripts.push(url);
 | 
			
		||||
 | 
			
		||||
        return await $.ajax({
 | 
			
		||||
            url: url,
 | 
			
		||||
            dataType: "script",
 | 
			
		||||
            cache: true
 | 
			
		||||
 | 
			
		||||
@ -11,8 +11,8 @@
 | 
			
		||||
})(function(CodeMirror) {
 | 
			
		||||
  "use strict";
 | 
			
		||||
 | 
			
		||||
  function validator(text, options) {
 | 
			
		||||
    console.log("Validating script");
 | 
			
		||||
  async function validator(text, options) {
 | 
			
		||||
    await requireLibrary(ESLINT);
 | 
			
		||||
 | 
			
		||||
    var errors = new eslint().verify(text, {
 | 
			
		||||
        root: true,
 | 
			
		||||
@ -42,8 +42,6 @@
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    console.log(errors);
 | 
			
		||||
 | 
			
		||||
    var result = [];
 | 
			
		||||
    if (errors) parseErrors(errors, result);
 | 
			
		||||
    return result;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user