mihai-vlc / sublime-jsfmt

jsfmt plugin for Sublime Text
MIT License
477 stars 21 forks source link

Fails to format this #47

Closed octohedron closed 6 years ago

octohedron commented 7 years ago
const mongoose = require('mongoose');
import Schema from 'mongoose';

/**
 * Resolvers
 */
export const Resolvers = {
  Mutation: {
    /**
     * Example mutation
     */
    mutationA: (root, args) => {
      return new Promise((resolve, reject) => {
        setTimeout(() => reject('MongoDB timeout'), 3000);
        mModel.findOneAndUpdate({
          _id: Schema.ObjectId(args._id),
        }, {$set: {active: 0}}, {
          new: true
        }).then((ret) => {
          resolve(ret);
        });
      });
    }
  }
};

/**
 * Schema
 */
export const Schema = `
  schema {
    query: Query
    mutation: Mutation
}`;

Log


error: The formatting failed please check the console for more details.

JSFMT ==>
Error: /Library/Application Support/Sublime Text 3/Packages/jsfmt/jsfmt.js:31
        throw err;
        ^

TypeError: Cannot read property 'indexOf' of undefined
    at exports._transformNode (/Library/Application Support/Sublime Text 3/Packages/jsfmt/node_modules/esformatter-var-each/lib/esformatter-var-each.js:200:63)
    at Array.forEach (native)
    at Object.moonwalk (/Library/Application Support/Sublime Text 3/Packages/jsfmt/node_modules/esformatter-var-each/node_modules/rocambole/rocambole.js:414:11)
    at Object.exports.transform (/Library/Application Support/Sublime Text 3/Packages/jsfmt/node_modules/esformatter-var-each/lib/esformatter-var-each.js:311:13)
    at /Library/Application Support/Sublime Text 3/Packages/jsfmt/node_modules/esformatter/lib/plugins.js:90:26
    at Array.forEach (native)
    at Object.exec (/Library/Application Support/Sublime Text 3/Packages/jsfmt/node_modules/esformatter/lib/plugins.js:88:12)
    at Object.transform (/Library/Application Support/Sublime Text 3/Packages/jsfmt/node_modules/mout/function/partial.js:23:22)
    at transform (/Library/Application Support/Sublime Text 3/Packages/jsfmt/node_modules/esformatter/lib/transform.js:52:11)
    at doFormat (/Library/Application Support/Sublime Text 3/Packages/jsfmt/node_modules/esformatter/lib/format.js:64:3)

jsfmt.sublime-settings

{
  // autoformat on save
  "autoformat": false,

  // array of extensions for autoformat
  "extensions": ["js", "jsx", "sublime-settings"],

  // options for jsfmt
  "options": {
    "preset": "default"
  },
  // plugins included
  "plugins": [
    "esformatter-jsx"
  ],
  "jsx": {
    "formatJSX": true,
    // refer to https://github.com/royriojas/esformatter-jsx#best-configuration for more options
    "attrsOnSameLineAsTag": false,
    "maxAttrsOnTag": 1,
    "firstAttributeOnSameLine": false,
    "alignWithFirstAttribute": false
  },
  "options-JSON": {
    "plugins": [
      "esformatter-quotes",
    ],
    "quotes": {
      "type": "double"
    }
  },
  "alert-errors": true,
  "ignore-selection": false,
  "node-path": "~/.nvm/versions/node/v6.7.0/bin/node"
}
mihai-vlc commented 7 years ago

I just tried it locally and it worked without any issues.

Maybe try to upgrade your node version ? I tried it on v7.2

octohedron commented 7 years ago

Same problem with node v7.2.0

mihai-vlc commented 7 years ago

@octohedron did you also update the node-path in the configurations ?

octohedron commented 7 years ago

Yep, if I choose the wrong version it doesn't work, i.e. "node-path": "/Users/mb/.nvm/versions/node/v9.2.0/bin/node" crashes with can't find node version, but with 7.2.0 it works but fails to format that, it can format other files.

octohedron commented 6 years ago

Closing this since I don't use it anymore and last commit was over a year ago, switched to prettier and vscode.

👍