diff --git a/db/migrations/0078__javascript_type.sql b/db/migrations/0078__javascript_type.sql new file mode 100644 index 000000000..804a6066c --- /dev/null +++ b/db/migrations/0078__javascript_type.sql @@ -0,0 +1 @@ +UPDATE notes SET mime = 'application/javascript;env=frontend' WHERE type = 'code' AND mime = 'application/javascript'; \ No newline at end of file diff --git a/src/entities/note.js b/src/entities/note.js index c0f758e02..79469e845 100644 --- a/src/entities/note.js +++ b/src/entities/note.js @@ -25,7 +25,7 @@ class Note extends Entity { isJavaScript() { return (this.type === "code" || this.type === "file") - && (this.mime === "application/javascript" || this.mime === "application/x-javascript"); + && (this.mime.startsWith("application/javascript") || this.mime === "application/x-javascript"); } isHtml() { diff --git a/src/public/javascripts/note_type.js b/src/public/javascripts/note_type.js index 916bb9427..8a0e9aa12 100644 --- a/src/public/javascripts/note_type.js +++ b/src/public/javascripts/note_type.js @@ -25,7 +25,8 @@ const noteType = (function() { { mime: 'text/html', title: 'HTML' }, { mime: 'message/http', title: 'HTTP' }, { mime: 'text/x-java', title: 'Java' }, - { mime: 'application/javascript', title: 'JavaScript' }, + { mime: 'application/javascript;env=frontend', title: 'JavaScript frontend' }, + { mime: 'application/javascript;env=backend', title: 'JavaScript backend' }, { mime: 'application/json', title: 'JSON' }, { mime: 'text/x-kotlin', title: 'Kotlin' }, { mime: 'text/x-lua', title: 'Lua' }, @@ -121,7 +122,7 @@ const noteType = (function() { }; this.updateExecuteScriptButtonVisibility = function() { - $executeScriptButton.toggle(self.mime() === 'application/javascript'); + $executeScriptButton.toggle(self.mime().startsWith('application/javascript')); } } diff --git a/src/public/libraries/codemirror/mode/javascript/javascript.js b/src/public/libraries/codemirror/mode/javascript/javascript.js index edab99f3d..7cdf72023 100644 --- a/src/public/libraries/codemirror/mode/javascript/javascript.js +++ b/src/public/libraries/codemirror/mode/javascript/javascript.js @@ -846,6 +846,8 @@ CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/); CodeMirror.defineMIME("text/javascript", "javascript"); CodeMirror.defineMIME("text/ecmascript", "javascript"); CodeMirror.defineMIME("application/javascript", "javascript"); +CodeMirror.defineMIME("application/javascript;env=frontend", "javascript"); +CodeMirror.defineMIME("application/javascript;env=backend", "javascript"); CodeMirror.defineMIME("application/x-javascript", "javascript"); CodeMirror.defineMIME("application/ecmascript", "javascript"); CodeMirror.defineMIME("application/json", {name: "javascript", json: true}); diff --git a/src/public/libraries/codemirror/mode/meta.js b/src/public/libraries/codemirror/mode/meta.js index 91a925268..ccf4dd7b1 100644 --- a/src/public/libraries/codemirror/mode/meta.js +++ b/src/public/libraries/codemirror/mode/meta.js @@ -70,7 +70,7 @@ {name: "Pug", mime: "text/x-pug", mode: "pug", ext: ["jade", "pug"], alias: ["jade"]}, {name: "Java", mime: "text/x-java", mode: "clike", ext: ["java"]}, {name: "Java Server Pages", mime: "application/x-jsp", mode: "htmlembedded", ext: ["jsp"], alias: ["jsp"]}, - {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/x-javascript", "application/ecmascript"], + {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/javascript;env=frontend", "application/javascript;env=backend", "application/x-javascript", "application/ecmascript"], mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]}, {name: "JSON", mimes: ["application/json", "application/x-json"], mode: "javascript", ext: ["json", "map"], alias: ["json5"]}, {name: "JSON-LD", mime: "application/ld+json", mode: "javascript", ext: ["jsonld"], alias: ["jsonld"]}, diff --git a/src/services/app_info.js b/src/services/app_info.js index 9335fe759..2633d1996 100644 --- a/src/services/app_info.js +++ b/src/services/app_info.js @@ -3,7 +3,7 @@ const build = require('./build'); const packageJson = require('../../package'); -const APP_DB_VERSION = 77; +const APP_DB_VERSION = 78; module.exports = { app_version: packageJson.version,