Code Monkey home page Code Monkey logo

Comments (3)

mdonnalley avatar mdonnalley commented on June 10, 2024

@bader-nasser Does using either the exactlyOne or relationships properties solve your use case?

If those don't get you what you need I'd recommend sticking with your current solution or submitting a PR for the feature yourself since I'm not sure we'd be able to prioritize this feature at the moment.

from core.

bader-nasser avatar bader-nasser commented on June 10, 2024

@mdonnalley No. I use relationships & exclusive and it handles some of my use cases.

firstPage: Flags.string({
        char: 'f',
        description: 'First page (defaults to lastPage)',
        // This flag cannot be specified alongside these other flags
        exclusive: ['pageRanges', 'data'],
}),
lastPage: Flags.string({
        char: 'l',
        description: 'Last page (defaults to firstPage)',
        // This flag cannot be specified alongside these other flags
        exclusive: ['pageRanges', 'data'],
}),
pageRanges: Flags.string({
        char: 'p',
        description: `Comma/Space-seperated list of page ranges (eg. "1-3, 5east, 4, 7-10even, 22-11odd")
See: https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-cat
See also: https://github.com/bader-nasser/pdftools/blob/main/test/docs/data.txt`,
        // This flag cannot be specified alongside these other flags
        exclusive: ['firstPage', 'lastPage', 'data'],
}),
data: Flags.string({
        char: 'd',
        description: `Data file (lines of page ranges)
See: https://github.com/bader-nasser/pdftools/blob/main/test/docs/data.txt`,
        // This flag cannot be specified alongside these other flags
        exclusive: ['firstPage', 'lastPage', 'pageRanges'],
}),
qualifier: Flags.string({
        char: 'q',
        options: ['even', 'odd'],
        description:
                'See: https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-cat',
        relationships: [
                // Make this flag dependent on at least one of these flags
                {type: 'some', flags: ['firstPage', 'lastPage']},
                // Make this flag exclusive of all these flags
                {type: 'none', flags: ['pageRanges', 'data']},
        ],
}),
rotation: Flags.string({
        char: 'r',
        options: ['north', 'south', 'east', 'west', 'left', 'right', 'down'],
        description:
                'See: https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-cat',
        relationships: [
                // Make this flag dependent on at least one of these flags
                {type: 'some', flags: ['firstPage', 'lastPage']},
                // Make this flag exclusive of all these flags
                {type: 'none', flags: ['pageRanges', 'data']},
        ],
}),

The current flags' configuration is great but I don't see a way to make some these flags required. I'll stick with my solution and I'm not sure about sending a PR for the time being.

from core.

git2gus avatar git2gus commented on June 10, 2024

This issue has been linked to a new work item: W-15187594

from core.

Related Issues (20)

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.