@qawolf/ci-utils 1.0.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/.eslintrc.json +13 -0
- package/README.md +3 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +7 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +13 -0
- package/dist/log.js.map +1 -0
- package/dist/string.d.ts +2 -0
- package/dist/string.d.ts.map +1 -0
- package/dist/string.js +24 -0
- package/dist/string.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +41 -0
- package/dist/types.js.map +1 -0
- package/jest.config.ts +8 -0
- package/package.json +25 -0
- package/project.json +6 -0
- package/src/index.ts +3 -0
- package/src/log.ts +17 -0
- package/src/string.ts +19 -0
- package/src/types.test.ts +58 -0
- package/src/types.ts +41 -0
- package/tsconfig.build.json +13 -0
- package/tsconfig.json +9 -0
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ESLint config files allow comments, so please comment all changes you make here.
|
|
3
|
+
* Unless you are changing a rule for reasons very specific to this project, you
|
|
4
|
+
* should consider making the change in our @qawolf base config instead. There is
|
|
5
|
+
* also a `.eslintrc.json` file in this repo root folder for any rules that we want
|
|
6
|
+
* in this repo but not necessarily in other repos that use our @qawolf base config.
|
|
7
|
+
*/
|
|
8
|
+
{
|
|
9
|
+
"root": true,
|
|
10
|
+
"rules": {},
|
|
11
|
+
"extends": ["@qawolf", "../../.eslintrc.json"],
|
|
12
|
+
"ignorePatterns": ["!**/*", "/**/*.js", "/**/*.d.ts", "dist", "node_modules"]
|
|
13
|
+
}
|
package/README.md
ADDED
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./log"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./string"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,gDAAsB;AACtB,mDAAyB"}
|
package/dist/log.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,aAAa,EAAE,SAM3B,CAAC"}
|
package/dist/log.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.coreLogDriver = void 0;
|
|
4
|
+
const core_1 = require("@actions/core");
|
|
5
|
+
const string_1 = require("./string");
|
|
6
|
+
exports.coreLogDriver = {
|
|
7
|
+
error(message, error) {
|
|
8
|
+
(0, core_1.error)(message + (error ? `\n${(0, string_1.stringifyUnknown)(error)}` : ""));
|
|
9
|
+
},
|
|
10
|
+
info: core_1.info,
|
|
11
|
+
warn: core_1.warning,
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=log.js.map
|
package/dist/log.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":";;;AAAA,wCAAkE;AAElE,qCAA4C;AAQ/B,QAAA,aAAa,GAAc;IACtC,KAAK,CAAC,OAAO,EAAE,KAAK;QAClB,IAAA,YAAS,EAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAA,yBAAgB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,EAAJ,WAAI;IACJ,IAAI,EAAE,cAAO;CACd,CAAC"}
|
package/dist/string.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAkBvD"}
|
package/dist/string.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stringifyUnknown = stringifyUnknown;
|
|
4
|
+
function stringifyUnknown(value) {
|
|
5
|
+
if (value === null || value === undefined) {
|
|
6
|
+
return "";
|
|
7
|
+
}
|
|
8
|
+
if (typeof value === "string")
|
|
9
|
+
return value;
|
|
10
|
+
if (value instanceof Error) {
|
|
11
|
+
if ("message" in value && typeof value.message === "string") {
|
|
12
|
+
return value.message;
|
|
13
|
+
}
|
|
14
|
+
return value.toString();
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
const stringified = JSON.stringify(value);
|
|
18
|
+
return !stringified ? "" : stringified;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return "";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":";;AAAA,4CAkBC;AAlBD,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import zod from "zod";
|
|
2
|
+
declare const environmentVariablesSchema: zod.ZodRecord<zod.ZodString, zod.ZodString>;
|
|
3
|
+
export declare const jsonEnvironmentVariablesSchema: zod.ZodPipeline<zod.ZodEffects<zod.ZodString, unknown, string>, zod.ZodRecord<zod.ZodString, zod.ZodString>>;
|
|
4
|
+
export type EnvironmentVariables = zod.infer<typeof environmentVariablesSchema>;
|
|
5
|
+
export declare const jsonEnvironmentsMappingSchema: zod.ZodPipeline<zod.ZodEffects<zod.ZodString, unknown, string>, zod.ZodArray<zod.ZodObject<{
|
|
6
|
+
environmentAlias: zod.ZodString;
|
|
7
|
+
vcsBranch: zod.ZodString;
|
|
8
|
+
}, "strip", zod.ZodTypeAny, {
|
|
9
|
+
environmentAlias: string;
|
|
10
|
+
vcsBranch: string;
|
|
11
|
+
}, {
|
|
12
|
+
environmentAlias: string;
|
|
13
|
+
vcsBranch: string;
|
|
14
|
+
}>, "many">>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,QAAA,MAAM,0BAA0B,6CAAyC,CAAC;AAE1E,eAAO,MAAM,8BAA8B,8GAaR,CAAC;AAEpC,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAQhF,eAAO,MAAM,6BAA6B;;;;;;;;;YAaR,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsonEnvironmentsMappingSchema = exports.jsonEnvironmentVariablesSchema = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const zod_1 = tslib_1.__importDefault(require("zod"));
|
|
6
|
+
const environmentVariablesSchema = zod_1.default.record(zod_1.default.string(), zod_1.default.string());
|
|
7
|
+
exports.jsonEnvironmentVariablesSchema = zod_1.default
|
|
8
|
+
.string()
|
|
9
|
+
.transform((str, ctx) => {
|
|
10
|
+
try {
|
|
11
|
+
return JSON.parse(str);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
ctx.addIssue({
|
|
15
|
+
code: "custom",
|
|
16
|
+
message: "input is not a valid JSON-formatted string",
|
|
17
|
+
});
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
.pipe(environmentVariablesSchema);
|
|
22
|
+
const environmentsMappingSchema = zod_1.default.array(zod_1.default.object({
|
|
23
|
+
environmentAlias: zod_1.default.string(),
|
|
24
|
+
vcsBranch: zod_1.default.string(),
|
|
25
|
+
}));
|
|
26
|
+
exports.jsonEnvironmentsMappingSchema = zod_1.default
|
|
27
|
+
.string()
|
|
28
|
+
.transform((str, ctx) => {
|
|
29
|
+
try {
|
|
30
|
+
return JSON.parse(str);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
ctx.addIssue({
|
|
34
|
+
code: "custom",
|
|
35
|
+
message: "input is not a valid JSON-formatted string",
|
|
36
|
+
});
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
})
|
|
40
|
+
.pipe(environmentsMappingSchema);
|
|
41
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;AAAA,sDAAsB;AAEtB,MAAM,0BAA0B,GAAG,aAAG,CAAC,MAAM,CAAC,aAAG,CAAC,MAAM,EAAE,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AAE7D,QAAA,8BAA8B,GAAG,aAAG;KAC9C,MAAM,EAAE;KACR,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAW,EAAE;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,4CAA4C;SACtD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;AACH,CAAC,CAAC;KACD,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAIpC,MAAM,yBAAyB,GAAG,aAAG,CAAC,KAAK,CACzC,aAAG,CAAC,MAAM,CAAC;IACT,gBAAgB,EAAE,aAAG,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAE,aAAG,CAAC,MAAM,EAAE;CACxB,CAAC,CACH,CAAC;AACW,QAAA,6BAA6B,GAAG,aAAG;KAC7C,MAAM,EAAE;KACR,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAW,EAAE;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,4CAA4C;SACtD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;AACH,CAAC,CAAC;KACD,IAAI,CAAC,yBAAyB,CAAC,CAAC"}
|
package/jest.config.ts
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@qawolf/ci-utils",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "commonjs",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": "^16 || ^18 || ^20 || >=22"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc -p tsconfig.build.json",
|
|
11
|
+
"build:clean": "tsc --build --clean && rm -rf ./dist",
|
|
12
|
+
"lint": "eslint . --ext js,jsx,mjs,ts,tsx --max-warnings=0 && prettier --check .",
|
|
13
|
+
"lint:fix": "eslint . --ext js,jsx,mjs,ts,tsx --fix --max-warnings=0 && prettier --write .",
|
|
14
|
+
"test": "jest --passWithNoTests",
|
|
15
|
+
"test:watch": "npm run test -- --watch",
|
|
16
|
+
"tsc:check": "tsc",
|
|
17
|
+
"gen": "npm run build"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@actions/core": "^1.10.1",
|
|
21
|
+
"tslib": "^2.5.3",
|
|
22
|
+
"zod": "^3.22.4"
|
|
23
|
+
},
|
|
24
|
+
"license": "MIT"
|
|
25
|
+
}
|
package/project.json
ADDED
package/src/index.ts
ADDED
package/src/log.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { error as coreError, info, warning } from "@actions/core";
|
|
2
|
+
|
|
3
|
+
import { stringifyUnknown } from "./string";
|
|
4
|
+
|
|
5
|
+
export interface LogDriver {
|
|
6
|
+
error(message: string, error?: unknown): void;
|
|
7
|
+
info(message: string): void;
|
|
8
|
+
warn(message: string): void;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const coreLogDriver: LogDriver = {
|
|
12
|
+
error(message, error) {
|
|
13
|
+
coreError(message + (error ? `\n${stringifyUnknown(error)}` : ""));
|
|
14
|
+
},
|
|
15
|
+
info,
|
|
16
|
+
warn: warning,
|
|
17
|
+
};
|
package/src/string.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function stringifyUnknown(value: unknown): string {
|
|
2
|
+
if (value === null || value === undefined) {
|
|
3
|
+
return "";
|
|
4
|
+
}
|
|
5
|
+
if (typeof value === "string") return value;
|
|
6
|
+
if (value instanceof Error) {
|
|
7
|
+
if ("message" in value && typeof value.message === "string") {
|
|
8
|
+
return value.message;
|
|
9
|
+
}
|
|
10
|
+
return value.toString();
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
const stringified = JSON.stringify(value);
|
|
14
|
+
|
|
15
|
+
return !stringified ? "" : stringified;
|
|
16
|
+
} catch {
|
|
17
|
+
return "";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
jsonEnvironmentsMappingSchema,
|
|
3
|
+
jsonEnvironmentVariablesSchema,
|
|
4
|
+
} from "./types";
|
|
5
|
+
|
|
6
|
+
describe("types", () => {
|
|
7
|
+
describe("jsonEnvironmentVariablesSchema", () => {
|
|
8
|
+
it("should fail to parse malformed JSON", () => {
|
|
9
|
+
const result = jsonEnvironmentVariablesSchema.safeParse("{");
|
|
10
|
+
expect(result.success).toBe(false);
|
|
11
|
+
});
|
|
12
|
+
it("should succeed to parse well formatted JSON object string-string dictionary", () => {
|
|
13
|
+
const result = jsonEnvironmentVariablesSchema.safeParse(
|
|
14
|
+
JSON.stringify({
|
|
15
|
+
foo: "bar",
|
|
16
|
+
}),
|
|
17
|
+
);
|
|
18
|
+
expect(result.success).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
it("should fail to parse well formatted JSON which is not an object", () => {
|
|
21
|
+
const result = jsonEnvironmentVariablesSchema.safeParse(
|
|
22
|
+
JSON.stringify("Hello world"),
|
|
23
|
+
);
|
|
24
|
+
expect(result.success).toBe(false);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it("should fail to parse well formatted JSON which is not a dictionary of string-string", () => {
|
|
28
|
+
const result = jsonEnvironmentVariablesSchema.safeParse(
|
|
29
|
+
JSON.stringify({ foo: 1 }),
|
|
30
|
+
);
|
|
31
|
+
expect(result.success).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
describe("jsonEnvironmentsMappingSchema", () => {
|
|
36
|
+
it("fails with invalid JSON", () => {
|
|
37
|
+
const result = jsonEnvironmentsMappingSchema.safeParse("{");
|
|
38
|
+
expect(result.success).toBe(false);
|
|
39
|
+
});
|
|
40
|
+
it("succeeds with valid JSON w/ correct schema", () => {
|
|
41
|
+
const result = jsonEnvironmentsMappingSchema.safeParse(
|
|
42
|
+
JSON.stringify([
|
|
43
|
+
{
|
|
44
|
+
environmentAlias: "foo",
|
|
45
|
+
vcsBranch: "bar",
|
|
46
|
+
},
|
|
47
|
+
]),
|
|
48
|
+
);
|
|
49
|
+
expect(result.success).toBe(true);
|
|
50
|
+
});
|
|
51
|
+
it("fails with valid JSON w/ incorrect schema", () => {
|
|
52
|
+
const result = jsonEnvironmentsMappingSchema.safeParse(
|
|
53
|
+
JSON.stringify([{ invalid: "schema" }]),
|
|
54
|
+
);
|
|
55
|
+
expect(result.success).toBe(false);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
});
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import zod from "zod";
|
|
2
|
+
|
|
3
|
+
const environmentVariablesSchema = zod.record(zod.string(), zod.string());
|
|
4
|
+
|
|
5
|
+
export const jsonEnvironmentVariablesSchema = zod
|
|
6
|
+
.string()
|
|
7
|
+
.transform((str, ctx): unknown => {
|
|
8
|
+
try {
|
|
9
|
+
return JSON.parse(str);
|
|
10
|
+
} catch (error) {
|
|
11
|
+
ctx.addIssue({
|
|
12
|
+
code: "custom",
|
|
13
|
+
message: "input is not a valid JSON-formatted string",
|
|
14
|
+
});
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
.pipe(environmentVariablesSchema);
|
|
19
|
+
|
|
20
|
+
export type EnvironmentVariables = zod.infer<typeof environmentVariablesSchema>;
|
|
21
|
+
|
|
22
|
+
const environmentsMappingSchema = zod.array(
|
|
23
|
+
zod.object({
|
|
24
|
+
environmentAlias: zod.string(),
|
|
25
|
+
vcsBranch: zod.string(),
|
|
26
|
+
}),
|
|
27
|
+
);
|
|
28
|
+
export const jsonEnvironmentsMappingSchema = zod
|
|
29
|
+
.string()
|
|
30
|
+
.transform((str, ctx): unknown => {
|
|
31
|
+
try {
|
|
32
|
+
return JSON.parse(str);
|
|
33
|
+
} catch (error) {
|
|
34
|
+
ctx.addIssue({
|
|
35
|
+
code: "custom",
|
|
36
|
+
message: "input is not a valid JSON-formatted string",
|
|
37
|
+
});
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
.pipe(environmentsMappingSchema);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
|
3
|
+
"extends": "./tsconfig.json",
|
|
4
|
+
"compilerOptions": {
|
|
5
|
+
"declaration": true,
|
|
6
|
+
"declarationMap": true,
|
|
7
|
+
"noEmit": false,
|
|
8
|
+
"outDir": "dist",
|
|
9
|
+
"rootDir": "src"
|
|
10
|
+
},
|
|
11
|
+
"include": ["src/**/*.ts", "src/**/*.tsx"],
|
|
12
|
+
"exclude": ["src/**/*.test.ts", "src/**/*.test.tsx"]
|
|
13
|
+
}
|