@aws/nx-plugin 0.79.0 → 0.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-THIRD-PARTY +69 -11
- package/package.json +27 -27
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +32 -8
- package/src/preset/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +298 -57
- package/src/py/fast-api/files/app/__name__/init.py.template +61 -16
- package/src/py/fast-api/files/app/__name__/main.py.template +6 -3
- package/src/py/fast-api/files/app/run.sh.template +2 -0
- package/src/py/fast-api/generator.js +10 -2
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/project/generator.js +9 -17
- package/src/py/project/generator.js.map +1 -1
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +23 -1
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +15 -0
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +42 -14
- package/src/ts/lib/eslint.js +15 -13
- package/src/ts/lib/eslint.js.map +1 -1
- package/src/ts/lib/generator.js +0 -17
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/vitest.js +6 -2
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +82 -58
- package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +28 -2
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +30 -4
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +44 -2
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +62 -2
- package/src/utils/versions.d.ts +4 -5
- package/src/utils/versions.js +3 -4
- package/src/utils/versions.js.map +1 -1
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
import json
|
|
1
2
|
import os
|
|
2
3
|
import uuid
|
|
3
|
-
from collections.abc import Callable
|
|
4
|
+
from collections.abc import AsyncIterator, Callable
|
|
5
|
+
from typing import Any
|
|
4
6
|
from urllib.parse import urlparse
|
|
5
7
|
|
|
6
8
|
from aws_lambda_powertools import Logger, Metrics, Tracer
|
|
7
9
|
from aws_lambda_powertools.metrics import MetricUnit
|
|
8
10
|
from fastapi import FastAPI, Request, Response
|
|
9
11
|
from fastapi.openapi.utils import get_openapi
|
|
10
|
-
from fastapi.responses import JSONResponse
|
|
12
|
+
from fastapi.responses import JSONResponse, StreamingResponse
|
|
11
13
|
from fastapi.routing import APIRoute
|
|
12
|
-
from mangum import Mangum
|
|
13
14
|
from pydantic import BaseModel
|
|
14
15
|
from starlette.middleware.exceptions import ExceptionMiddleware
|
|
15
16
|
|
|
@@ -25,16 +26,54 @@ class InternalServerErrorDetails(BaseModel):
|
|
|
25
26
|
detail: str
|
|
26
27
|
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
class JsonStreamingResponse(StreamingResponse):
|
|
30
|
+
"""A streaming response that serializes items to JSON Lines format."""
|
|
31
|
+
|
|
32
|
+
media_type = "application/jsonl"
|
|
33
|
+
|
|
34
|
+
def __init__(
|
|
35
|
+
self,
|
|
36
|
+
content: AsyncIterator[BaseModel],
|
|
37
|
+
status_code: int = 200,
|
|
38
|
+
headers: dict[str, str] | None = None,
|
|
39
|
+
**kwargs: Any,
|
|
40
|
+
) -> None:
|
|
41
|
+
"""Stream json lines from an async iterator yielding Pydantic models"""
|
|
42
|
+
super().__init__(
|
|
43
|
+
content=self._serialize(content),
|
|
44
|
+
status_code=status_code,
|
|
45
|
+
headers=headers,
|
|
46
|
+
media_type=self.media_type,
|
|
47
|
+
**kwargs,
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
@staticmethod
|
|
51
|
+
async def _serialize(
|
|
52
|
+
content: AsyncIterator[BaseModel],
|
|
53
|
+
) -> AsyncIterator[bytes]:
|
|
54
|
+
"""Serialize Pydantic models to JSON Lines format."""
|
|
55
|
+
async for item in content:
|
|
56
|
+
yield (item.model_dump_json() + "\n").encode("utf-8")
|
|
57
|
+
|
|
58
|
+
@staticmethod
|
|
59
|
+
def openapi_response(
|
|
60
|
+
item_model: type[BaseModel],
|
|
61
|
+
description: str = "Streaming response",
|
|
62
|
+
) -> dict[str, Any]:
|
|
63
|
+
"""Generate an OpenAPI application/jsonl response for a stream of the given model"""
|
|
64
|
+
return {
|
|
65
|
+
"description": description,
|
|
66
|
+
"content": {
|
|
67
|
+
"application/jsonl": {
|
|
68
|
+
"itemSchema": {"$ref": f"#/components/schemas/{item_model.__name__}"},
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
# Include the model so FastAPI registers the schema in components/schemas
|
|
72
|
+
"model": item_model,
|
|
73
|
+
}
|
|
74
|
+
|
|
30
75
|
|
|
31
|
-
|
|
32
|
-
lambda_handler.__name__ = "handler" # tracer requires __name__ to be set
|
|
33
|
-
lambda_handler = tracer.capture_lambda_handler(lambda_handler)
|
|
34
|
-
# Add logging
|
|
35
|
-
lambda_handler = logger.inject_lambda_context(lambda_handler, clear_state=True)
|
|
36
|
-
# Add metrics last to properly flush metrics.
|
|
37
|
-
lambda_handler = metrics.log_metrics(lambda_handler, capture_cold_start_metric=True)
|
|
76
|
+
app = FastAPI(title="<%= apiNameClassName %>", responses={500: {"model": InternalServerErrorDetails}})
|
|
38
77
|
|
|
39
78
|
|
|
40
79
|
# Add cors middleware
|
|
@@ -92,10 +131,16 @@ async def metrics_handler(request: Request, call_next):
|
|
|
92
131
|
async def add_correlation_id(request: Request, call_next):
|
|
93
132
|
# Get correlation id from X-Correlation-Id header
|
|
94
133
|
corr_id = request.headers.get("x-correlation-id")
|
|
95
|
-
if not corr_id
|
|
96
|
-
#
|
|
97
|
-
|
|
98
|
-
|
|
134
|
+
if not corr_id:
|
|
135
|
+
# Try to get request id from Lambda context (forwarded by Lambda Web Adapter)
|
|
136
|
+
lambda_context_header = request.headers.get("x-amzn-lambda-context")
|
|
137
|
+
if lambda_context_header:
|
|
138
|
+
try:
|
|
139
|
+
lambda_context = json.loads(lambda_context_header)
|
|
140
|
+
corr_id = lambda_context.get("request_id")
|
|
141
|
+
except (json.JSONDecodeError, KeyError):
|
|
142
|
+
pass
|
|
143
|
+
if not corr_id:
|
|
99
144
|
# If still empty, use uuid
|
|
100
145
|
corr_id = uuid.uuid4().hex
|
|
101
146
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
import uvicorn
|
|
1
2
|
from pydantic import BaseModel
|
|
2
3
|
|
|
3
|
-
from .init import app,
|
|
4
|
-
|
|
5
|
-
handler = lambda_handler
|
|
4
|
+
from .init import app, tracer
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
class EchoOutput(BaseModel):
|
|
@@ -13,3 +12,7 @@ class EchoOutput(BaseModel):
|
|
|
13
12
|
@tracer.capture_method
|
|
14
13
|
def echo(message: str) -> EchoOutput:
|
|
15
14
|
return EchoOutput(message=f"{message}")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
if __name__ == "__main__":
|
|
18
|
+
uvicorn.run("<%- name %>.main:app", port=8000)
|
|
@@ -16,6 +16,7 @@ const object_1 = require("../../utils/object");
|
|
|
16
16
|
const nx_1 = require("../../utils/nx");
|
|
17
17
|
const metrics_1 = require("../../utils/metrics");
|
|
18
18
|
const api_constructs_1 = require("../../utils/api-constructs/api-constructs");
|
|
19
|
+
const fs_1 = require("../../utils/fs");
|
|
19
20
|
const open_api_1 = require("./react/open-api");
|
|
20
21
|
const port_1 = require("../../utils/port");
|
|
21
22
|
const bundle_1 = require("../../utils/bundle/bundle");
|
|
@@ -46,7 +47,14 @@ const pyFastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, vo
|
|
|
46
47
|
});
|
|
47
48
|
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, fullyQualifiedName);
|
|
48
49
|
const port = (0, port_1.assignPort)(tree, projectConfig, 8000);
|
|
49
|
-
const { bundleOutputDir } = (0, bundle_1.addPythonBundleTarget)(projectConfig);
|
|
50
|
+
const { bundleOutputDir, bundleTargetName } = (0, bundle_1.addPythonBundleTarget)(projectConfig);
|
|
51
|
+
// Add a command to copy run.sh to the bundle output for Lambda Web Adapter
|
|
52
|
+
const fs = new fs_1.FsCommands(tree);
|
|
53
|
+
const bundleTarget = projectConfig.targets[bundleTargetName];
|
|
54
|
+
bundleTarget.options.commands = [
|
|
55
|
+
...bundleTarget.options.commands,
|
|
56
|
+
fs.cp(`{projectRoot}/run.sh`, `dist/{projectRoot}/${bundleTargetName}/run.sh`),
|
|
57
|
+
];
|
|
50
58
|
projectConfig.targets.serve = {
|
|
51
59
|
executor: '@nxlv/python:run-commands',
|
|
52
60
|
options: {
|
|
@@ -96,7 +104,7 @@ const pyFastApiProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, vo
|
|
|
96
104
|
});
|
|
97
105
|
(0, py_1.addDependenciesToPyProjectToml)(tree, dir, [
|
|
98
106
|
'fastapi',
|
|
99
|
-
'
|
|
107
|
+
'uvicorn',
|
|
100
108
|
'aws-lambda-powertools',
|
|
101
109
|
'aws-lambda-powertools[tracer]',
|
|
102
110
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/fast-api/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAUoB;AAEpB,yDAA6D;AAC7D,0EAA+E;AAC/E,qEAA0E;AAC1E,6CAA6D;AAC7D,+CAA0D;AAC1D,+CAAoD;AACpD,uCAIwB;AACxB,iDAAsE;AACtE,8EAA+E;AAC/E,+CAAwD;AACxD,2CAA8C;AAC9C,sDAAkE;AAClE,uCAGwB;AACxB,yCAAqD;AACrD,oFAAgH;AAEnG,QAAA,uBAAuB,GAClC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAE/B;;GAEG;AACI,MAAM,yBAAyB,GAAG,CACvC,IAAU,EACV,MAAuC,EACX,EAAE;IAC9B,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAkB,EAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvE,MAAM,IAAA,6CAAyB,EAAC,IAAI,EAAE;QACpC,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,IAAA,+BAAmB,EAC3E,IAAI,EACJ;QACE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CACF,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElD,MAAM,IAAA,mBAAkB,EAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,oBAAoB;QAChC,WAAW,EAAE,aAAa;KAC3B,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAEnD,MAAM,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/fast-api/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAUoB;AAEpB,yDAA6D;AAC7D,0EAA+E;AAC/E,qEAA0E;AAC1E,6CAA6D;AAC7D,+CAA0D;AAC1D,+CAAoD;AACpD,uCAIwB;AACxB,iDAAsE;AACtE,8EAA+E;AAC/E,uCAA4C;AAC5C,+CAAwD;AACxD,2CAA8C;AAC9C,sDAAkE;AAClE,uCAGwB;AACxB,yCAAqD;AACrD,oFAAgH;AAEnG,QAAA,uBAAuB,GAClC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAE/B;;GAEG;AACI,MAAM,yBAAyB,GAAG,CACvC,IAAU,EACV,MAAuC,EACX,EAAE;IAC9B,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAkB,EAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvE,MAAM,IAAA,6CAAyB,EAAC,IAAI,EAAE;QACpC,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,IAAA,+BAAmB,EAC3E,IAAI,EACJ;QACE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CACF,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElD,MAAM,IAAA,mBAAkB,EAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,oBAAoB;QAChC,WAAW,EAAE,aAAa;KAC3B,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAEnD,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GACzC,IAAA,8BAAqB,EAAC,aAAa,CAAC,CAAC;IAEvC,2EAA2E;IAC3E,MAAM,EAAE,GAAG,IAAI,eAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7D,YAAY,CAAC,OAAO,CAAC,QAAQ,GAAG;QAC9B,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ;QAChC,EAAE,CAAC,EAAE,CACH,sBAAsB,EACtB,sBAAsB,gBAAgB,SAAS,CAChD;KACF,CAAC;IAEF,aAAa,CAAC,OAAO,CAAC,KAAK,GAAG;QAC5B,QAAQ,EAAE,2BAA2B;QACrC,OAAO,EAAE;YACP,OAAO,EAAE,sBAAsB,oBAAoB,mBAAmB,IAAI,EAAE;YAC5E,GAAG,EAAE,eAAe;SACrB;QACD,UAAU,EAAE,IAAI;KACjB,CAAC;IAEF,aAAa,CAAC,QAAQ,GAAG,gCACpB,aAAa,CAAC,QAAQ,KACzB,OAAO,EAAE,MAAM,CAAC,IAAI,EACpB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,CAAC,IAAI,GACX,CAAC;IAET,aAAa,CAAC,OAAO,GAAG,IAAA,uBAAc,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAA,mCAA0B,EAAC,IAAI,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAEpE,mEAAmE;IACnE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,+BAAoB,EAAC,IAAI,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAE5E;QACE,IAAA,0BAAiB,EAAC,GAAG,EAAE,oBAAoB,EAAE,UAAU,CAAC;QACxD,IAAA,0BAAiB,EAAC,GAAG,EAAE,OAAO,EAAE,eAAe,CAAC;KACjD,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAA,sBAAa,EACX,IAAI,EAAE,0BAA0B;IAChC,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,6BAA6B;IAC3E,GAAG,EAAE,gCAAgC;IACrC;QACE,IAAI,EAAE,oBAAoB;QAC1B,gBAAgB;QAChB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,EACD;QACE,iBAAiB,EAAE,0BAAiB,CAAC,SAAS;KAC/C,CACF,CAAC;IAEF,mEAAmE;IACnE,IAAA,mCAAkB,EAAC,IAAI,EAAE;QACvB,cAAc,EAAE,aAAa,CAAC,IAAI;QAClC,gBAAgB;QAChB,gBAAgB;QAChB,aAAa,EACX,MAAM,CAAC,WAAW,KAAK,6BAA6B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACxE,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,oBAAoB;YAChC,eAAe;SAChB;QACD,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW;KACZ,CAAC,CAAC;IAEH,IAAA,oEAAgD,EAAC,IAAI,EAAE;QACrD,WAAW;QACX,gBAAgB;QAChB,QAAQ;QACR,mBAAmB,EAAE,GAAG,aAAa,CAAC,IAAI,UAAU;KACrD,CAAC,CAAC;IAEH,IAAA,mCAA8B,EAAC,IAAI,EAAE,GAAG,EAAE;QACxC,SAAS;QACT,SAAS;QACT,uBAAuB;QACvB,+BAA+B;KAChC,CAAC,CAAC;IACH,IAAA,oDAA+C,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;QAChE,mBAAmB;KACpB,CAAC,CAAC;IAEH,IAAA,yBAAoB,EAAC,IAAI,EAAE,kBAAkB,EAAE,+BAAuB,CAAC,CAAC;IAExE,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE,CAAC,+BAAuB,CAAC,CAAC,CAAC;IAEvE,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IAEjC,OAAO,GAAS,EAAE;QAChB,MAAM,IAAI,wBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,oBAAM,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9D,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAA,CAAC;AACJ,CAAC,CAAA,CAAC;AAjIW,QAAA,yBAAyB,6BAiIpC;AACF,kBAAe,iCAAyB,CAAC"}
|
|
@@ -34,8 +34,7 @@ exports.getPyProjectDetails = getPyProjectDetails;
|
|
|
34
34
|
* Generates a Python project
|
|
35
35
|
*/
|
|
36
36
|
const pyProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
-
var _a, _b, _c, _d, _e, _f
|
|
38
|
-
var _h;
|
|
37
|
+
var _a, _b, _c, _d, _e, _f;
|
|
39
38
|
const { dir, normalizedModuleName, fullyQualifiedName } = (0, exports.getPyProjectDetails)(tree, schema);
|
|
40
39
|
const pythonPlugin = (0, versions_1.withVersions)(['@nxlv/python']);
|
|
41
40
|
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, pythonPlugin);
|
|
@@ -54,17 +53,6 @@ const pyProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void 0, v
|
|
|
54
53
|
},
|
|
55
54
|
];
|
|
56
55
|
}
|
|
57
|
-
(_c = nxJson.targetDefaults) !== null && _c !== void 0 ? _c : (nxJson.targetDefaults = {});
|
|
58
|
-
(_d = (_h = nxJson.targetDefaults)['@nxlv/python:ruff-check']) !== null && _d !== void 0 ? _d : (_h['@nxlv/python:ruff-check'] = {
|
|
59
|
-
configurations: {
|
|
60
|
-
fix: {
|
|
61
|
-
fix: true,
|
|
62
|
-
},
|
|
63
|
-
'skip-lint': {
|
|
64
|
-
exitZero: true,
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
56
|
(0, devkit_1.updateNxJson)(tree, nxJson);
|
|
69
57
|
if (!tree.exists('uv.lock')) {
|
|
70
58
|
yield (0, nxlv_python_1.migrateToSharedVenvGenerator)(tree, {
|
|
@@ -104,7 +92,7 @@ const pyProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void 0, v
|
|
|
104
92
|
const buildTarget = projectConfiguration.targets.build;
|
|
105
93
|
projectConfiguration.targets.compile = Object.assign(Object.assign({}, buildTarget), { outputs: [buildOutputPath], options: Object.assign(Object.assign({}, buildTarget.options), { outputPath: buildOutputPath }) });
|
|
106
94
|
projectConfiguration.targets.build = {
|
|
107
|
-
dependsOn: ['lint', 'compile', 'test', ...((
|
|
95
|
+
dependsOn: ['lint', 'compile', 'test', ...((_c = buildTarget.dependsOn) !== null && _c !== void 0 ? _c : [])],
|
|
108
96
|
options: {
|
|
109
97
|
outputPath,
|
|
110
98
|
},
|
|
@@ -119,10 +107,14 @@ const pyProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void 0, v
|
|
|
119
107
|
});
|
|
120
108
|
// Add a dependency on the format target for lint in order to reduce the number of
|
|
121
109
|
// fixable lint errors (eg line too long)
|
|
122
|
-
projectConfiguration.targets.lint = Object.assign(Object.assign({}, projectConfiguration.targets.lint), { dependsOn: [
|
|
123
|
-
...((
|
|
110
|
+
projectConfiguration.targets.lint = Object.assign(Object.assign({}, projectConfiguration.targets.lint), { cache: true, dependsOn: [
|
|
111
|
+
...((_e = (_d = projectConfiguration.targets.lint) === null || _d === void 0 ? void 0 : _d.dependsOn) !== null && _e !== void 0 ? _e : []).filter((d) => d !== 'format'),
|
|
124
112
|
'format',
|
|
125
|
-
] })
|
|
113
|
+
], configurations: Object.assign(Object.assign({}, (_f = projectConfiguration.targets.lint) === null || _f === void 0 ? void 0 : _f.configurations), { fix: {
|
|
114
|
+
fix: true,
|
|
115
|
+
}, 'skip-lint': {
|
|
116
|
+
exitZero: true,
|
|
117
|
+
} }) });
|
|
126
118
|
projectConfiguration.targets = (0, object_1.sortObjectKeys)(projectConfiguration.targets);
|
|
127
119
|
(0, devkit_1.updateProjectConfiguration)(tree, fullyQualifiedName, projectConfiguration);
|
|
128
120
|
(0, nx_1.addGeneratorMetadata)(tree, fullyQualifiedName, exports.PY_PROJECT_GENERATOR_INFO);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/project/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAWoB;AAEpB,yDAKiC;AACjC,mDAAoD;AACpD,qDAAoD;AACpD,6CAAgD;AAChD,+CAAoD;AACpD,yCAAkD;AAClD,uCAIwB;AACxB,iDAAsE;AACtE,2CAA8C;AAGjC,QAAA,yBAAyB,GACpC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAiB/B;;GAEG;AACI,MAAM,mBAAmB,GAAG,CACjC,IAAU,EACV,MAAiE,EAC/C,EAAE;;IACpB,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,IAAA,uBAAW,EAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,MAAA,MAAM,CAAC,UAAU,mCAAI,GAAG,KAAK,IAAI,cAAc,EAAE,CAClD,CAAC;IACF,MAAM,kBAAkB,GAAG,GAAG,KAAK,IAAI,cAAc,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,IAAA,0BAAiB,EAAC,MAAA,MAAM,CAAC,SAAS,mCAAI,GAAG,EAAE,cAAc,CAAC,CAAC;IACvE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,CAAC;AAC3D,CAAC,CAAC;AAZW,QAAA,mBAAmB,uBAY9B;AAEF;;GAEG;AACI,MAAM,kBAAkB,GAAG,CAChC,IAAU,EACV,MAAgC,EACJ,EAAE
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/project/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -643,6 +643,7 @@ resource "aws_lambda_function" "api_lambda" {
|
|
|
643
643
|
mode = "Active"
|
|
644
644
|
}
|
|
645
645
|
|
|
646
|
+
|
|
646
647
|
environment {
|
|
647
648
|
variables = merge({
|
|
648
649
|
AWS_CONNECTION_REUSE_ENABLED = "1"
|
|
@@ -706,6 +707,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
|
|
|
706
707
|
}
|
|
707
708
|
|
|
708
709
|
|
|
710
|
+
|
|
709
711
|
# Create proxy resource (captures all paths)
|
|
710
712
|
resource "aws_api_gateway_resource" "proxy_resource" {
|
|
711
713
|
rest_api_id = module.rest_api.api_id
|
|
@@ -867,6 +869,7 @@ resource "aws_lambda_permission" "api_gateway_invoke" {
|
|
|
867
869
|
depends_on = [module.rest_api, aws_lambda_function.api_lambda]
|
|
868
870
|
}
|
|
869
871
|
|
|
872
|
+
|
|
870
873
|
# Add API url to runtime config
|
|
871
874
|
module "add_url_to_runtime_config" {
|
|
872
875
|
source = "../../../core/runtime-config/entry"
|
|
@@ -1052,7 +1055,17 @@ exports[`tsSmithyApiGenerator > should generate smithy ts api with default optio
|
|
|
1052
1055
|
"dependsOn": ["copy-ssdk"]
|
|
1053
1056
|
},
|
|
1054
1057
|
"lint": {
|
|
1055
|
-
"executor": "@nx/eslint:lint"
|
|
1058
|
+
"executor": "@nx/eslint:lint",
|
|
1059
|
+
"cache": true,
|
|
1060
|
+
"inputs": ["eslint"],
|
|
1061
|
+
"configurations": {
|
|
1062
|
+
"fix": {
|
|
1063
|
+
"fix": true
|
|
1064
|
+
},
|
|
1065
|
+
"skip-lint": {
|
|
1066
|
+
"force": true
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1056
1069
|
},
|
|
1057
1070
|
"test": {
|
|
1058
1071
|
"executor": "@nx/vitest:test",
|
|
@@ -1656,6 +1669,7 @@ resource "aws_lambda_function" "api_lambda" {
|
|
|
1656
1669
|
mode = "Active"
|
|
1657
1670
|
}
|
|
1658
1671
|
|
|
1672
|
+
|
|
1659
1673
|
environment {
|
|
1660
1674
|
variables = merge({
|
|
1661
1675
|
AWS_CONNECTION_REUSE_ENABLED = "1"
|
|
@@ -1718,6 +1732,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
|
|
|
1718
1732
|
tags = var.tags
|
|
1719
1733
|
}
|
|
1720
1734
|
|
|
1735
|
+
|
|
1721
1736
|
# Cognito User Pool Authorizer
|
|
1722
1737
|
resource "aws_api_gateway_authorizer" "cognito_authorizer" {
|
|
1723
1738
|
name = "TestApiAuthorizer"
|
|
@@ -1887,6 +1902,7 @@ resource "aws_lambda_permission" "api_gateway_invoke" {
|
|
|
1887
1902
|
depends_on = [module.rest_api, aws_lambda_function.api_lambda]
|
|
1888
1903
|
}
|
|
1889
1904
|
|
|
1905
|
+
|
|
1890
1906
|
# Add API url to runtime config
|
|
1891
1907
|
module "add_url_to_runtime_config" {
|
|
1892
1908
|
source = "../../../core/runtime-config/entry"
|
|
@@ -2282,6 +2298,7 @@ resource "aws_lambda_function" "api_lambda" {
|
|
|
2282
2298
|
mode = "Active"
|
|
2283
2299
|
}
|
|
2284
2300
|
|
|
2301
|
+
|
|
2285
2302
|
environment {
|
|
2286
2303
|
variables = merge({
|
|
2287
2304
|
AWS_CONNECTION_REUSE_ENABLED = "1"
|
|
@@ -2345,6 +2362,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
|
|
|
2345
2362
|
}
|
|
2346
2363
|
|
|
2347
2364
|
|
|
2365
|
+
|
|
2348
2366
|
# Create proxy resource (captures all paths)
|
|
2349
2367
|
resource "aws_api_gateway_resource" "proxy_resource" {
|
|
2350
2368
|
rest_api_id = module.rest_api.api_id
|
|
@@ -2515,6 +2533,7 @@ resource "aws_lambda_permission" "api_gateway_invoke" {
|
|
|
2515
2533
|
depends_on = [module.rest_api, aws_lambda_function.api_lambda]
|
|
2516
2534
|
}
|
|
2517
2535
|
|
|
2536
|
+
|
|
2518
2537
|
# Add API url to runtime config
|
|
2519
2538
|
module "add_url_to_runtime_config" {
|
|
2520
2539
|
source = "../../../core/runtime-config/entry"
|
|
@@ -2759,6 +2778,7 @@ resource "aws_lambda_function" "api_lambda" {
|
|
|
2759
2778
|
mode = "Active"
|
|
2760
2779
|
}
|
|
2761
2780
|
|
|
2781
|
+
|
|
2762
2782
|
environment {
|
|
2763
2783
|
variables = merge({
|
|
2764
2784
|
AWS_CONNECTION_REUSE_ENABLED = "1"
|
|
@@ -2822,6 +2842,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
|
|
|
2822
2842
|
}
|
|
2823
2843
|
|
|
2824
2844
|
|
|
2845
|
+
|
|
2825
2846
|
# Create proxy resource (captures all paths)
|
|
2826
2847
|
resource "aws_api_gateway_resource" "proxy_resource" {
|
|
2827
2848
|
rest_api_id = module.rest_api.api_id
|
|
@@ -2983,6 +3004,7 @@ resource "aws_lambda_permission" "api_gateway_invoke" {
|
|
|
2983
3004
|
depends_on = [module.rest_api, aws_lambda_function.api_lambda]
|
|
2984
3005
|
}
|
|
2985
3006
|
|
|
3007
|
+
|
|
2986
3008
|
# Add API url to runtime config
|
|
2987
3009
|
module "add_url_to_runtime_config" {
|
|
2988
3010
|
source = "../../../core/runtime-config/entry"
|
|
@@ -2709,6 +2709,7 @@ resource "aws_lambda_function" "api_lambda" {
|
|
|
2709
2709
|
mode = "Active"
|
|
2710
2710
|
}
|
|
2711
2711
|
|
|
2712
|
+
|
|
2712
2713
|
environment {
|
|
2713
2714
|
variables = merge({
|
|
2714
2715
|
AWS_CONNECTION_REUSE_ENABLED = "1"
|
|
@@ -2771,6 +2772,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
|
|
|
2771
2772
|
tags = var.tags
|
|
2772
2773
|
}
|
|
2773
2774
|
|
|
2775
|
+
|
|
2774
2776
|
# Cognito User Pool Authorizer
|
|
2775
2777
|
resource "aws_apigatewayv2_authorizer" "cognito_authorizer" {
|
|
2776
2778
|
api_id = module.http_api.api_id
|
|
@@ -3329,6 +3331,7 @@ resource "aws_lambda_function" "api_lambda" {
|
|
|
3329
3331
|
mode = "Active"
|
|
3330
3332
|
}
|
|
3331
3333
|
|
|
3334
|
+
|
|
3332
3335
|
environment {
|
|
3333
3336
|
variables = merge({
|
|
3334
3337
|
AWS_CONNECTION_REUSE_ENABLED = "1"
|
|
@@ -3392,6 +3395,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
|
|
|
3392
3395
|
}
|
|
3393
3396
|
|
|
3394
3397
|
|
|
3398
|
+
|
|
3395
3399
|
# Lambda integration for HTTP API
|
|
3396
3400
|
resource "aws_apigatewayv2_integration" "lambda_integration" {
|
|
3397
3401
|
api_id = module.http_api.api_id
|
|
@@ -3936,6 +3940,7 @@ resource "aws_lambda_function" "api_lambda" {
|
|
|
3936
3940
|
mode = "Active"
|
|
3937
3941
|
}
|
|
3938
3942
|
|
|
3943
|
+
|
|
3939
3944
|
environment {
|
|
3940
3945
|
variables = merge({
|
|
3941
3946
|
AWS_CONNECTION_REUSE_ENABLED = "1"
|
|
@@ -3999,6 +4004,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
|
|
|
3999
4004
|
}
|
|
4000
4005
|
|
|
4001
4006
|
|
|
4007
|
+
|
|
4002
4008
|
# Lambda integration for HTTP API
|
|
4003
4009
|
resource "aws_apigatewayv2_integration" "lambda_integration" {
|
|
4004
4010
|
api_id = module.http_api.api_id
|
|
@@ -4433,6 +4439,7 @@ resource "aws_lambda_function" "api_lambda" {
|
|
|
4433
4439
|
mode = "Active"
|
|
4434
4440
|
}
|
|
4435
4441
|
|
|
4442
|
+
|
|
4436
4443
|
environment {
|
|
4437
4444
|
variables = merge({
|
|
4438
4445
|
AWS_CONNECTION_REUSE_ENABLED = "1"
|
|
@@ -4495,6 +4502,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
|
|
|
4495
4502
|
tags = var.tags
|
|
4496
4503
|
}
|
|
4497
4504
|
|
|
4505
|
+
|
|
4498
4506
|
# Cognito User Pool Authorizer
|
|
4499
4507
|
resource "aws_api_gateway_authorizer" "cognito_authorizer" {
|
|
4500
4508
|
name = "TestApiAuthorizer"
|
|
@@ -4665,6 +4673,7 @@ resource "aws_lambda_permission" "api_gateway_invoke" {
|
|
|
4665
4673
|
depends_on = [module.rest_api, aws_lambda_function.api_lambda]
|
|
4666
4674
|
}
|
|
4667
4675
|
|
|
4676
|
+
|
|
4668
4677
|
# Add API url to runtime config
|
|
4669
4678
|
module "add_url_to_runtime_config" {
|
|
4670
4679
|
source = "../../../core/runtime-config/entry"
|
|
@@ -5060,6 +5069,7 @@ resource "aws_lambda_function" "api_lambda" {
|
|
|
5060
5069
|
mode = "Active"
|
|
5061
5070
|
}
|
|
5062
5071
|
|
|
5072
|
+
|
|
5063
5073
|
environment {
|
|
5064
5074
|
variables = merge({
|
|
5065
5075
|
AWS_CONNECTION_REUSE_ENABLED = "1"
|
|
@@ -5123,6 +5133,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
|
|
|
5123
5133
|
}
|
|
5124
5134
|
|
|
5125
5135
|
|
|
5136
|
+
|
|
5126
5137
|
# Create proxy resource (captures all paths)
|
|
5127
5138
|
resource "aws_api_gateway_resource" "proxy_resource" {
|
|
5128
5139
|
rest_api_id = module.rest_api.api_id
|
|
@@ -5294,6 +5305,7 @@ resource "aws_lambda_permission" "api_gateway_invoke" {
|
|
|
5294
5305
|
depends_on = [module.rest_api, aws_lambda_function.api_lambda]
|
|
5295
5306
|
}
|
|
5296
5307
|
|
|
5308
|
+
|
|
5297
5309
|
# Add API url to runtime config
|
|
5298
5310
|
module "add_url_to_runtime_config" {
|
|
5299
5311
|
source = "../../../core/runtime-config/entry"
|
|
@@ -5689,6 +5701,7 @@ resource "aws_lambda_function" "api_lambda" {
|
|
|
5689
5701
|
mode = "Active"
|
|
5690
5702
|
}
|
|
5691
5703
|
|
|
5704
|
+
|
|
5692
5705
|
environment {
|
|
5693
5706
|
variables = merge({
|
|
5694
5707
|
AWS_CONNECTION_REUSE_ENABLED = "1"
|
|
@@ -5752,6 +5765,7 @@ resource "aws_cloudwatch_log_group" "lambda_logs" {
|
|
|
5752
5765
|
}
|
|
5753
5766
|
|
|
5754
5767
|
|
|
5768
|
+
|
|
5755
5769
|
# Create proxy resource (captures all paths)
|
|
5756
5770
|
resource "aws_api_gateway_resource" "proxy_resource" {
|
|
5757
5771
|
rest_api_id = module.rest_api.api_id
|
|
@@ -5914,6 +5928,7 @@ resource "aws_lambda_permission" "api_gateway_invoke" {
|
|
|
5914
5928
|
depends_on = [module.rest_api, aws_lambda_function.api_lambda]
|
|
5915
5929
|
}
|
|
5916
5930
|
|
|
5931
|
+
|
|
5917
5932
|
# Add API url to runtime config
|
|
5918
5933
|
module "add_url_to_runtime_config" {
|
|
5919
5934
|
source = "../../../core/runtime-config/entry"
|
|
@@ -17,17 +17,10 @@ exports[`ts lib generator > should configure named inputs in nx.json 1`] = `
|
|
|
17
17
|
"cache": true,
|
|
18
18
|
"inputs": [
|
|
19
19
|
"default",
|
|
20
|
-
"{workspaceRoot}
|
|
21
|
-
"{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"fix": {
|
|
25
|
-
"fix": true
|
|
26
|
-
},
|
|
27
|
-
"skip-lint": {
|
|
28
|
-
"force": true
|
|
29
|
-
}
|
|
30
|
-
}
|
|
20
|
+
"{workspaceRoot}/.eslintrc.json",
|
|
21
|
+
"{workspaceRoot}/.eslintignore",
|
|
22
|
+
"{workspaceRoot}/eslint.config.mjs"
|
|
23
|
+
]
|
|
31
24
|
},
|
|
32
25
|
"@nx/vitest:test": {
|
|
33
26
|
"cache": true,
|
|
@@ -48,6 +41,11 @@ exports[`ts lib generator > should configure named inputs in nx.json 1`] = `
|
|
|
48
41
|
}
|
|
49
42
|
},
|
|
50
43
|
"namedInputs": {
|
|
44
|
+
"eslint": [
|
|
45
|
+
"default",
|
|
46
|
+
"{workspaceRoot}/eslint.config.mjs",
|
|
47
|
+
"{projectRoot}/eslint.config.mjs"
|
|
48
|
+
],
|
|
51
49
|
"default": [
|
|
52
50
|
{
|
|
53
51
|
"dependentTasksOutputFiles": "**/*",
|
|
@@ -102,7 +100,17 @@ exports[`ts lib generator > should generate library with custom directory > cust
|
|
|
102
100
|
}
|
|
103
101
|
},
|
|
104
102
|
"lint": {
|
|
105
|
-
"executor": "@nx/eslint:lint"
|
|
103
|
+
"executor": "@nx/eslint:lint",
|
|
104
|
+
"cache": true,
|
|
105
|
+
"inputs": ["eslint"],
|
|
106
|
+
"configurations": {
|
|
107
|
+
"fix": {
|
|
108
|
+
"fix": true
|
|
109
|
+
},
|
|
110
|
+
"skip-lint": {
|
|
111
|
+
"force": true
|
|
112
|
+
}
|
|
113
|
+
}
|
|
106
114
|
},
|
|
107
115
|
"test": {
|
|
108
116
|
"executor": "@nx/vitest:test",
|
|
@@ -193,7 +201,17 @@ exports[`ts lib generator > should generate library with default options > proje
|
|
|
193
201
|
}
|
|
194
202
|
},
|
|
195
203
|
"lint": {
|
|
196
|
-
"executor": "@nx/eslint:lint"
|
|
204
|
+
"executor": "@nx/eslint:lint",
|
|
205
|
+
"cache": true,
|
|
206
|
+
"inputs": ["eslint"],
|
|
207
|
+
"configurations": {
|
|
208
|
+
"fix": {
|
|
209
|
+
"fix": true
|
|
210
|
+
},
|
|
211
|
+
"skip-lint": {
|
|
212
|
+
"force": true
|
|
213
|
+
}
|
|
214
|
+
}
|
|
197
215
|
},
|
|
198
216
|
"test": {
|
|
199
217
|
"executor": "@nx/vitest:test",
|
|
@@ -255,7 +273,17 @@ exports[`ts lib generator > should generate library with subdirectory > subdir-p
|
|
|
255
273
|
}
|
|
256
274
|
},
|
|
257
275
|
"lint": {
|
|
258
|
-
"executor": "@nx/eslint:lint"
|
|
276
|
+
"executor": "@nx/eslint:lint",
|
|
277
|
+
"cache": true,
|
|
278
|
+
"inputs": ["eslint"],
|
|
279
|
+
"configurations": {
|
|
280
|
+
"fix": {
|
|
281
|
+
"fix": true
|
|
282
|
+
},
|
|
283
|
+
"skip-lint": {
|
|
284
|
+
"force": true
|
|
285
|
+
}
|
|
286
|
+
}
|
|
259
287
|
},
|
|
260
288
|
"test": {
|
|
261
289
|
"executor": "@nx/vitest:test",
|
package/src/ts/lib/eslint.js
CHANGED
|
@@ -11,11 +11,20 @@ const typescript_1 = require("typescript");
|
|
|
11
11
|
const ast_1 = require("../../utils/ast");
|
|
12
12
|
const nx_1 = require("../../utils/nx");
|
|
13
13
|
const configureEslint = (tree, options) => {
|
|
14
|
-
var _a, _b;
|
|
15
14
|
// Configure the lint task
|
|
16
15
|
const projectJson = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.fullyQualifiedName);
|
|
17
16
|
(0, devkit_1.updateProjectConfiguration)(tree, options.fullyQualifiedName, Object.assign(Object.assign({}, projectJson), { targets: Object.assign(Object.assign({}, projectJson === null || projectJson === void 0 ? void 0 : projectJson.targets), { lint: {
|
|
18
17
|
executor: '@nx/eslint:lint',
|
|
18
|
+
cache: true,
|
|
19
|
+
inputs: ['eslint'],
|
|
20
|
+
configurations: {
|
|
21
|
+
fix: {
|
|
22
|
+
fix: true,
|
|
23
|
+
},
|
|
24
|
+
'skip-lint': {
|
|
25
|
+
force: true,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
19
28
|
} }) }));
|
|
20
29
|
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, (0, versions_1.withVersions)(['prettier', 'eslint-plugin-prettier', 'jsonc-eslint-parser']));
|
|
21
30
|
// Update or create eslint.config.mjs
|
|
@@ -39,18 +48,11 @@ const configureEslint = (tree, options) => {
|
|
|
39
48
|
'**/vite.config.*.timestamp*',
|
|
40
49
|
]);
|
|
41
50
|
const nxJson = (0, devkit_1.readNxJson)(tree);
|
|
42
|
-
(0, devkit_1.updateNxJson)(tree, Object.assign(Object.assign({}, nxJson), {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
force: true,
|
|
48
|
-
},
|
|
49
|
-
}, inputs: [
|
|
50
|
-
'default',
|
|
51
|
-
'{workspaceRoot}/eslint.config.mjs',
|
|
52
|
-
'{projectRoot}/eslint.config.mjs',
|
|
53
|
-
] }) }) }));
|
|
51
|
+
(0, devkit_1.updateNxJson)(tree, Object.assign(Object.assign({}, nxJson), { namedInputs: Object.assign(Object.assign({}, nxJson.namedInputs), { eslint: [
|
|
52
|
+
'default',
|
|
53
|
+
'{workspaceRoot}/eslint.config.mjs',
|
|
54
|
+
'{projectRoot}/eslint.config.mjs',
|
|
55
|
+
] }) }));
|
|
54
56
|
}
|
|
55
57
|
};
|
|
56
58
|
exports.configureEslint = configureEslint;
|
package/src/ts/lib/eslint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/lib/eslint.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAMoB;AACpB,mDAAoD;AACpD,2CAAyE;AACzE,yCAAkE;AAElE,uCAAqE;AAE9D,MAAM,eAAe,GAAG,CAC7B,IAAU,EACV,OAAgC,EAChC,EAAE
|
|
1
|
+
{"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/lib/eslint.ts"],"names":[],"mappings":"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"}
|
package/src/ts/lib/generator.js
CHANGED
|
@@ -36,23 +36,6 @@ exports.getTsLibDetails = getTsLibDetails;
|
|
|
36
36
|
const tsProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
37
37
|
const { fullyQualifiedName, dir } = (0, exports.getTsLibDetails)(tree, schema);
|
|
38
38
|
yield (0, js_1.libraryGenerator)(tree, Object.assign(Object.assign({}, schema), { name: fullyQualifiedName, directory: dir, skipPackageJson: true, bundler: 'tsc', linter: 'eslint', unitTestRunner: 'vitest' }));
|
|
39
|
-
// Rename vite.config.ts to vite.config.mts for ESM compatibility
|
|
40
|
-
// The @nx/js library generator creates vite.config.ts when bundler !== 'vite',
|
|
41
|
-
// but we need .mts extension to ensure proper ESM module resolution in Node.js
|
|
42
|
-
// when using "type": "module" in package.json or when moduleResolution is set to
|
|
43
|
-
// "node16" or "nodenext" in tsconfig.json
|
|
44
|
-
const viteConfigTsPath = (0, devkit_1.joinPathFragments)(dir, 'vite.config.ts');
|
|
45
|
-
const viteConfigMtsPath = (0, devkit_1.joinPathFragments)(dir, 'vite.config.mts');
|
|
46
|
-
if (tree.exists(viteConfigTsPath)) {
|
|
47
|
-
const content = tree.read(viteConfigTsPath, 'utf-8');
|
|
48
|
-
tree.delete(viteConfigTsPath);
|
|
49
|
-
tree.write(viteConfigMtsPath, content);
|
|
50
|
-
}
|
|
51
|
-
// Remove redundant vitest.config.mts file if it exists, since we have vite.config.mts
|
|
52
|
-
const vitestConfigPath = (0, devkit_1.joinPathFragments)(dir, 'vitest.config.mts');
|
|
53
|
-
if (tree.exists(vitestConfigPath)) {
|
|
54
|
-
tree.delete(vitestConfigPath);
|
|
55
|
-
}
|
|
56
39
|
// Replace with simpler sample source code
|
|
57
40
|
tree.delete((0, devkit_1.joinPathFragments)(dir, 'src'));
|
|
58
41
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), (0, devkit_1.joinPathFragments)(dir), {
|