@monorepolint/rules 0.5.0-alpha.98 → 0.5.0-beta.1
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/CHANGELOG.md +22 -0
- package/package.json +47 -26
- package/src/__tests__/alphabeticalScripts.spec.ts +6 -5
- package/src/__tests__/bannedDependencies.spec.ts +5 -7
- package/src/__tests__/consistentDependencies.spec.ts +6 -5
- package/src/__tests__/consistentVersions.spec.ts +5 -4
- package/src/__tests__/fileContents.spec.ts +44 -17
- package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +39 -38
- package/src/__tests__/nestedWorkspaces.spec.ts +5 -4
- package/src/__tests__/packageEntry.spec.ts +43 -32
- package/src/__tests__/packageOrder.spec.ts +23 -14
- package/src/__tests__/packageScript.spec.ts +61 -43
- package/src/__tests__/requireDependency.spec.ts +8 -7
- package/src/__tests__/utils.ts +8 -4
- package/src/alphabeticalDependencies.ts +7 -12
- package/src/alphabeticalScripts.ts +7 -12
- package/src/bannedDependencies.ts +9 -12
- package/src/consistentDependencies.ts +9 -10
- package/src/consistentVersions.ts +6 -8
- package/src/fileContents.ts +17 -16
- package/src/index.ts +13 -13
- package/src/mustSatisfyPeerDependencies.ts +16 -17
- package/src/nestedWorkspaces.ts +10 -12
- package/src/packageEntry.ts +7 -9
- package/src/packageOrder.ts +12 -10
- package/src/packageScript.ts +12 -19
- package/src/public/util.ts +1 -0
- package/src/requireDependency.ts +9 -10
- package/src/standardTsconfig.ts +10 -11
- package/src/util/checkAlpha.ts +1 -1
- package/src/util/makeRule.ts +29 -0
- package/src/util/packageDependencyGraphService.ts +2 -2
- package/tsconfig.json +7 -2
- package/lib/__tests__/alphabeticalScripts.spec.d.ts +0 -8
- package/lib/__tests__/alphabeticalScripts.spec.d.ts.map +0 -1
- package/lib/__tests__/alphabeticalScripts.spec.js +0 -61
- package/lib/__tests__/alphabeticalScripts.spec.js.map +0 -1
- package/lib/__tests__/bannedDependencies.spec.d.ts +0 -2
- package/lib/__tests__/bannedDependencies.spec.d.ts.map +0 -1
- package/lib/__tests__/bannedDependencies.spec.js +0 -161
- package/lib/__tests__/bannedDependencies.spec.js.map +0 -1
- package/lib/__tests__/consistentDependencies.spec.d.ts +0 -2
- package/lib/__tests__/consistentDependencies.spec.d.ts.map +0 -1
- package/lib/__tests__/consistentDependencies.spec.js +0 -115
- package/lib/__tests__/consistentDependencies.spec.js.map +0 -1
- package/lib/__tests__/consistentVersions.spec.d.ts +0 -8
- package/lib/__tests__/consistentVersions.spec.d.ts.map +0 -1
- package/lib/__tests__/consistentVersions.spec.js +0 -183
- package/lib/__tests__/consistentVersions.spec.js.map +0 -1
- package/lib/__tests__/fileContents.spec.d.ts +0 -8
- package/lib/__tests__/fileContents.spec.d.ts.map +0 -1
- package/lib/__tests__/fileContents.spec.js +0 -59
- package/lib/__tests__/fileContents.spec.js.map +0 -1
- package/lib/__tests__/mustSatisfyPeerDependencies.spec.d.ts +0 -8
- package/lib/__tests__/mustSatisfyPeerDependencies.spec.d.ts.map +0 -1
- package/lib/__tests__/mustSatisfyPeerDependencies.spec.js +0 -1063
- package/lib/__tests__/mustSatisfyPeerDependencies.spec.js.map +0 -1
- package/lib/__tests__/nestedWorkspaces.spec.d.ts +0 -2
- package/lib/__tests__/nestedWorkspaces.spec.d.ts.map +0 -1
- package/lib/__tests__/nestedWorkspaces.spec.js +0 -124
- package/lib/__tests__/nestedWorkspaces.spec.js.map +0 -1
- package/lib/__tests__/packageEntry.spec.d.ts +0 -8
- package/lib/__tests__/packageEntry.spec.d.ts.map +0 -1
- package/lib/__tests__/packageEntry.spec.js +0 -144
- package/lib/__tests__/packageEntry.spec.js.map +0 -1
- package/lib/__tests__/packageOrder.spec.d.ts +0 -8
- package/lib/__tests__/packageOrder.spec.d.ts.map +0 -1
- package/lib/__tests__/packageOrder.spec.js +0 -116
- package/lib/__tests__/packageOrder.spec.js.map +0 -1
- package/lib/__tests__/packageScript.spec.d.ts +0 -8
- package/lib/__tests__/packageScript.spec.d.ts.map +0 -1
- package/lib/__tests__/packageScript.spec.js +0 -171
- package/lib/__tests__/packageScript.spec.js.map +0 -1
- package/lib/__tests__/requireDependency.spec.d.ts +0 -2
- package/lib/__tests__/requireDependency.spec.d.ts.map +0 -1
- package/lib/__tests__/requireDependency.spec.js +0 -123
- package/lib/__tests__/requireDependency.spec.js.map +0 -1
- package/lib/__tests__/utils.d.ts +0 -76
- package/lib/__tests__/utils.d.ts.map +0 -1
- package/lib/__tests__/utils.js +0 -83
- package/lib/__tests__/utils.js.map +0 -1
- package/lib/alphabeticalDependencies.d.ts +0 -23
- package/lib/alphabeticalDependencies.d.ts.map +0 -1
- package/lib/alphabeticalDependencies.js +0 -24
- package/lib/alphabeticalDependencies.js.map +0 -1
- package/lib/alphabeticalScripts.d.ts +0 -23
- package/lib/alphabeticalScripts.d.ts.map +0 -1
- package/lib/alphabeticalScripts.js +0 -22
- package/lib/alphabeticalScripts.js.map +0 -1
- package/lib/bannedDependencies.d.ts +0 -134
- package/lib/bannedDependencies.d.ts.map +0 -1
- package/lib/bannedDependencies.js +0 -133
- package/lib/bannedDependencies.js.map +0 -1
- package/lib/consistentDependencies.d.ts +0 -38
- package/lib/consistentDependencies.d.ts.map +0 -1
- package/lib/consistentDependencies.js +0 -77
- package/lib/consistentDependencies.js.map +0 -1
- package/lib/consistentVersions.d.ts +0 -47
- package/lib/consistentVersions.d.ts.map +0 -1
- package/lib/consistentVersions.js +0 -96
- package/lib/consistentVersions.js.map +0 -1
- package/lib/fileContents.d.ts +0 -111
- package/lib/fileContents.d.ts.map +0 -1
- package/lib/fileContents.js +0 -84
- package/lib/fileContents.js.map +0 -1
- package/lib/index.d.ts +0 -20
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -49
- package/lib/index.js.map +0 -1
- package/lib/mustSatisfyPeerDependencies.d.ts +0 -721
- package/lib/mustSatisfyPeerDependencies.d.ts.map +0 -1
- package/lib/mustSatisfyPeerDependencies.js +0 -638
- package/lib/mustSatisfyPeerDependencies.js.map +0 -1
- package/lib/nestedWorkspaces.d.ts +0 -24
- package/lib/nestedWorkspaces.d.ts.map +0 -1
- package/lib/nestedWorkspaces.js +0 -52
- package/lib/nestedWorkspaces.js.map +0 -1
- package/lib/packageEntry.d.ts +0 -115
- package/lib/packageEntry.d.ts.map +0 -1
- package/lib/packageEntry.js +0 -77
- package/lib/packageEntry.js.map +0 -1
- package/lib/packageOrder.d.ts +0 -33
- package/lib/packageOrder.d.ts.map +0 -1
- package/lib/packageOrder.js +0 -105
- package/lib/packageOrder.js.map +0 -1
- package/lib/packageScript.d.ts +0 -102
- package/lib/packageScript.d.ts.map +0 -1
- package/lib/packageScript.js +0 -92
- package/lib/packageScript.js.map +0 -1
- package/lib/requireDependency.d.ts +0 -99
- package/lib/requireDependency.d.ts.map +0 -1
- package/lib/requireDependency.js +0 -67
- package/lib/requireDependency.js.map +0 -1
- package/lib/standardTsconfig.d.ts +0 -113
- package/lib/standardTsconfig.d.ts.map +0 -1
- package/lib/standardTsconfig.js +0 -118
- package/lib/standardTsconfig.js.map +0 -1
- package/lib/util/checkAlpha.d.ts +0 -10
- package/lib/util/checkAlpha.d.ts.map +0 -1
- package/lib/util/checkAlpha.js +0 -51
- package/lib/util/checkAlpha.js.map +0 -1
- package/lib/util/createNewRuleConversion.d.ts +0 -30
- package/lib/util/createNewRuleConversion.d.ts.map +0 -1
- package/lib/util/createNewRuleConversion.js +0 -33
- package/lib/util/createNewRuleConversion.js.map +0 -1
- package/lib/util/makeDirectory.d.ts +0 -8
- package/lib/util/makeDirectory.d.ts.map +0 -1
- package/lib/util/makeDirectory.js +0 -28
- package/lib/util/makeDirectory.js.map +0 -1
- package/lib/util/packageDependencyGraphService.d.ts +0 -37
- package/lib/util/packageDependencyGraphService.d.ts.map +0 -1
- package/lib/util/packageDependencyGraphService.js +0 -70
- package/lib/util/packageDependencyGraphService.js.map +0 -1
- package/src/util/createNewRuleConversion.ts +0 -38
- package/tsconfig.tsbuildinfo +0 -1
- /package/{jest.config.js → jest.config.cjs} +0 -0
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright 2019 Palantir Technologies, Inc.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
import { Context, RuleModule } from "@monorepolint/config";
|
|
8
|
-
import * as r from "runtypes";
|
|
9
|
-
export declare const Options: r.Literal<undefined>;
|
|
10
|
-
declare type Options = r.Static<typeof Options>;
|
|
11
|
-
export declare const nestedWorkspaces: RuleModule<typeof Options>;
|
|
12
|
-
export declare const NestedWorkspaces: {
|
|
13
|
-
new (ruleEntry: import("@monorepolint/config").RuleEntry<undefined>): {
|
|
14
|
-
readonly id: string;
|
|
15
|
-
options: undefined;
|
|
16
|
-
readonly name: string;
|
|
17
|
-
checkFunc: import("@monorepolint/config").Checker<r.Literal<undefined>>;
|
|
18
|
-
readonly optionsRuntype: r.Literal<undefined>;
|
|
19
|
-
readonly ruleEntry: import("@monorepolint/config").RuleEntry<undefined>;
|
|
20
|
-
check: (context: Context) => void | Promise<void>;
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=nestedWorkspaces.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nestedWorkspaces.d.ts","sourceRoot":"","sources":["../src/nestedWorkspaces.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,eAAO,MAAM,OAAO,sBAAc,CAAC;AAEnC,aAAK,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAGxC,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC,OAAO,OAAO,CAyCvD,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;CAAgE,CAAC"}
|
package/lib/nestedWorkspaces.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Copyright 2019 Palantir Technologies, Inc.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.NestedWorkspaces = exports.nestedWorkspaces = exports.Options = void 0;
|
|
10
|
-
const tslib_1 = require("tslib");
|
|
11
|
-
const globby_1 = tslib_1.__importDefault(require("globby"));
|
|
12
|
-
const path_1 = tslib_1.__importDefault(require("path"));
|
|
13
|
-
const r = tslib_1.__importStar(require("runtypes"));
|
|
14
|
-
const createNewRuleConversion_1 = require("./util/createNewRuleConversion");
|
|
15
|
-
exports.Options = r.Undefined;
|
|
16
|
-
// Enforce that the root package.json contains all of the workspaces in the repo (including nested packages)
|
|
17
|
-
exports.nestedWorkspaces = {
|
|
18
|
-
check: (context) => {
|
|
19
|
-
const rootPackageJson = context.getWorkspaceContext().getPackageJson();
|
|
20
|
-
// Expand a set of globs covering all package.json files in the entire repo (except the root)
|
|
21
|
-
const packageJsonPaths = globby_1.default.sync(["*/**/package.json", "!**/node_modules/**"]);
|
|
22
|
-
const workspaces = Array.isArray(rootPackageJson.workspaces)
|
|
23
|
-
? rootPackageJson.workspaces
|
|
24
|
-
: rootPackageJson.workspaces !== undefined
|
|
25
|
-
? rootPackageJson.workspaces.packages
|
|
26
|
-
: undefined;
|
|
27
|
-
if (workspaces === undefined && packageJsonPaths.length > 0) {
|
|
28
|
-
context.addError({
|
|
29
|
-
file: context.getPackageJsonPath(),
|
|
30
|
-
message: 'The "workspace" field is missing, even though there are workspaces in the repository.',
|
|
31
|
-
});
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
// Build a set of globs for each package.json that exists in packages specified by a workspace.
|
|
35
|
-
const workspacePackageJsons = (workspaces || []).map((item) => `${item}/package.json`);
|
|
36
|
-
// Expand the globs to get an array of all package.json files that are in packages specified by a workspace.
|
|
37
|
-
const expandedWorkspacesGlobs = globby_1.default.sync([...workspacePackageJsons, "!**/node_modules/**"]);
|
|
38
|
-
// Ensure there are no package.jsons which are not included in the globbed workspaces set
|
|
39
|
-
const difference = packageJsonPaths.filter((packageJsonPath) => !expandedWorkspacesGlobs.includes(packageJsonPath));
|
|
40
|
-
if (difference.length !== 0) {
|
|
41
|
-
const differencesList = difference.map((packageJsonPath) => path_1.default.dirname(packageJsonPath)).join(", ");
|
|
42
|
-
context.addError({
|
|
43
|
-
file: context.getPackageJsonPath(),
|
|
44
|
-
message: `The "workspace" field is missing one or more values: ${differencesList}. ` +
|
|
45
|
-
'You may be able to use a glob to avoid listing each workspace individually, e.g. "packages/nested-workspace/*".',
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
optionsRuntype: exports.Options,
|
|
50
|
-
};
|
|
51
|
-
exports.NestedWorkspaces = (0, createNewRuleConversion_1.createNewRuleConversion)("NestedWorkspaces", exports.nestedWorkspaces);
|
|
52
|
-
//# sourceMappingURL=nestedWorkspaces.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nestedWorkspaces.js","sourceRoot":"","sources":["../src/nestedWorkspaces.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,4DAA4B;AAC5B,wDAAwB;AACxB,oDAA8B;AAC9B,4EAAyE;AAE5D,QAAA,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC;AAInC,4GAA4G;AAC/F,QAAA,gBAAgB,GAA+B;IAC1D,KAAK,EAAE,CAAC,OAAgB,EAAE,EAAE;QAC1B,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,cAAc,EAAE,CAAC;QAEvE,6FAA6F;QAC7F,MAAM,gBAAgB,GAAG,gBAAM,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAEnF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC;YAC1D,CAAC,CAAC,eAAe,CAAC,UAAU;YAC5B,CAAC,CAAC,eAAe,CAAC,UAAU,KAAK,SAAS;gBAC1C,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ;gBACrC,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,UAAU,KAAK,SAAS,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3D,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE;gBAClC,OAAO,EAAE,uFAAuF;aACjG,CAAC,CAAC;YACH,OAAO;SACR;QAED,+FAA+F;QAC/F,MAAM,qBAAqB,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC;QAEvF,4GAA4G;QAC5G,MAAM,uBAAuB,GAAG,gBAAM,CAAC,IAAI,CAAC,CAAC,GAAG,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAE/F,yFAAyF;QACzF,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAEpH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtG,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE;gBAClC,OAAO,EACL,wDAAwD,eAAe,IAAI;oBAC3E,iHAAiH;aACpH,CAAC,CAAC;SACJ;IACH,CAAC;IACD,cAAc,EAAE,eAAO;CACxB,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,iDAAuB,EAAC,kBAAkB,EAAE,wBAAgB,CAAC,CAAC"}
|
package/lib/packageEntry.d.ts
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright 2019 Palantir Technologies, Inc.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
import { Context, RuleModule } from "@monorepolint/config";
|
|
8
|
-
import * as r from "runtypes";
|
|
9
|
-
export declare const Options: r.Union<[r.Intersect<[r.Record<{
|
|
10
|
-
entries: r.Dictionary<r.Unknown, string | number | symbol>;
|
|
11
|
-
}, false>, r.Partial<{
|
|
12
|
-
entriesExist: r.Literal<undefined>;
|
|
13
|
-
}, false>]>, r.Intersect<[r.Record<{
|
|
14
|
-
entriesExist: r.Array<r.String, false>;
|
|
15
|
-
}, false>, r.Partial<{
|
|
16
|
-
entries: r.Literal<undefined>;
|
|
17
|
-
}, false>]>, r.Record<{
|
|
18
|
-
entries: r.Dictionary<r.Unknown, string | number | symbol>;
|
|
19
|
-
entriesExist: r.Array<r.String, false>;
|
|
20
|
-
}, false>]>;
|
|
21
|
-
export declare type Options = r.Static<typeof Options>;
|
|
22
|
-
export declare const packageEntry: RuleModule<typeof Options>;
|
|
23
|
-
export declare const PackageEntry: {
|
|
24
|
-
new (ruleEntry: import("@monorepolint/config").RuleEntry<({
|
|
25
|
-
entries: {
|
|
26
|
-
[x: string]: unknown;
|
|
27
|
-
[x: number]: unknown;
|
|
28
|
-
[x: symbol]: unknown;
|
|
29
|
-
};
|
|
30
|
-
} & {
|
|
31
|
-
entriesExist?: undefined;
|
|
32
|
-
}) | ({
|
|
33
|
-
entriesExist: string[];
|
|
34
|
-
} & {
|
|
35
|
-
entries?: undefined;
|
|
36
|
-
}) | {
|
|
37
|
-
entries: {
|
|
38
|
-
[x: string]: unknown;
|
|
39
|
-
[x: number]: unknown;
|
|
40
|
-
[x: symbol]: unknown;
|
|
41
|
-
};
|
|
42
|
-
entriesExist: string[];
|
|
43
|
-
}>): {
|
|
44
|
-
readonly id: string;
|
|
45
|
-
options: ({
|
|
46
|
-
entries: {
|
|
47
|
-
[x: string]: unknown;
|
|
48
|
-
[x: number]: unknown;
|
|
49
|
-
[x: symbol]: unknown;
|
|
50
|
-
};
|
|
51
|
-
} & {
|
|
52
|
-
entriesExist?: undefined;
|
|
53
|
-
}) | ({
|
|
54
|
-
entriesExist: string[];
|
|
55
|
-
} & {
|
|
56
|
-
entries?: undefined;
|
|
57
|
-
}) | {
|
|
58
|
-
entries: {
|
|
59
|
-
[x: string]: unknown;
|
|
60
|
-
[x: number]: unknown;
|
|
61
|
-
[x: symbol]: unknown;
|
|
62
|
-
};
|
|
63
|
-
entriesExist: string[];
|
|
64
|
-
} | undefined;
|
|
65
|
-
readonly name: string;
|
|
66
|
-
checkFunc: import("@monorepolint/config").Checker<r.Union<[r.Intersect<[r.Record<{
|
|
67
|
-
entries: r.Dictionary<r.Unknown, string | number | symbol>;
|
|
68
|
-
}, false>, r.Partial<{
|
|
69
|
-
entriesExist: r.Literal<undefined>;
|
|
70
|
-
}, false>]>, r.Intersect<[r.Record<{
|
|
71
|
-
entriesExist: r.Array<r.String, false>;
|
|
72
|
-
}, false>, r.Partial<{
|
|
73
|
-
entries: r.Literal<undefined>;
|
|
74
|
-
}, false>]>, r.Record<{
|
|
75
|
-
entries: r.Dictionary<r.Unknown, string | number | symbol>;
|
|
76
|
-
entriesExist: r.Array<r.String, false>;
|
|
77
|
-
}, false>]>>;
|
|
78
|
-
readonly optionsRuntype: r.Union<[r.Intersect<[r.Record<{
|
|
79
|
-
entries: r.Dictionary<r.Unknown, string | number | symbol>;
|
|
80
|
-
}, false>, r.Partial<{
|
|
81
|
-
entriesExist: r.Literal<undefined>;
|
|
82
|
-
}, false>]>, r.Intersect<[r.Record<{
|
|
83
|
-
entriesExist: r.Array<r.String, false>;
|
|
84
|
-
}, false>, r.Partial<{
|
|
85
|
-
entries: r.Literal<undefined>;
|
|
86
|
-
}, false>]>, r.Record<{
|
|
87
|
-
entries: r.Dictionary<r.Unknown, string | number | symbol>;
|
|
88
|
-
entriesExist: r.Array<r.String, false>;
|
|
89
|
-
}, false>]>;
|
|
90
|
-
readonly ruleEntry: import("@monorepolint/config").RuleEntry<({
|
|
91
|
-
entries: {
|
|
92
|
-
[x: string]: unknown;
|
|
93
|
-
[x: number]: unknown;
|
|
94
|
-
[x: symbol]: unknown;
|
|
95
|
-
};
|
|
96
|
-
} & {
|
|
97
|
-
entriesExist?: undefined;
|
|
98
|
-
}) | ({
|
|
99
|
-
entriesExist: string[];
|
|
100
|
-
} & {
|
|
101
|
-
entries?: undefined;
|
|
102
|
-
}) | {
|
|
103
|
-
entries: {
|
|
104
|
-
[x: string]: unknown;
|
|
105
|
-
[x: number]: unknown;
|
|
106
|
-
[x: symbol]: unknown;
|
|
107
|
-
};
|
|
108
|
-
entriesExist: string[];
|
|
109
|
-
}>;
|
|
110
|
-
check: (context: Context) => void | Promise<void>;
|
|
111
|
-
};
|
|
112
|
-
};
|
|
113
|
-
export declare function createStandardizedEntryErrorMessage(key: string): string;
|
|
114
|
-
export declare function createExpectedEntryErrorMessage(key: string): string;
|
|
115
|
-
//# sourceMappingURL=packageEntry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageEntry.d.ts","sourceRoot":"","sources":["../src/packageEntry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,eAAO,MAAM,OAAO;;;;;;;;;;;WAuBnB,CAAC;AAEF,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAE/C,eAAO,MAAM,YAAY,EAAE,UAAU,CAAC,OAAO,OAAO,CAyCnD,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwD,CAAC;AAElF,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,MAAM,UAE9D;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,MAAM,UAE1D"}
|
package/lib/packageEntry.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Copyright 2019 Palantir Technologies, Inc.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.createExpectedEntryErrorMessage = exports.createStandardizedEntryErrorMessage = exports.PackageEntry = exports.packageEntry = exports.Options = void 0;
|
|
10
|
-
const tslib_1 = require("tslib");
|
|
11
|
-
const utils_1 = require("@monorepolint/utils");
|
|
12
|
-
const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
|
|
13
|
-
const r = tslib_1.__importStar(require("runtypes"));
|
|
14
|
-
const createNewRuleConversion_1 = require("./util/createNewRuleConversion");
|
|
15
|
-
exports.Options = r.Union(r
|
|
16
|
-
.Record({
|
|
17
|
-
entries: r.Dictionary(r.Unknown), // string => unknown, enforces existence of keys and their values
|
|
18
|
-
})
|
|
19
|
-
.And(r.Partial({
|
|
20
|
-
entriesExist: r.Undefined,
|
|
21
|
-
})), r
|
|
22
|
-
.Record({
|
|
23
|
-
entriesExist: r.Array(r.String), // enforces existence of keys, but not values
|
|
24
|
-
})
|
|
25
|
-
.And(r.Partial({
|
|
26
|
-
entries: r.Undefined,
|
|
27
|
-
})), r.Record({
|
|
28
|
-
entries: r.Dictionary(r.Unknown),
|
|
29
|
-
entriesExist: r.Array(r.String),
|
|
30
|
-
}));
|
|
31
|
-
exports.packageEntry = {
|
|
32
|
-
check: function expectPackageEntry(context, options) {
|
|
33
|
-
const packageJson = context.getPackageJson();
|
|
34
|
-
if (options.entries) {
|
|
35
|
-
for (const key of Object.keys(options.entries)) {
|
|
36
|
-
const value = options.entries[key];
|
|
37
|
-
const entryDiff = (0, jest_diff_1.default)(JSON.stringify(value) + "\n", (JSON.stringify(packageJson[key]) || "") + "\n");
|
|
38
|
-
if ((typeof value !== "object" && value !== packageJson[key]) ||
|
|
39
|
-
entryDiff == null ||
|
|
40
|
-
!entryDiff.includes("Compared values have no visual difference")) {
|
|
41
|
-
context.addError({
|
|
42
|
-
file: context.getPackageJsonPath(),
|
|
43
|
-
message: createStandardizedEntryErrorMessage(key),
|
|
44
|
-
longMessage: entryDiff,
|
|
45
|
-
fixer: () => {
|
|
46
|
-
(0, utils_1.mutateJson)(context.getPackageJsonPath(), context.host, (input) => {
|
|
47
|
-
input[key] = value;
|
|
48
|
-
return input;
|
|
49
|
-
});
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (options.entriesExist) {
|
|
56
|
-
for (const key of options.entriesExist) {
|
|
57
|
-
if (packageJson[key] === undefined) {
|
|
58
|
-
context.addError({
|
|
59
|
-
file: context.getPackageJsonPath(),
|
|
60
|
-
message: createExpectedEntryErrorMessage(key),
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
optionsRuntype: exports.Options,
|
|
67
|
-
};
|
|
68
|
-
exports.PackageEntry = (0, createNewRuleConversion_1.createNewRuleConversion)("PackageEntry", exports.packageEntry);
|
|
69
|
-
function createStandardizedEntryErrorMessage(key) {
|
|
70
|
-
return `Expected standardized entry for '${key}'`;
|
|
71
|
-
}
|
|
72
|
-
exports.createStandardizedEntryErrorMessage = createStandardizedEntryErrorMessage;
|
|
73
|
-
function createExpectedEntryErrorMessage(key) {
|
|
74
|
-
return `Expected entry for '${key}' to exist`;
|
|
75
|
-
}
|
|
76
|
-
exports.createExpectedEntryErrorMessage = createExpectedEntryErrorMessage;
|
|
77
|
-
//# sourceMappingURL=packageEntry.js.map
|
package/lib/packageEntry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageEntry.js","sourceRoot":"","sources":["../src/packageEntry.ts"],"names":[],"mappings":"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"}
|
package/lib/packageOrder.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright 2019 Palantir Technologies, Inc.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
import { Context, RuleModule } from "@monorepolint/config";
|
|
8
|
-
import * as r from "runtypes";
|
|
9
|
-
export declare const packageOrder: RuleModule<r.Union<[r.Record<{
|
|
10
|
-
order: r.Union<[r.Array<r.String, false>, r.Function]>;
|
|
11
|
-
}, false>, r.Literal<undefined>]>>;
|
|
12
|
-
export declare const PackageOrder: {
|
|
13
|
-
new (ruleEntry: import("@monorepolint/config").RuleEntry<{
|
|
14
|
-
order: ((...args: any[]) => any) | string[];
|
|
15
|
-
} | undefined>): {
|
|
16
|
-
readonly id: string;
|
|
17
|
-
options: {
|
|
18
|
-
order: ((...args: any[]) => any) | string[];
|
|
19
|
-
} | undefined;
|
|
20
|
-
readonly name: string;
|
|
21
|
-
checkFunc: import("@monorepolint/config").Checker<r.Union<[r.Record<{
|
|
22
|
-
order: r.Union<[r.Array<r.String, false>, r.Function]>;
|
|
23
|
-
}, false>, r.Literal<undefined>]>>;
|
|
24
|
-
readonly optionsRuntype: r.Union<[r.Record<{
|
|
25
|
-
order: r.Union<[r.Array<r.String, false>, r.Function]>;
|
|
26
|
-
}, false>, r.Literal<undefined>]>;
|
|
27
|
-
readonly ruleEntry: import("@monorepolint/config").RuleEntry<{
|
|
28
|
-
order: ((...args: any[]) => any) | string[];
|
|
29
|
-
} | undefined>;
|
|
30
|
-
check: (context: Context) => void | Promise<void>;
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=packageOrder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageOrder.d.ts","sourceRoot":"","sources":["../src/packageOrder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AA0C9B,eAAO,MAAM,YAAY;;kCA8BM,CAAC;AAEhC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;CAAwD,CAAC"}
|
package/lib/packageOrder.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Copyright 2019 Palantir Technologies, Inc.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.PackageOrder = exports.packageOrder = void 0;
|
|
10
|
-
const tslib_1 = require("tslib");
|
|
11
|
-
const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
|
|
12
|
-
const r = tslib_1.__importStar(require("runtypes"));
|
|
13
|
-
const createNewRuleConversion_1 = require("./util/createNewRuleConversion");
|
|
14
|
-
const Options = r
|
|
15
|
-
.Record({
|
|
16
|
-
order: r.Union(r.Array(r.String), r.Function),
|
|
17
|
-
})
|
|
18
|
-
.Or(r.Undefined);
|
|
19
|
-
const defaultKeyOrder = [
|
|
20
|
-
"name",
|
|
21
|
-
"version",
|
|
22
|
-
"description",
|
|
23
|
-
"author",
|
|
24
|
-
"contributors",
|
|
25
|
-
"url",
|
|
26
|
-
"license",
|
|
27
|
-
"private",
|
|
28
|
-
"engines",
|
|
29
|
-
"bin",
|
|
30
|
-
"main",
|
|
31
|
-
"module",
|
|
32
|
-
"typings",
|
|
33
|
-
"style",
|
|
34
|
-
"sideEffects",
|
|
35
|
-
"workspaces",
|
|
36
|
-
"husky",
|
|
37
|
-
"lint-staged",
|
|
38
|
-
"files",
|
|
39
|
-
"scripts",
|
|
40
|
-
"resolutions",
|
|
41
|
-
"dependencies",
|
|
42
|
-
"peerDependencies",
|
|
43
|
-
"devDependencies",
|
|
44
|
-
"optionalDependencies",
|
|
45
|
-
"publishConfig",
|
|
46
|
-
];
|
|
47
|
-
exports.packageOrder = {
|
|
48
|
-
check: function expectPackageOrder(context, opts) {
|
|
49
|
-
const packageJson = context.getPackageJson();
|
|
50
|
-
const packagePath = context.getPackageJsonPath();
|
|
51
|
-
const order = opts === undefined ? defaultKeyOrder : opts.order;
|
|
52
|
-
const comparator = isOrderFunction(order) ? order(context) : createComparator(order);
|
|
53
|
-
const actualOrder = Object.keys(packageJson);
|
|
54
|
-
const expectedOrder = actualOrder.slice().sort(comparator); // sort mutates, so we need to copy the previous result
|
|
55
|
-
if (!arrayOrderCompare(actualOrder, expectedOrder)) {
|
|
56
|
-
context.addError({
|
|
57
|
-
file: packagePath,
|
|
58
|
-
message: "Incorrect order of fields in package.json",
|
|
59
|
-
longMessage: (0, jest_diff_1.default)(expectedOrder, actualOrder, { expand: true }),
|
|
60
|
-
fixer: () => {
|
|
61
|
-
const expectedPackageJson = {};
|
|
62
|
-
expectedOrder.forEach((key) => {
|
|
63
|
-
expectedPackageJson[key] = packageJson[key];
|
|
64
|
-
});
|
|
65
|
-
context.host.writeJson(packagePath, expectedPackageJson);
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
optionsRuntype: Options,
|
|
71
|
-
};
|
|
72
|
-
exports.PackageOrder = (0, createNewRuleConversion_1.createNewRuleConversion)("PackageOrder", exports.packageOrder);
|
|
73
|
-
function arrayOrderCompare(a, b) {
|
|
74
|
-
for (let index = 0; index < a.length; index++) {
|
|
75
|
-
if (a[index] !== b[index]) {
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
function createComparator(order) {
|
|
82
|
-
return (a, b) => {
|
|
83
|
-
const aIndex = order.indexOf(a);
|
|
84
|
-
const bIndex = order.indexOf(b);
|
|
85
|
-
// if one of the two is missing from the order array, push it further down
|
|
86
|
-
if (aIndex >= 0 && bIndex < 0) {
|
|
87
|
-
return -1;
|
|
88
|
-
}
|
|
89
|
-
else if (aIndex < 0 && bIndex >= 0) {
|
|
90
|
-
return 1;
|
|
91
|
-
}
|
|
92
|
-
// otherwise compare the indexes and use alphabetical as a tie breaker
|
|
93
|
-
const compared = aIndex - bIndex;
|
|
94
|
-
if (compared !== 0) {
|
|
95
|
-
return compared;
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
return a.localeCompare(b);
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
function isOrderFunction(order) {
|
|
103
|
-
return !Array.isArray(order);
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=packageOrder.js.map
|
package/lib/packageOrder.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageOrder.js","sourceRoot":"","sources":["../src/packageOrder.ts"],"names":[],"mappings":"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"}
|
package/lib/packageScript.d.ts
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright 2019 Palantir Technologies, Inc.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
import { Context, RuleModule } from "@monorepolint/config";
|
|
8
|
-
import * as r from "runtypes";
|
|
9
|
-
export declare const Options: r.Record<{
|
|
10
|
-
scripts: r.Dictionary<r.Union<[r.String, r.Intersect<[r.Record<{
|
|
11
|
-
options: r.Array<r.Union<[r.String, r.Literal<undefined>]>, false>;
|
|
12
|
-
}, false>, r.Partial<{
|
|
13
|
-
fixValue: r.Union<[r.String, r.Literal<undefined>, r.Literal<false>]>;
|
|
14
|
-
}, false>]>]>, string | number | symbol>;
|
|
15
|
-
}, false>;
|
|
16
|
-
export declare type Options = r.Static<typeof Options>;
|
|
17
|
-
export declare const MSG_NO_SCRIPTS_BLOCK = "No scripts block in package.json";
|
|
18
|
-
export declare const packageScript: RuleModule<r.Record<{
|
|
19
|
-
scripts: r.Dictionary<r.Union<[r.String, r.Intersect<[r.Record<{
|
|
20
|
-
options: r.Array<r.Union<[r.String, r.Literal<undefined>]>, false>;
|
|
21
|
-
}, false>, r.Partial<{
|
|
22
|
-
fixValue: r.Union<[r.String, r.Literal<undefined>, r.Literal<false>]>;
|
|
23
|
-
}, false>]>]>, string | number | symbol>;
|
|
24
|
-
}, false>>;
|
|
25
|
-
export declare const PackageScript: {
|
|
26
|
-
new (ruleEntry: import("@monorepolint/config").RuleEntry<{
|
|
27
|
-
scripts: {
|
|
28
|
-
[x: string]: string | ({
|
|
29
|
-
options: (string | undefined)[];
|
|
30
|
-
} & {
|
|
31
|
-
fixValue?: string | false | undefined;
|
|
32
|
-
});
|
|
33
|
-
[x: number]: string | ({
|
|
34
|
-
options: (string | undefined)[];
|
|
35
|
-
} & {
|
|
36
|
-
fixValue?: string | false | undefined;
|
|
37
|
-
});
|
|
38
|
-
[x: symbol]: string | ({
|
|
39
|
-
options: (string | undefined)[];
|
|
40
|
-
} & {
|
|
41
|
-
fixValue?: string | false | undefined;
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
}>): {
|
|
45
|
-
readonly id: string;
|
|
46
|
-
options: {
|
|
47
|
-
scripts: {
|
|
48
|
-
[x: string]: string | ({
|
|
49
|
-
options: (string | undefined)[];
|
|
50
|
-
} & {
|
|
51
|
-
fixValue?: string | false | undefined;
|
|
52
|
-
});
|
|
53
|
-
[x: number]: string | ({
|
|
54
|
-
options: (string | undefined)[];
|
|
55
|
-
} & {
|
|
56
|
-
fixValue?: string | false | undefined;
|
|
57
|
-
});
|
|
58
|
-
[x: symbol]: string | ({
|
|
59
|
-
options: (string | undefined)[];
|
|
60
|
-
} & {
|
|
61
|
-
fixValue?: string | false | undefined;
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
} | undefined;
|
|
65
|
-
readonly name: string;
|
|
66
|
-
checkFunc: import("@monorepolint/config").Checker<r.Record<{
|
|
67
|
-
scripts: r.Dictionary<r.Union<[r.String, r.Intersect<[r.Record<{
|
|
68
|
-
options: r.Array<r.Union<[r.String, r.Literal<undefined>]>, false>;
|
|
69
|
-
}, false>, r.Partial<{
|
|
70
|
-
fixValue: r.Union<[r.String, r.Literal<undefined>, r.Literal<false>]>;
|
|
71
|
-
}, false>]>]>, string | number | symbol>;
|
|
72
|
-
}, false>>;
|
|
73
|
-
readonly optionsRuntype: r.Record<{
|
|
74
|
-
scripts: r.Dictionary<r.Union<[r.String, r.Intersect<[r.Record<{
|
|
75
|
-
options: r.Array<r.Union<[r.String, r.Literal<undefined>]>, false>;
|
|
76
|
-
}, false>, r.Partial<{
|
|
77
|
-
fixValue: r.Union<[r.String, r.Literal<undefined>, r.Literal<false>]>;
|
|
78
|
-
}, false>]>]>, string | number | symbol>;
|
|
79
|
-
}, false>;
|
|
80
|
-
readonly ruleEntry: import("@monorepolint/config").RuleEntry<{
|
|
81
|
-
scripts: {
|
|
82
|
-
[x: string]: string | ({
|
|
83
|
-
options: (string | undefined)[];
|
|
84
|
-
} & {
|
|
85
|
-
fixValue?: string | false | undefined;
|
|
86
|
-
});
|
|
87
|
-
[x: number]: string | ({
|
|
88
|
-
options: (string | undefined)[];
|
|
89
|
-
} & {
|
|
90
|
-
fixValue?: string | false | undefined;
|
|
91
|
-
});
|
|
92
|
-
[x: symbol]: string | ({
|
|
93
|
-
options: (string | undefined)[];
|
|
94
|
-
} & {
|
|
95
|
-
fixValue?: string | false | undefined;
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
}>;
|
|
99
|
-
check: (context: Context) => void | Promise<void>;
|
|
100
|
-
};
|
|
101
|
-
};
|
|
102
|
-
//# sourceMappingURL=packageScript.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageScript.d.ts","sourceRoot":"","sources":["../src/packageScript.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,eAAO,MAAM,OAAO;;;;;;SAelB,CAAC;AAEH,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAE/C,eAAO,MAAM,oBAAoB,qCAAqC,CAAC;AAEvE,eAAO,MAAM,aAAa;;;;;;UAqEK,CAAC;AAEhC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA0D,CAAC"}
|
package/lib/packageScript.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Copyright 2019 Palantir Technologies, Inc.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.PackageScript = exports.packageScript = exports.MSG_NO_SCRIPTS_BLOCK = exports.Options = void 0;
|
|
10
|
-
const tslib_1 = require("tslib");
|
|
11
|
-
const utils_1 = require("@monorepolint/utils");
|
|
12
|
-
const createNewRuleConversion_1 = require("./util/createNewRuleConversion");
|
|
13
|
-
const jest_diff_1 = tslib_1.__importDefault(require("jest-diff"));
|
|
14
|
-
const r = tslib_1.__importStar(require("runtypes"));
|
|
15
|
-
exports.Options = r.Record({
|
|
16
|
-
scripts: r.Dictionary(r.Union(r.String, r
|
|
17
|
-
.Record({
|
|
18
|
-
options: r.Array(r.String.Or(r.Undefined)),
|
|
19
|
-
})
|
|
20
|
-
.And(r.Partial({
|
|
21
|
-
fixValue: r.Union(r.String, r.Undefined, r.Literal(false)),
|
|
22
|
-
})))), // string => string
|
|
23
|
-
});
|
|
24
|
-
exports.MSG_NO_SCRIPTS_BLOCK = "No scripts block in package.json";
|
|
25
|
-
exports.packageScript = {
|
|
26
|
-
check: function expectPackageScript(context, options) {
|
|
27
|
-
const packageJson = context.getPackageJson();
|
|
28
|
-
if (packageJson.scripts === undefined) {
|
|
29
|
-
context.addError({
|
|
30
|
-
file: context.getPackageJsonPath(),
|
|
31
|
-
message: exports.MSG_NO_SCRIPTS_BLOCK,
|
|
32
|
-
fixer: () => {
|
|
33
|
-
(0, utils_1.mutateJson)(context.getPackageJsonPath(), context.host, (input) => {
|
|
34
|
-
input.scripts = {};
|
|
35
|
-
return input;
|
|
36
|
-
});
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
for (const [name, value] of Object.entries(options.scripts)) {
|
|
42
|
-
const allowedValues = new Set();
|
|
43
|
-
let fixValue;
|
|
44
|
-
let allowEmpty = false;
|
|
45
|
-
let fixToEmpty = false;
|
|
46
|
-
if (typeof value === "string") {
|
|
47
|
-
allowedValues.add(value);
|
|
48
|
-
fixValue = value;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
for (const q of value.options) {
|
|
52
|
-
if (q === undefined) {
|
|
53
|
-
allowEmpty = true;
|
|
54
|
-
}
|
|
55
|
-
allowedValues.add(q);
|
|
56
|
-
}
|
|
57
|
-
fixToEmpty = value.hasOwnProperty("fixValue") && value.fixValue === undefined;
|
|
58
|
-
fixValue = value.fixValue;
|
|
59
|
-
}
|
|
60
|
-
const actualValue = packageJson.scripts[name];
|
|
61
|
-
if (!allowedValues.has(actualValue) && !(allowEmpty === true && actualValue === undefined)) {
|
|
62
|
-
let fixer;
|
|
63
|
-
if (fixValue !== false && (fixValue !== undefined || fixToEmpty === true)) {
|
|
64
|
-
const q = fixValue;
|
|
65
|
-
fixer = () => {
|
|
66
|
-
(0, utils_1.mutateJson)(context.getPackageJsonPath(), context.host, (input) => {
|
|
67
|
-
if (fixToEmpty && q === undefined) {
|
|
68
|
-
delete input.scripts[name];
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
input.scripts[name] = q;
|
|
72
|
-
}
|
|
73
|
-
return input;
|
|
74
|
-
});
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
const validOptionsString = Array.from(allowedValues.values())
|
|
78
|
-
.map((a) => (a === undefined ? "(empty)" : `'${a}'`))
|
|
79
|
-
.join(", ");
|
|
80
|
-
context.addError({
|
|
81
|
-
file: context.getPackageJsonPath(),
|
|
82
|
-
message: `Expected standardized script entry for '${name}'. Valid options: ${validOptionsString}`,
|
|
83
|
-
longMessage: (0, jest_diff_1.default)(validOptionsString + "\n", (packageJson.scripts[name] || "") + "\n"),
|
|
84
|
-
fixer,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
optionsRuntype: exports.Options,
|
|
90
|
-
};
|
|
91
|
-
exports.PackageScript = (0, createNewRuleConversion_1.createNewRuleConversion)("PackageScript", exports.packageScript);
|
|
92
|
-
//# sourceMappingURL=packageScript.js.map
|
package/lib/packageScript.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageScript.js","sourceRoot":"","sources":["../src/packageScript.ts"],"names":[],"mappings":"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"}
|