Преглед изворни кода

Sanity-check decaffeinate app.Router

Simon Legner пре 1 година
родитељ
комит
5a3e872cd7
1 измењених фајлова са 21 додато и 51 уклоњено
  1. 21 51
      assets/javascripts/app/router.js

+ 21 - 51
assets/javascripts/app/router.js

@@ -1,34 +1,21 @@
-// TODO: This file was created by bulk-decaffeinate.
-// Sanity-check the conversion and remove this comment.
-/*
- * decaffeinate suggestions:
- * DS101: Remove unnecessary use of Array.from
- * DS102: Remove unnecessary code created because of implicit returns
- * DS103: Rewrite code to no longer use __guard__, or convert again using --optional-chaining
- * DS206: Consider reworking classes to avoid initClass
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
- */
 app.Router = class Router extends Events {
-  static initClass() {
-    this.routes = [
-      ["*", "before"],
-      ["/", "root"],
-      ["/settings", "settings"],
-      ["/offline", "offline"],
-      ["/about", "about"],
-      ["/news", "news"],
-      ["/help", "help"],
-      ["/:doc-:type/", "type"],
-      ["/:doc/", "doc"],
-      ["/:doc/:path(*)", "entry"],
-      ["*", "notFound"],
-    ];
-  }
+  static routes = [
+    ["*", "before"],
+    ["/", "root"],
+    ["/settings", "settings"],
+    ["/offline", "offline"],
+    ["/about", "about"],
+    ["/news", "news"],
+    ["/help", "help"],
+    ["/:doc-:type/", "type"],
+    ["/:doc/", "doc"],
+    ["/:doc/:path(*)", "entry"],
+    ["*", "notFound"],
+  ];
 
   constructor() {
     super();
-    for (var [path, method] of Array.from(this.constructor.routes)) {
+    for (var [path, method] of this.constructor.routes) {
       page(path, this[method].bind(this));
     }
     this.setInitialPath();
@@ -78,13 +65,11 @@ app.Router = class Router extends Events {
   }
 
   type(context, next) {
-    let type;
     const doc = app.docs.findBySlug(context.params.doc);
+    const type =
+      doc != null ? doc.types.findBy("slug", context.params.type) : undefined;
 
-    if (
-      (type =
-        doc != null ? doc.types.findBy("slug", context.params.type) : undefined)
-    ) {
+    if (type) {
       context.doc = doc;
       context.type = type;
       this.triggerRoute("type");
@@ -174,18 +159,13 @@ app.Router = class Router extends Events {
 
   isIndex() {
     return (
-      (this.context != null ? this.context.path : undefined) === "/" ||
-      (app.isSingleDoc() &&
-        __guard__(this.context != null ? this.context.entry : undefined, (x) =>
-          x.isIndex(),
-        ))
+      this.context?.path === "/" ||
+      (app.isSingleDoc() && this.context?.entry?.isIndex())
     );
   }
 
   isSettings() {
-    return (
-      (this.context != null ? this.context.path : undefined) === "/settings"
-    );
+    return this.context?.path === "/settings";
   }
 
   setInitialPath() {
@@ -208,10 +188,7 @@ app.Router = class Router extends Events {
 
   getInitialPathFromHash() {
     try {
-      return __guard__(
-        new RegExp("#/(.+)").exec(decodeURIComponent(location.hash)),
-        (x) => x[1],
-      );
+      return new RegExp("#/(.+)").exec(decodeURIComponent(location.hash))?.[1];
     } catch (error) {}
   }
 
@@ -231,10 +208,3 @@ app.Router = class Router extends Events {
     );
   }
 };
-app.Router.initClass();
-
-function __guard__(value, transform) {
-  return typeof value !== "undefined" && value !== null
-    ? transform(value)
-    : undefined;
-}