task-script-support-cli 0.2.8 → 0.2.9
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/assets/yargs-template/task-runner/Dockerfile +42 -0
- package/assets/yargs-template/task-runner/task-runner +4 -1
- package/dist/assets/yargs-template/task-runner/.dockerignore +34 -0
- package/dist/assets/yargs-template/task-runner/Dockerfile +42 -0
- package/dist/assets/yargs-template/task-runner/task-runner +4 -1
- package/dist/package.json +1 -1
- package/dist/src/services/templater-service.d.ts +2 -1
- package/dist/src/services/templater-service.d.ts.map +1 -1
- package/dist/src/services/templater-service.js +10 -3
- package/dist/src/services/templater-service.js.map +1 -1
- package/dist/src/tasks/generate/project-context-guard.d.ts.map +1 -1
- package/dist/src/tasks/generate/project-context-guard.js +1 -0
- package/dist/src/tasks/generate/project-context-guard.js.map +1 -1
- package/dist/src/templates/docker-ignore.d.ts +2 -0
- package/dist/src/templates/docker-ignore.d.ts.map +1 -0
- package/dist/src/templates/docker-ignore.js +41 -0
- package/dist/src/templates/docker-ignore.js.map +1 -0
- package/package.json +1 -1
- package/src/services/templater-service.ts +14 -3
- package/src/templates/docker-ignore.ts +36 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
ARG NODE_VERSION=22
|
|
2
|
+
|
|
3
|
+
# Builder stage
|
|
4
|
+
FROM node:${NODE_VERSION}-alpine AS builder
|
|
5
|
+
|
|
6
|
+
WORKDIR /app
|
|
7
|
+
|
|
8
|
+
# Install necessary build tools
|
|
9
|
+
RUN apk add python3 gcc make g++
|
|
10
|
+
|
|
11
|
+
# Copy package.json and package-lock.json first for efficient caching
|
|
12
|
+
COPY package*.json ./
|
|
13
|
+
|
|
14
|
+
# Install dependencies only if package.json or package-lock.json have changed
|
|
15
|
+
RUN npm install
|
|
16
|
+
|
|
17
|
+
# Copy the rest of the application code
|
|
18
|
+
COPY . .
|
|
19
|
+
|
|
20
|
+
# Build the TypeScript application
|
|
21
|
+
RUN npm run build
|
|
22
|
+
|
|
23
|
+
# Production stage
|
|
24
|
+
FROM node:${NODE_VERSION}-alpine
|
|
25
|
+
|
|
26
|
+
WORKDIR /usr/src/app
|
|
27
|
+
|
|
28
|
+
# Install just the production dependencies
|
|
29
|
+
COPY --from=builder /app/package*.json ./
|
|
30
|
+
RUN npm install --only=prod
|
|
31
|
+
|
|
32
|
+
# Use multi-stage copy to avoid copying unnecessary files
|
|
33
|
+
COPY --from=builder /app/task-runner /usr/src/app/task-runner
|
|
34
|
+
COPY --from=builder /app/dist /usr/src/app/dist
|
|
35
|
+
|
|
36
|
+
# Use non-root user for security
|
|
37
|
+
RUN addgroup appuser && adduser -S appuser -G appuser && chown -R appuser:appuser /usr/src/app
|
|
38
|
+
USER appuser
|
|
39
|
+
|
|
40
|
+
# Set default ENTRYPOINT and CMD
|
|
41
|
+
ENTRYPOINT ["sh", "/usr/src/app/task-runner"]
|
|
42
|
+
CMD ["--help"]
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Include any files or directories that you don't want to be copied to your
|
|
2
|
+
# container here (e.g., local build artifacts, temporary files, etc.).
|
|
3
|
+
#
|
|
4
|
+
# For more help, visit the .dockerignore file reference guide at
|
|
5
|
+
# https://docs.docker.com/go/build-context-dockerignore/
|
|
6
|
+
|
|
7
|
+
**/.classpath
|
|
8
|
+
**/.dockerignore
|
|
9
|
+
**/.env
|
|
10
|
+
**/.git
|
|
11
|
+
**/.gitignore
|
|
12
|
+
**/.project
|
|
13
|
+
**/.settings
|
|
14
|
+
**/.toolstarget
|
|
15
|
+
**/.vs
|
|
16
|
+
**/.vscode
|
|
17
|
+
**/.next
|
|
18
|
+
**/.cache
|
|
19
|
+
**/*.*proj.user
|
|
20
|
+
**/*.dbmdl
|
|
21
|
+
**/*.jfm
|
|
22
|
+
**/charts
|
|
23
|
+
**/docker-compose*
|
|
24
|
+
**/compose.y*ml
|
|
25
|
+
**/Dockerfile*
|
|
26
|
+
**/node_modules
|
|
27
|
+
**/npm-debug.log
|
|
28
|
+
**/obj
|
|
29
|
+
**/secrets.dev.yaml
|
|
30
|
+
**/values.dev.yaml
|
|
31
|
+
**/build
|
|
32
|
+
**/dist
|
|
33
|
+
LICENSE
|
|
34
|
+
README.md
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
ARG NODE_VERSION=22
|
|
2
|
+
|
|
3
|
+
# Builder stage
|
|
4
|
+
FROM node:${NODE_VERSION}-alpine AS builder
|
|
5
|
+
|
|
6
|
+
WORKDIR /app
|
|
7
|
+
|
|
8
|
+
# Install necessary build tools
|
|
9
|
+
RUN apk add python3 gcc make g++
|
|
10
|
+
|
|
11
|
+
# Copy package.json and package-lock.json first for efficient caching
|
|
12
|
+
COPY package*.json ./
|
|
13
|
+
|
|
14
|
+
# Install dependencies only if package.json or package-lock.json have changed
|
|
15
|
+
RUN npm install
|
|
16
|
+
|
|
17
|
+
# Copy the rest of the application code
|
|
18
|
+
COPY . .
|
|
19
|
+
|
|
20
|
+
# Build the TypeScript application
|
|
21
|
+
RUN npm run build
|
|
22
|
+
|
|
23
|
+
# Production stage
|
|
24
|
+
FROM node:${NODE_VERSION}-alpine
|
|
25
|
+
|
|
26
|
+
WORKDIR /usr/src/app
|
|
27
|
+
|
|
28
|
+
# Install just the production dependencies
|
|
29
|
+
COPY --from=builder /app/package*.json ./
|
|
30
|
+
RUN npm install --only=prod
|
|
31
|
+
|
|
32
|
+
# Use multi-stage copy to avoid copying unnecessary files
|
|
33
|
+
COPY --from=builder /app/task-runner /usr/src/app/task-runner
|
|
34
|
+
COPY --from=builder /app/dist /usr/src/app/dist
|
|
35
|
+
|
|
36
|
+
# Use non-root user for security
|
|
37
|
+
RUN addgroup appuser && adduser -S appuser -G appuser && chown -R appuser:appuser /usr/src/app
|
|
38
|
+
USER appuser
|
|
39
|
+
|
|
40
|
+
# Set default ENTRYPOINT and CMD
|
|
41
|
+
ENTRYPOINT ["sh", "/usr/src/app/task-runner"]
|
|
42
|
+
CMD ["--help"]
|
package/dist/package.json
CHANGED
|
@@ -16,7 +16,8 @@ export declare class TemplateService {
|
|
|
16
16
|
private copyDirectories;
|
|
17
17
|
private copyFiles;
|
|
18
18
|
private fixNaming;
|
|
19
|
-
private
|
|
19
|
+
private createGitIgnore;
|
|
20
|
+
private createDockerIgnore;
|
|
20
21
|
private removeDoubleNestedTestsDirectory;
|
|
21
22
|
private renameTaskRunner;
|
|
22
23
|
private initializeWithGit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templater-service.d.ts","sourceRoot":"./src/","sources":["src/services/templater-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"templater-service.d.ts","sourceRoot":"./src/","sources":["src/services/templater-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,qBACa,eAAe;IA6BxB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IA7BhB,OAAO,CAAC,UAAU,CAA0B;IAE5C,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,WAAW,CAAU;IAE7B,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,cAAc,CAWpB;IACF,OAAO,CAAC,WAAW,CAMjB;gBAGQ,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,UAAU;IASf,YAAY,CAAC,UAAU,EAAE,MAAM;YAqB9B,uBAAuB;YAMvB,eAAe;YASf,SAAS;YAST,SAAS;YAWT,eAAe;YAOf,kBAAkB;YAOlB,gCAAgC;YAUhC,gBAAgB;YAOhB,iBAAiB;CAQhC"}
|
|
@@ -18,13 +18,14 @@ const node_fs_1 = __importDefault(require("node:fs"));
|
|
|
18
18
|
const tsyringe_1 = require("tsyringe");
|
|
19
19
|
const spawn_service_1 = require("./spawn-service");
|
|
20
20
|
const log_service_1 = require("./log-service");
|
|
21
|
+
const docker_ignore_1 = require("../templates/docker-ignore");
|
|
21
22
|
const gitignoreContent = `node_modules
|
|
22
23
|
dist
|
|
23
24
|
.env`;
|
|
24
25
|
let TemplateService = class TemplateService {
|
|
25
26
|
spawnService;
|
|
26
27
|
logger;
|
|
27
|
-
loggerName = "Template Service";
|
|
28
|
+
loggerName = "Template Service :: ";
|
|
28
29
|
outputName;
|
|
29
30
|
sourceDir;
|
|
30
31
|
destination;
|
|
@@ -34,6 +35,7 @@ let TemplateService = class TemplateService {
|
|
|
34
35
|
".prettierrc",
|
|
35
36
|
"task-runner",
|
|
36
37
|
"install-link.sh",
|
|
38
|
+
"Dockerfile",
|
|
37
39
|
"eslint.config.ts",
|
|
38
40
|
"vitest.config.ts",
|
|
39
41
|
"package-lock.json",
|
|
@@ -45,6 +47,7 @@ let TemplateService = class TemplateService {
|
|
|
45
47
|
"package.json",
|
|
46
48
|
"package-lock.json",
|
|
47
49
|
"install-link.sh",
|
|
50
|
+
"Dockerfile",
|
|
48
51
|
];
|
|
49
52
|
constructor(spawnService, logger) {
|
|
50
53
|
this.spawnService = spawnService;
|
|
@@ -62,7 +65,8 @@ let TemplateService = class TemplateService {
|
|
|
62
65
|
await this.copyDirectories();
|
|
63
66
|
await this.copyFiles();
|
|
64
67
|
await this.fixNaming();
|
|
65
|
-
await this.
|
|
68
|
+
await this.createGitIgnore();
|
|
69
|
+
await this.createDockerIgnore();
|
|
66
70
|
await this.removeDoubleNestedTestsDirectory();
|
|
67
71
|
await this.renameTaskRunner();
|
|
68
72
|
await this.initializeWithGit();
|
|
@@ -99,9 +103,12 @@ let TemplateService = class TemplateService {
|
|
|
99
103
|
node_fs_1.default.writeFileSync(dest, content);
|
|
100
104
|
}
|
|
101
105
|
}
|
|
102
|
-
async
|
|
106
|
+
async createGitIgnore() {
|
|
103
107
|
node_fs_1.default.writeFileSync(node_path_1.default.join(this.destination, ".gitignore"), gitignoreContent);
|
|
104
108
|
}
|
|
109
|
+
async createDockerIgnore() {
|
|
110
|
+
node_fs_1.default.writeFileSync(node_path_1.default.join(this.destination, ".dockerignore"), (0, docker_ignore_1.dockerIgnoreTemplate)());
|
|
111
|
+
}
|
|
105
112
|
async removeDoubleNestedTestsDirectory() {
|
|
106
113
|
const doubleNestedTestsPath = node_path_1.default.join(this.destination, "tests", "tests");
|
|
107
114
|
if (node_fs_1.default.existsSync(doubleNestedTestsPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templater-service.js","sourceRoot":"./src/","sources":["src/services/templater-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,sDAAyB;AACzB,uCAA0C;AAC1C,mDAA+C;AAC/C,+CAA2C;
|
|
1
|
+
{"version":3,"file":"templater-service.js","sourceRoot":"./src/","sources":["src/services/templater-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,sDAAyB;AACzB,uCAA0C;AAC1C,mDAA+C;AAC/C,+CAA2C;AAC3C,8DAAkE;AAElE,MAAM,gBAAgB,GAAG;;KAEpB,CAAC;AAGC,IAAM,eAAe,GAArB,MAAM,eAAe;IA6BhB;IACA;IA7BF,UAAU,GAAG,sBAAsB,CAAC;IAEpC,UAAU,CAAU;IACpB,SAAS,CAAU;IACnB,WAAW,CAAU;IAErB,aAAa,GAAa,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,cAAc,GAAa;QACjC,iBAAiB;QACjB,aAAa;QACb,aAAa;QACb,iBAAiB;QACjB,YAAY;QACZ,kBAAkB;QAClB,kBAAkB;QAClB,mBAAmB;QACnB,cAAc;QACd,eAAe;KAChB,CAAC;IACM,WAAW,GAAa;QAC9B,kCAAkC;QAClC,cAAc;QACd,mBAAmB;QACnB,iBAAiB;QACjB,YAAY;KACb,CAAC;IAEF,YACU,YAA0B,EAC1B,MAAkB;QADlB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAY;QAE1B,IAAI,CAAC,SAAS,GAAG,mBAAI,CAAC,IAAI,CACxB,SAAS,EACT,0CAA0C,CAC3C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,UAAkB;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAExD,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAC9C,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,iBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;YACxD,iBAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;YACrD,iBAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,iBAAE;iBACf,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;iBAC3B,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/C,iBAAE,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,iBAAE,CAAC,aAAa,CACd,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EACzC,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,iBAAE,CAAC,aAAa,CACd,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,EAC5C,IAAA,oCAAoB,GAAE,CACvB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gCAAgC;QAC5C,MAAM,qBAAqB,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5E,IAAI,iBAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2CAA2C,qBAAqB,EAAE,CACnE,CAAC;YACF,iBAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,GAAG,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAChE,iBAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF,CAAA;AAtIY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,yBAAc,GAAE;qCA8BS,4BAAY;QAClB,wBAAU;GA9BjB,eAAe,CAsI3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-context-guard.d.ts","sourceRoot":"./src/","sources":["src/tasks/generate/project-context-guard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD;;;GAGG;AAEH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;IAG1C,OAAO,CAAC,WAAW;IAF/B,UAAU,SAA2B;gBAEjB,WAAW,EAAE,WAAW;IAItC,GAAG;
|
|
1
|
+
{"version":3,"file":"project-context-guard.d.ts","sourceRoot":"./src/","sources":["src/tasks/generate/project-context-guard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD;;;GAGG;AAEH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,OAAO;IAG1C,OAAO,CAAC,WAAW;IAF/B,UAAU,SAA2B;gBAEjB,WAAW,EAAE,WAAW;IAItC,GAAG;IAyBT;;;;;;;OAOG;IACH,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;IAoB5D;;;;;;OAMG;IACH,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;IAa7D;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAOnB;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAQrB"}
|
|
@@ -39,6 +39,7 @@ let ProjectContextGuard = class ProjectContextGuard extends app_task_1.AppTask {
|
|
|
39
39
|
errors.push(`Unexpected error checking project: ${err}`);
|
|
40
40
|
}
|
|
41
41
|
if (errors.length) {
|
|
42
|
+
// give jimmy a message
|
|
42
43
|
this.logger.error(`\n\n🚧 ${chalk_1.default.yellowBright("Note")}: This command requires execution from a ${chalk_1.default.blueBright("task-script-support")} project (folder)` +
|
|
43
44
|
`\n - Try running the ${chalk_1.default.blueBright("tssc " + chalk_1.default.bold("new"))} command to create a new project \n`, "Error Note");
|
|
44
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-context-guard.js","sourceRoot":"./src/","sources":["src/tasks/generate/project-context-guard.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project-context-guard.js","sourceRoot":"./src/","sources":["src/tasks/generate/project-context-guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,8DAA0D;AAC1D,sDAAkD;AAClD,uCAA0C;AAE1C;;;GAGG;AAEY,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,kBAAO;IAGlC;IAFpB,UAAU,GAAG,uBAAuB,CAAC;IAErC,YAAoB,WAAwB;QAC1C,KAAK,EAAE,CAAC;QADU,gBAAW,GAAX,WAAW,CAAa;IAE5C,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACvD,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,uBAAuB;YACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,UAAU,eAAK,CAAC,YAAY,CAAC,MAAM,CAAC,4CAA4C,eAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,mBAAmB;gBACxI,wBAAwB,eAAK,CAAC,UAAU,CAAC,OAAO,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,qCAAqC,EAC5G,YAAY,CACb,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;OAOG;IACH,uBAAuB,CAAC,UAAkB,EAAE,MAAgB;QAC1D,MAAM,WAAW,GAAG;YAClB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC;YACrD,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC;YAC3D,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC;SAC5D,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YAC7C,MAAM,GAAG,GAA6B,CAA6B,CAAC;YACpE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClD,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC;YACX,OAAO,EAAE;gBACP,OAAO,EAAE,UAAU;gBACnB,GAAG,WAAW;aACf;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,wBAAwB,CAAC,UAAkB,EAAE,MAAgB;QAC3D,iEAAiE;QACjE,MAAM,WAAW,GAAG,OAAO,CACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAClD,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;QACxD,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,GAAG,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,MAAgB;QAClC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,MAAgB;QACnC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,KAAK,CAAC,2BAA2B,CAAC,EACtC,aAAa,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAC5C,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAzGoB,mBAAmB;IADvC,IAAA,yBAAc,GAAE;qCAIkB,0BAAW;GAHzB,mBAAmB,CAyGvC;kBAzGoB,mBAAmB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-ignore.d.ts","sourceRoot":"./src/","sources":["src/templates/docker-ignore.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,cAmChC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dockerIgnoreTemplate = void 0;
|
|
4
|
+
const dockerIgnoreTemplate = () => `
|
|
5
|
+
# Include any files or directories that you don't want to be copied to your
|
|
6
|
+
# container here (e.g., local build artifacts, temporary files, etc.).
|
|
7
|
+
#
|
|
8
|
+
# For more help, visit the .dockerignore file reference guide at
|
|
9
|
+
# https://docs.docker.com/go/build-context-dockerignore/
|
|
10
|
+
|
|
11
|
+
**/.classpath
|
|
12
|
+
**/.dockerignore
|
|
13
|
+
**/.env
|
|
14
|
+
**/.git
|
|
15
|
+
**/.gitignore
|
|
16
|
+
**/.project
|
|
17
|
+
**/.settings
|
|
18
|
+
**/.toolstarget
|
|
19
|
+
**/.vs
|
|
20
|
+
**/.vscode
|
|
21
|
+
**/.next
|
|
22
|
+
**/.cache
|
|
23
|
+
**/*.*proj.user
|
|
24
|
+
**/*.dbmdl
|
|
25
|
+
**/*.jfm
|
|
26
|
+
**/charts
|
|
27
|
+
**/docker-compose*
|
|
28
|
+
**/compose.y*ml
|
|
29
|
+
**/Dockerfile*
|
|
30
|
+
**/node_modules
|
|
31
|
+
**/npm-debug.log
|
|
32
|
+
**/obj
|
|
33
|
+
**/secrets.dev.yaml
|
|
34
|
+
**/values.dev.yaml
|
|
35
|
+
**/build
|
|
36
|
+
**/dist
|
|
37
|
+
LICENSE
|
|
38
|
+
README.md
|
|
39
|
+
`;
|
|
40
|
+
exports.dockerIgnoreTemplate = dockerIgnoreTemplate;
|
|
41
|
+
//# sourceMappingURL=docker-ignore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-ignore.js","sourceRoot":"./src/","sources":["src/templates/docker-ignore.ts"],"names":[],"mappings":";;;AAAO,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCzC,CAAC;AAnCW,QAAA,oBAAoB,wBAmC/B"}
|
package/package.json
CHANGED
|
@@ -3,6 +3,7 @@ import fs from "node:fs";
|
|
|
3
3
|
import { autoInjectable } from "tsyringe";
|
|
4
4
|
import { SpawnService } from "./spawn-service";
|
|
5
5
|
import { LogService } from "./log-service";
|
|
6
|
+
import { dockerIgnoreTemplate } from "../templates/docker-ignore";
|
|
6
7
|
|
|
7
8
|
const gitignoreContent = `node_modules
|
|
8
9
|
dist
|
|
@@ -10,7 +11,7 @@ dist
|
|
|
10
11
|
|
|
11
12
|
@autoInjectable()
|
|
12
13
|
export class TemplateService {
|
|
13
|
-
private loggerName = "Template Service";
|
|
14
|
+
private loggerName = "Template Service :: ";
|
|
14
15
|
|
|
15
16
|
private outputName!: string;
|
|
16
17
|
private sourceDir!: string;
|
|
@@ -22,6 +23,7 @@ export class TemplateService {
|
|
|
22
23
|
".prettierrc",
|
|
23
24
|
"task-runner",
|
|
24
25
|
"install-link.sh",
|
|
26
|
+
"Dockerfile",
|
|
25
27
|
"eslint.config.ts",
|
|
26
28
|
"vitest.config.ts",
|
|
27
29
|
"package-lock.json",
|
|
@@ -33,6 +35,7 @@ export class TemplateService {
|
|
|
33
35
|
"package.json",
|
|
34
36
|
"package-lock.json",
|
|
35
37
|
"install-link.sh",
|
|
38
|
+
"Dockerfile",
|
|
36
39
|
];
|
|
37
40
|
|
|
38
41
|
constructor(
|
|
@@ -59,7 +62,8 @@ export class TemplateService {
|
|
|
59
62
|
await this.copyDirectories();
|
|
60
63
|
await this.copyFiles();
|
|
61
64
|
await this.fixNaming();
|
|
62
|
-
await this.
|
|
65
|
+
await this.createGitIgnore();
|
|
66
|
+
await this.createDockerIgnore();
|
|
63
67
|
await this.removeDoubleNestedTestsDirectory();
|
|
64
68
|
await this.renameTaskRunner();
|
|
65
69
|
await this.initializeWithGit();
|
|
@@ -101,13 +105,20 @@ export class TemplateService {
|
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
107
|
|
|
104
|
-
private async
|
|
108
|
+
private async createGitIgnore() {
|
|
105
109
|
fs.writeFileSync(
|
|
106
110
|
path.join(this.destination, ".gitignore"),
|
|
107
111
|
gitignoreContent,
|
|
108
112
|
);
|
|
109
113
|
}
|
|
110
114
|
|
|
115
|
+
private async createDockerIgnore() {
|
|
116
|
+
fs.writeFileSync(
|
|
117
|
+
path.join(this.destination, ".dockerignore"),
|
|
118
|
+
dockerIgnoreTemplate(),
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
|
|
111
122
|
private async removeDoubleNestedTestsDirectory() {
|
|
112
123
|
const doubleNestedTestsPath = path.join(this.destination, "tests", "tests");
|
|
113
124
|
if (fs.existsSync(doubleNestedTestsPath)) {
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export const dockerIgnoreTemplate = () => `
|
|
2
|
+
# Include any files or directories that you don't want to be copied to your
|
|
3
|
+
# container here (e.g., local build artifacts, temporary files, etc.).
|
|
4
|
+
#
|
|
5
|
+
# For more help, visit the .dockerignore file reference guide at
|
|
6
|
+
# https://docs.docker.com/go/build-context-dockerignore/
|
|
7
|
+
|
|
8
|
+
**/.classpath
|
|
9
|
+
**/.dockerignore
|
|
10
|
+
**/.env
|
|
11
|
+
**/.git
|
|
12
|
+
**/.gitignore
|
|
13
|
+
**/.project
|
|
14
|
+
**/.settings
|
|
15
|
+
**/.toolstarget
|
|
16
|
+
**/.vs
|
|
17
|
+
**/.vscode
|
|
18
|
+
**/.next
|
|
19
|
+
**/.cache
|
|
20
|
+
**/*.*proj.user
|
|
21
|
+
**/*.dbmdl
|
|
22
|
+
**/*.jfm
|
|
23
|
+
**/charts
|
|
24
|
+
**/docker-compose*
|
|
25
|
+
**/compose.y*ml
|
|
26
|
+
**/Dockerfile*
|
|
27
|
+
**/node_modules
|
|
28
|
+
**/npm-debug.log
|
|
29
|
+
**/obj
|
|
30
|
+
**/secrets.dev.yaml
|
|
31
|
+
**/values.dev.yaml
|
|
32
|
+
**/build
|
|
33
|
+
**/dist
|
|
34
|
+
LICENSE
|
|
35
|
+
README.md
|
|
36
|
+
`;
|