mirror of
https://github.com/logto-io/logto.git
synced 2024-12-16 20:26:19 -05:00
.. | ||
connector-alipay-native | ||
connector-alipay-web | ||
connector-aliyun-dm | ||
connector-aliyun-sms | ||
connector-apple | ||
connector-aws-ses | ||
connector-azuread | ||
connector-dingtalk-web | ||
connector-discord | ||
connector-facebook | ||
connector-feishu-web | ||
connector-github | ||
connector-google | ||
connector-huggingface | ||
connector-kakao | ||
connector-logto-email | ||
connector-logto-sms | ||
connector-logto-social-demo | ||
connector-mailgun | ||
connector-mock-email | ||
connector-mock-email-alternative | ||
connector-mock-sms | ||
connector-mock-social | ||
connector-naver | ||
connector-oauth2 | ||
connector-oidc | ||
connector-saml | ||
connector-sendgrid-email | ||
connector-smsaero | ||
connector-smtp | ||
connector-tencent-sms | ||
connector-twilio-sms | ||
connector-wechat-native | ||
connector-wechat-web | ||
connector-wecom | ||
templates | ||
.gitignore | ||
README.md |
Logto connectors directory
Template syncing
Since all connectors have a same pattern for package.json
, here we leverage several techniques to avoid annoying copy-pastes:
When pnpm i
- The
"pnpm:devPreinstall"
script in the project root executestemplates/sync-preset.js
that:- Check every connectors's
package.json
to see if there's any unexpected keys - Sync
templates/package.json
by REPLACING every template key (except dependency keys) in the currentpackage.json
with the value from the templatepackage.json
- Copies all config files to every connector directory
- Check every connectors's
- The hook in
.pnpmfile.cjs
of the project root merges dependency fields for every connector- Also we can update arbitrary fields in this hook, we still need to keep non-dependency fields in the connector's
package.json
since the hook only takes affect duringpnpm i
.
- Also we can update arbitrary fields in this hook, we still need to keep non-dependency fields in the connector's
Caution Workspace dependencies should be defined in connector's package.json (not template) in order to let PNPM correctly resolves the workspace dependency tree;
Add a new custom field
Head to templates/sync-preset.js
and update allowedCustomKeys
.