Comments (6)
Also how does
"engines"
being"node": ">=12.0.0"
while having node types as"@types/node": "^17.0.33"
work?
@types/node
doesn't have official up-to-date typings for Node 12, so we use newer Node types and run on Node 12 as part of CI to make sure tests pass on Node 12.
from json-schema-to-typescript.
The question still stands, since npm
has 3 different versions of lockfile, so it has to be removed from .gitignore
and committed to the repo.
Assuming the nodejs
npm
mapping is the source of truth for supported version pairs, node 12
peaked at npm 6
(and therefore at lockfile version 1), which is quite a requirement for the developer machine. It basically assumes the person forking the repo knows how to juggle multiple versions of node and npm in a multiplatform context.
Is it really important to support a version of node 3 versions below the current Maintenance LTS (18)? What would be the price of releasing a semver major which ups the required NodeJS version to 18 (Maintenance LTS) or 20 (Active LTS)?
from json-schema-to-typescript.
Is this causing a specific issue for you? If so, please feel free to elaborate.
from json-schema-to-typescript.
The specific issue is writing nodejs
code using node 17 types but for node 12 target. It is quite a jump: ESM support, a lot of fs
-related interfaces got slightly changed and even fs/promises
was added, better ECMAScript support (i.e. Array.at()
, nullish coalescing, optional chaining). It even has a built-in args parser now.
As for npm
, the lock file is required to have reproducible builds, more so on later versions which don't seem to be as relaxed as older ones and so don't change the lock file on bare install
command (even if dependencies allow for minor/patch version up), unless it's some platform-specific dependencies missing. And the version of npm
is tied to a version of nodejs
anyway.
from json-schema-to-typescript.
I've looked into the repo further and there is .nvmrc
file, which is a config file for nvm
. And it says nvm
should switch to node 16
. So there is another source of truth claiming the required version of node. Which is different from the other two.
EDIT: Also yarn
is used in a CI file, and there is a .yarn/releases
folder with a file which constitutes a 1/3rd of the source code size.
from json-schema-to-typescript.
The fork of json-schema-ref-parser
, which is a dependency of this repo, has "engines": {"node": ">= 16"}
within its package.json
, so it's another source of NodeJS which conflicts with other metadata except for .nvmrc
.
from json-schema-to-typescript.
Related Issues (20)
- how to handle this error "This interface was referenced by ..." HOT 1
- `RangeError` for circular references to `oneOf` containing definition with the `$ref` HOT 3
- Crash for deprecated field missing description HOT 1
- A bit unclear about the purpose of `declareExternallyReferenced` and intention HOT 1
- Support ESM usage of module HOT 3
- Create `index.ts` when generating files from a directory HOT 1
- List on json-schema.org HOT 1
- Create Typscript schema with external references
- Convert empty object to Record<string,never> HOT 3
- Remove optional flag in case of `default` in schema. HOT 8
- `strictIndexSignatures` option is ignored for single pattern properties
- Package lists dev dependencies as dependencies HOT 4
- If `minProperties` is greater than or equal to the number of declared properties and `additionalProperties` is `false`, all properties should be required HOT 2
- properties + anyOf generates incorrect output
- `compile()` ignores `$refOptions.resolve` settings HOT 1
- `SyntaxError` while building browser bundle HOT 2
- Add option to remove `[k: string]: unknown | undefined;` from generated types HOT 5
- Add yaml support HOT 3
- Static imports for $refs HOT 5
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 json-schema-to-typescript.