Comments (5)
Good call @ecwyne, thank you for catching that. Just added a test and published a patch release!
from superstruct.
Thanks for such a quick response @ianstormtaylor!
One other idea I wanted to throw out there (and am happy to open a new issue if that would make more sense) is if it's possible to pass arguments into the defaults
function. For example:
The original object is passed in...
const CardDetails = struct({
cardNum: 'string',
last4: 'string'
}, {
last4: ({cardNum}) => `XXXX${cardNum.substr(cardNum.length - 4)}`
});
This is my actual use case. I'm wrapping a credit card API that requires me to provide both of these
from superstruct.
Hey @ecwyne I'm open to the idea! Right now the code for handling the defaults delegates to the lower-level functions, so it doesn't have access to that. But it would probably be a simple change in the object
struct type. I'd be open to a PR that implements this. Thanks!
from superstruct.
@ecwyne actually in a fun coincidence, I just realized I need this for the thing I'm working on. I've added it now!
from superstruct.
Brilliant! I love it!
from superstruct.
Related Issues (20)
- Generate struct from TS interface HOT 3
- Type-tests do not check for strict types
- Example coercion does not work. Have I done it right ? HOT 2
- [Question|Feature] Add functions to an interface
- [Feature] Support for `Required` HOT 1
- Please provide security reporting information or enable advisories
- `intersection` flattens unions too much HOT 1
- [Feature] `one of` or `or` type HOT 2
- [Feature] Discriminated unions (fast lookup) HOT 1
- `size` on `array` uses a permissive type
- Defaulted optional to undefined does not fill field with default value
- Never type creates a typescript issue
- Dynamic context property access
- Unexpected behaviour when combining `assign` + `refine`
- pattern (regex) does not return consistent output when using the global modifier
- Source maps seem broken HOT 4
- `instance` causes a TypeScript error with abstract classes
- Unions of instances produce unhelpful error message
- Fix compatibility with Node16/NodeNext moduleResolution HOT 4
- Mask fails on `interface aaa { foo: string; [key: string]: any }` interface with any key.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from superstruct.