This package provides an opinionated TypeScript configuration for Quasar.work's Gear ⚙️ projects.
Learn more about TypeScript configurations.
Run the following command to install this package:
yarn add -D @quasarwork/gear-tsconfig
To enable a configuration, extend your tsconfig.json
file by adding the extends
property with the name of the configuration you want to use:
{
"extends": "@quasarwork/gear-tsconfig/server"
}
This configuration is the base configuration for all Quasar.work's Gear ⚙️ projects.
In a Gear Shopify app, this will be the configuration used in the tsconfig.json
file at the root of the project.
The used module
and moduleResolution
are based on the ones that can be found when kicking off a new Gadget app under the .gadget/server/tsconfig.json
file.
strict
property is mandatory for effect to work properly. See https://github.com/Effect-TS/effect/tree/main?tab=readme-ov-file#requirements.
exactOptionalPropertyTypes
property is mandatory for @effect/schema to work properly. See https://github.com/Effect-TS/effect/tree/main/packages/schema#requirements.
This configuration extends the base.json
configuration and replaces the module
and moduleResolution
as well as the target
properties. It also adds some features related to a client side usage.
In a Gear Shopify app, this configuration will be used in the tsconfig.json
file at the root of your /web
directory (client side).
The used module
, moduleResolution
are based on the ones that can be found when kicking off a new Gadget app under the .gadget/client/tsconfig.json
file.
This configuration extends the base.json
configuration and replaces the module
and moduleResolution
as well as the target
properties. It also adds some features related to a client side usage.
In a Gear Shopify app, this configuration will be used in the tsconfig.json
file at the root of your /extensions
directory (client side).
target
being es2015
means that Shopify extensions are currently unable to use @effect/schema.