Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(schema): Added support for schema imports #14

Closed

Conversation

kbrandwijk
Copy link
Member

@kbrandwijk kbrandwijk commented Dec 22, 2017

As discussed in #12. This happens as a pre-build step, so no downstream tooling is affected by it.
This does affect the replacement function in the upcoming install.js, but as that isn't merged yet, I can't update it. If this PR makes it first, the other one can be updated accordingly.

It probably needs a better sample (or no sample at all) in the boilerplate. The second schema added here is just to prove that it works, but I think it shouldn't be in the default boilerplate.

@jlengstorf
Copy link
Member

Unfortunately, the CLI builds from source, so it falls down when we try to run it:

$ yarn dev
yarn run v1.3.2
$ gramps dev --data-source .

The GrAMPS CLI is intended for local development only.

 -> created a temporary directory at /Users/jasonlengstorf/dev/gramps-graphql/data-source-base/node_modules/@gramps/cli/.tmp/data-source-base
(node:7523) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: /Users/jasonlengstorf/dev/gramps-graphql/data-source-base/src/index.js: Path './schema.bundled.graphql' could not be found for '/Users/jasonlengstorf/dev/gramps-graphql/data-source-base/src/index.js'
(node:7523) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
 -> cleaning up temporary files

Successfully shut down. Thanks for using GrAMPS!

error Command failed with signal "SIGTERM".
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

However, this does run if we perform the following steps:

yarn build
yarn dev

It's easy enough to add a predev step for local data source development, but when working on a custom gateway, this could trip people up. 😕

# how will they know to build `data-source-mydata` before running this?
gramps dev -g ./my-gateway.js -d ../data-source-mydata

@kbrandwijk
Copy link
Member Author

kbrandwijk commented Dec 23, 2017

Wouldn't it be possible for the gramps cli to build a datasource first, before consuming it? And then use the file from ./dist/*.js instead of ./src/*.js? So you also don't need to do a babel transpile in code.

This is going to trip up anyway as soon as someone starts to develop a datasource in TS, and wants to use it locally. Then it should also run build on the datasource, and use the files from dist.
Depending on being able to run babel on a source folder in your cli is really, really brittle.
What if someone wants to build one in Reason? He would have no problem if he sets up his datasource package to run bsb on build. And the CLI would have no problem just using the files from the dist folder.
Or, what if someone uses other dependencies in their datasource? Babel wouldn't be able to resolve those, because it doesn't look at the package.json in the datasource folder.

@jlengstorf
Copy link
Member

Yeah, adding a call to the build script is probably a more sustainable solution. I added transpilation because at IBM I have more control over what the data sources are built with.

I've opened a new issue to track the change: #16

@kbrandwijk
Copy link
Member Author

One of the challenges of open-sourcing an internal lib 😄.

@kbrandwijk kbrandwijk closed this Jul 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants