loopbackio / loopbackio/loopback-next
Support GeoPoint type
まだ誰も着手していません。
- 主要言語
- TypeScript
- スター
- 5.1k
- フォーク
- 1.1k
- 平均マージ
- 2日 21時間
- マージ済み PR(30日)
- 27
説明
# Description/Steps to reproduce
I'm attempting to start my project by using `npm start` and get the following output:
```
> project-api@1.0.0 prestart /Users/joris/Documents/Personal/Projects/project/project-api
> npm run build
> project-api@1.0.0 build /Users/joris/Documents/Personal/Projects/project/project-api
> lb-tsc es2017 --outDir dist
> project-api@1.0.0 start /Users/joris/Documents/Personal/Projects/project/project-api
> node .
Cannot start the application. Error: Unsupported type: geopoint
at stringTypeToWrapper (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/repository-json-schema/dist/src/build-schema.js:68:19)
at metaToJsonProperty (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/repository-json-schema/dist/src/build-schema.js:101:25)
at modelToJsonSchema (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/repository-json-schema/dist/src/build-schema.js:151:32)
at Object.getJsonSchema (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/repository-json-schema/dist/src/build-schema.js:22:27)
at generateOpenAPISchema (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/openapi-v3/dist/src/controller-spec.js:181:49)
at resolveControllerSpec (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/openapi-v3/dist/src/controller-spec.js:128:17)
at Object.getControllerSpec (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/openapi-v3/dist/src/controller-spec.js:205:16)
at RestServer._setupHandlerIfNeeded (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/rest/dist/src/rest.server.js:195:42)
at RestServer.start (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/rest/dist/src/rest.server.js:498:14)
at _forEachServer.s (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/core/dist/src/application.js:123:42)
at Promise.all.bindings.map (/Users/joris/Documents/Personal/Projects/project/project-api/node_modules/@loopback/core/dist/src/application.js:145:26)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! project-api@1.0.0 start: `node .`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the project-api@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/joris/.npm/_logs/2018-11-05T15_06_38_766Z-debug.log
```
In one of my models, I have a property of type 'geopoint':
```
@property({
type: 'geopoint',
required: true,
})
location: string;
```
Upon closer inspection, no `case` is defined for the `'geopoint'` type in the switch statement in `@loopback/repository-json-schema/dist/src/build-schema.js`.
# Expected result
For the Loopback 4 project to start.
# Additional information
- `node -e 'console.log(process.platform, process.arch, process.versions.node)'` shows `darwin x64 10.12.0`
- `npm ls --prod --depth 0 | grep loopback` shows no output
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
@loopback/repository-json-schema/dist/src/build-schema.js にある「Unsupported type: geopoint」を報告する switch から始め、次に @loopback/openapi-v3 を通じてスキーマがどのように生成されるかを追跡します。geopoint プロパティを使用するモデルで、報告されている npm start のシナリオを実行します。そのエラーなしでアプリケーションが起動すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- openapi, typescript
- 領域
- api
- issue の種類
- 機能追加
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100