Giter Club home page Giter Club logo

promzard's Issues

[FEATURE] <title>

What / Why

n/a

When

  • n/a

Where

  • n/a

How

Current Behavior

  • n/a

Expected Behavior

  • n/a

Who

  • n/a

References

  • n/a

Mistype in promzard.js

It seems that here is a mistype:

    d = a.default || d
    t = a.tranform || t
  }

tranform -> transform

Conditional prompts and conditional object creation

I'm not seeing a way to prompt conditionally or conditionally create an object. As a concrete example of both, consider a fancier way of prompting for the repository information from npm init. First, we prompt for the repo type:

repository type:

Now, if the user enters a value, we would prompt for the repository itself:

git repository:
-or-
svn repository:

(Yes, I know having different prompts in this case is silly; it's just a convenient example.)

If the user entered no value for repository type, though, we would not prompt for the repository URL at all.

If the user then enters a URL, the result would be:

{ type: "git", url: "my git url" }

but if the user did not enter a URL (or did not enter a type), we would leave the result undefined (i.e. no object at all), so that none of the repository structure would show up in package.json.

Is there a way to do this?

[BUG] <title>

What / Why

n/a

When

  • n/a

Where

  • n/a

How

Current Behavior

  • n/a

Steps to Reproduce

  • n/a

Expected Behavior

  • n/a

Who

  • n/a

References

  • n/a

promzard.PromZard fires data even when error occurred

Regarding the class promzard.PromZard the docs say:

Emits either a data event with the data, or a error event if it blows up. If error is emitted, then data never will be.

The following code throws an error in the input file. The result is that both error and data events are emitted.

const fs = require('fs')
const path = require('path')
const { inspect } = require('util')
const { PromZard } = require('promzard')

const inputFile = path.resolve(__dirname, 'input.js')
fs.writeFileSync(inputFile, `throw new Error('Break stuff')`)

const pz = new PromZard(inputFile, {})
pz.on('error', err => console.log('error: ' + err))
pz.on('data', data => console.log('data: ' + inspect(data)))

Output:

error: Error: Break stuff
data: {}

An example for effect in the wild: This bug causes init-package-json to continue wanting to write a file even after an error occurred during processing of the input file. Sample output using the input file from above with init-package-json:

Break stuff
About to write to /tmp/tmp.1uWPpEnFlC/package.json:

{
  "name": "",
  "version": ""
}


Is this OK? (yes) n
Aborted.

is there a way to validate and reprompt on bad input?

neat module @isaacs I'm wondering if there's a way to reprompt when a field fails validation? For instance example/npm-init/init-input.js reads version, but there's nothing preventing me from typing 'heh' at the prompt and having that accepted. I'd want to enforce semver for this field, and ditto for other field types. I looked at isaacs/npm/blob/master/lib/adduser.js to see how this was achieved, and notice it doesnt rely on promzard (uses your read package at a lower level.) Is this an intentional design decision, or what?

Missing license

Please add a license file to clarify what license this is distributed under.

I'd like to use node/npm for a project at work, but npm depends on this package and I'm not allowed to use software that doesn't have a clear license.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.