@appium/docutils 0.1.6 → 0.2.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/README.md +2 -5
- package/build/lib/build/mkdocs.d.ts +58 -0
- package/build/lib/build/mkdocs.d.ts.map +1 -0
- package/build/lib/build/mkdocs.js +80 -0
- package/build/lib/build/mkdocs.js.map +1 -0
- package/build/lib/build/typedoc.d.ts +55 -0
- package/build/lib/build/typedoc.d.ts.map +1 -0
- package/build/lib/build/typedoc.js +120 -0
- package/build/lib/build/typedoc.js.map +1 -0
- package/build/lib/build-api.d.ts +18 -0
- package/build/lib/build-api.d.ts.map +1 -0
- package/build/lib/build-api.js +75 -0
- package/build/lib/build-api.js.map +1 -0
- package/build/lib/build.d.ts +21 -0
- package/build/lib/build.d.ts.map +1 -0
- package/build/lib/build.js +71 -0
- package/build/lib/build.js.map +1 -0
- package/build/lib/builder/deploy.d.ts +89 -0
- package/build/lib/builder/deploy.d.ts.map +1 -0
- package/build/lib/builder/deploy.js +102 -0
- package/build/lib/builder/deploy.js.map +1 -0
- package/build/lib/builder/index.d.ts +5 -0
- package/build/lib/builder/index.d.ts.map +1 -0
- package/build/lib/builder/index.js +21 -0
- package/build/lib/builder/index.js.map +1 -0
- package/build/lib/builder/nav.d.ts +81 -0
- package/build/lib/builder/nav.d.ts.map +1 -0
- package/build/lib/builder/nav.js +272 -0
- package/build/lib/builder/nav.js.map +1 -0
- package/build/lib/builder/reference.d.ts +57 -0
- package/build/lib/builder/reference.d.ts.map +1 -0
- package/build/lib/builder/reference.js +129 -0
- package/build/lib/builder/reference.js.map +1 -0
- package/build/lib/builder/site.d.ts +55 -0
- package/build/lib/builder/site.d.ts.map +1 -0
- package/build/lib/builder/site.js +81 -0
- package/build/lib/builder/site.js.map +1 -0
- package/build/lib/cli/command/build.d.ts +178 -0
- package/build/lib/cli/command/build.d.ts.map +1 -0
- package/build/lib/cli/command/build.js +223 -0
- package/build/lib/cli/command/build.js.map +1 -0
- package/build/lib/cli/command/deploy.d.ts +1 -0
- package/build/lib/cli/command/deploy.d.ts.map +1 -0
- package/build/lib/cli/command/deploy.js +2 -0
- package/build/lib/cli/command/deploy.js.map +1 -0
- package/build/lib/cli/command/index.d.ts +4 -0
- package/build/lib/cli/command/index.d.ts.map +1 -0
- package/build/lib/cli/command/index.js +13 -0
- package/build/lib/cli/command/index.js.map +1 -0
- package/build/lib/cli/command/init.d.ts +143 -0
- package/build/lib/cli/command/init.d.ts.map +1 -0
- package/build/lib/cli/command/init.js +164 -0
- package/build/lib/cli/command/init.js.map +1 -0
- package/build/lib/cli/command/validate.d.ts +76 -0
- package/build/lib/cli/command/validate.d.ts.map +1 -0
- package/build/lib/cli/command/validate.js +115 -0
- package/build/lib/cli/command/validate.js.map +1 -0
- package/build/lib/cli/command-init.d.ts +143 -0
- package/build/lib/cli/command-init.d.ts.map +1 -0
- package/build/lib/cli/command-init.js +164 -0
- package/build/lib/cli/command-init.js.map +1 -0
- package/build/lib/cli/command-validate.d.ts +52 -0
- package/build/lib/cli/command-validate.d.ts.map +1 -0
- package/build/lib/cli/command-validate.js +66 -0
- package/build/lib/cli/command-validate.js.map +1 -0
- package/build/lib/cli/config.d.ts +28 -0
- package/build/lib/cli/config.d.ts.map +1 -0
- package/build/lib/cli/config.js +114 -0
- package/build/lib/cli/config.js.map +1 -0
- package/build/lib/cli/index.d.ts +13 -0
- package/build/lib/cli/index.d.ts.map +1 -0
- package/build/lib/cli/index.js +91 -0
- package/build/lib/cli/index.js.map +1 -0
- package/build/lib/cli/init.d.ts +143 -0
- package/build/lib/cli/init.d.ts.map +1 -0
- package/build/lib/cli/init.js +164 -0
- package/build/lib/cli/init.js.map +1 -0
- package/build/lib/cli/options.d.ts +1 -0
- package/build/lib/cli/options.d.ts.map +1 -0
- package/build/lib/cli/options.js +2 -0
- package/build/lib/cli/options.js.map +1 -0
- package/build/lib/cli/validate.d.ts +1 -0
- package/build/lib/cli/validate.d.ts.map +1 -0
- package/build/lib/cli/validate.js +2 -0
- package/build/lib/cli/validate.js.map +1 -0
- package/build/lib/cli.d.ts +10 -0
- package/build/lib/cli.d.ts.map +1 -0
- package/build/lib/cli.js +328 -0
- package/build/lib/cli.js.map +1 -0
- package/build/lib/constants.d.ts +125 -0
- package/build/lib/constants.d.ts.map +1 -0
- package/build/lib/constants.js +133 -0
- package/build/lib/constants.js.map +1 -0
- package/build/lib/error.d.ts +3 -0
- package/build/lib/error.d.ts.map +1 -0
- package/build/lib/error.js +7 -0
- package/build/lib/error.js.map +1 -0
- package/build/lib/fs.d.ts +142 -0
- package/build/lib/fs.d.ts.map +1 -0
- package/build/lib/fs.js +237 -0
- package/build/lib/fs.js.map +1 -0
- package/build/lib/index.d.ts +5 -2
- package/build/lib/index.d.ts.map +1 -1
- package/build/lib/index.js +4 -1
- package/build/lib/index.js.map +1 -1
- package/build/lib/init-task.d.ts +49 -0
- package/build/lib/init-task.d.ts.map +1 -0
- package/build/lib/init-task.js +95 -0
- package/build/lib/init-task.js.map +1 -0
- package/build/lib/init.d.ts +202 -0
- package/build/lib/init.d.ts.map +1 -0
- package/build/lib/init.js +225 -0
- package/build/lib/init.js.map +1 -0
- package/build/lib/io.d.ts +1 -0
- package/build/lib/io.d.ts.map +1 -0
- package/build/lib/io.js +2 -0
- package/build/lib/io.js.map +1 -0
- package/build/lib/logger.d.ts +17 -2
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +187 -2
- package/build/lib/logger.js.map +1 -1
- package/build/lib/mike.d.ts +3 -0
- package/build/lib/mike.d.ts.map +1 -1
- package/build/lib/mike.js +4 -0
- package/build/lib/mike.js.map +1 -1
- package/build/lib/mkdocs.d.ts +51 -12
- package/build/lib/mkdocs.d.ts.map +1 -1
- package/build/lib/mkdocs.js +64 -32
- package/build/lib/mkdocs.js.map +1 -1
- package/build/lib/model.d.ts +80 -0
- package/build/lib/model.d.ts.map +1 -0
- package/build/lib/model.js +8 -0
- package/build/lib/model.js.map +1 -0
- package/build/lib/nav.d.ts +47 -0
- package/build/lib/nav.d.ts.map +1 -0
- package/build/lib/nav.js +132 -0
- package/build/lib/nav.js.map +1 -0
- package/build/lib/scaffold.d.ts +95 -0
- package/build/lib/scaffold.d.ts.map +1 -0
- package/build/lib/scaffold.js +103 -0
- package/build/lib/scaffold.js.map +1 -0
- package/build/lib/test.d.ts +9 -0
- package/build/lib/test.d.ts.map +1 -0
- package/build/lib/test.js +2 -0
- package/build/lib/test.js.map +1 -0
- package/build/lib/typedoc.d.ts +55 -0
- package/build/lib/typedoc.d.ts.map +1 -0
- package/build/lib/typedoc.js +122 -0
- package/build/lib/typedoc.js.map +1 -0
- package/build/lib/types.d.ts +52 -0
- package/build/lib/types.d.ts.map +1 -0
- package/build/lib/types.js +7 -0
- package/build/lib/types.js.map +1 -0
- package/build/lib/util.d.ts +42 -0
- package/build/lib/util.d.ts.map +1 -0
- package/build/lib/util.js +56 -0
- package/build/lib/util.js.map +1 -0
- package/build/lib/validate.d.ts +218 -0
- package/build/lib/validate.d.ts.map +1 -0
- package/build/lib/validate.js +501 -0
- package/build/lib/validate.js.map +1 -0
- package/build/lib/validation/base-validator.d.ts +218 -0
- package/build/lib/validation/base-validator.d.ts.map +1 -0
- package/build/lib/validation/base-validator.js +453 -0
- package/build/lib/validation/base-validator.js.map +1 -0
- package/build/lib/validation/mkdocs-validator.d.ts +5 -0
- package/build/lib/validation/mkdocs-validator.d.ts.map +1 -0
- package/build/lib/validation/mkdocs-validator.js +54 -0
- package/build/lib/validation/mkdocs-validator.js.map +1 -0
- package/build/lib/validation/python-validator.d.ts +1 -0
- package/build/lib/validation/python-validator.d.ts.map +1 -0
- package/build/lib/validation/python-validator.js +2 -0
- package/build/lib/validation/python-validator.js.map +1 -0
- package/build/lib/validation/python.d.ts +1 -0
- package/build/lib/validation/python.d.ts.map +1 -0
- package/build/lib/validation/python.js +2 -0
- package/build/lib/validation/python.js.map +1 -0
- package/build/lib/validation/validate.d.ts +221 -0
- package/build/lib/validation/validate.d.ts.map +1 -0
- package/build/lib/validation/validate.js +508 -0
- package/build/lib/validation/validate.js.map +1 -0
- package/build/lib/validation/validator.d.ts +220 -0
- package/build/lib/validation/validator.d.ts.map +1 -0
- package/build/lib/validation/validator.js +470 -0
- package/build/lib/validation/validator.js.map +1 -0
- package/lib/builder/deploy.ts +217 -0
- package/lib/builder/index.ts +4 -0
- package/lib/builder/nav.ts +393 -0
- package/lib/builder/reference.ts +191 -0
- package/lib/builder/site.ts +143 -0
- package/lib/cli/command/build.ts +229 -0
- package/lib/cli/command/index.ts +3 -0
- package/lib/cli/command/init.ts +166 -0
- package/lib/cli/command/validate.ts +122 -0
- package/lib/cli/config.ts +89 -0
- package/lib/cli/index.ts +88 -0
- package/lib/constants.ts +150 -0
- package/lib/error.ts +1 -0
- package/lib/fs.ts +274 -0
- package/lib/index.ts +5 -0
- package/lib/init.ts +319 -0
- package/lib/logger.ts +198 -0
- package/lib/mike.js +4 -0
- package/lib/model.ts +92 -0
- package/lib/scaffold.ts +225 -0
- package/lib/util.ts +76 -0
- package/lib/validate.ts +728 -0
- package/package.json +38 -6
- package/requirements.txt +4 -0
- package/tsconfig.json +2 -1
- package/build/tsconfig.tsbuildinfo +0 -1
- package/lib/index.js +0 -2
- package/lib/logger.js +0 -3
- package/lib/mkdocs.js +0 -43
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functions which touch the filesystem
|
|
3
|
+
* @module
|
|
4
|
+
*/
|
|
5
|
+
import { NormalizedPackageJson, PackageJson } from 'read-pkg';
|
|
6
|
+
import { JsonValue } from 'type-fest';
|
|
7
|
+
import { fs } from '@appium/support';
|
|
8
|
+
import _ from 'lodash';
|
|
9
|
+
import { MkDocsYml } from './model';
|
|
10
|
+
/**
|
|
11
|
+
* Finds path to closest `package.json`
|
|
12
|
+
*
|
|
13
|
+
* Caches result
|
|
14
|
+
*/
|
|
15
|
+
export declare const findPkgDir: {
|
|
16
|
+
(cwd?: string | undefined): Promise<string | undefined>;
|
|
17
|
+
sync: (cwd?: string | undefined) => string | undefined;
|
|
18
|
+
} & _.MemoizedFunction;
|
|
19
|
+
/**
|
|
20
|
+
* Stringifies a thing into a YAML
|
|
21
|
+
* @param value Something to yamlify
|
|
22
|
+
* @returns Some nice YAML 4 u
|
|
23
|
+
*/
|
|
24
|
+
export declare const stringifyYaml: (value: JsonValue) => string;
|
|
25
|
+
/**
|
|
26
|
+
* Stringifies something into JSON5. I think the only difference between this and `JSON.stringify`
|
|
27
|
+
* is that if an object has a `toJSON5()` method, it will be used.
|
|
28
|
+
* @param value Something to stringify
|
|
29
|
+
* @returns JSON5 string
|
|
30
|
+
*/
|
|
31
|
+
export declare const stringifyJson5: (value: JsonValue) => string;
|
|
32
|
+
/**
|
|
33
|
+
* Pretty-stringifies a JSON value
|
|
34
|
+
* @param value Something to stringify
|
|
35
|
+
* @returns JSON string
|
|
36
|
+
*/
|
|
37
|
+
export declare const stringifyJson: (value: JsonValue) => string;
|
|
38
|
+
/**
|
|
39
|
+
* Reads a YAML file, parses it and caches the result
|
|
40
|
+
*/
|
|
41
|
+
export declare const readYaml: ((filepath: string) => Promise<any>) & _.MemoizedFunction;
|
|
42
|
+
/**
|
|
43
|
+
* Finds a file from `cwd`. Searches up to the package root (dir containing `package.json`).
|
|
44
|
+
*
|
|
45
|
+
* @param filename Filename to look for
|
|
46
|
+
* @param cwd Dir it should be in
|
|
47
|
+
* @returns
|
|
48
|
+
*/
|
|
49
|
+
export declare function findInPkgDir(filename: string, cwd?: string): Promise<string | undefined>;
|
|
50
|
+
/**
|
|
51
|
+
* Finds a `typedoc.json`, expected to be a sibling of `package.json`
|
|
52
|
+
*
|
|
53
|
+
* Caches the result.
|
|
54
|
+
* @param cwd - Current working directory
|
|
55
|
+
* @returns Path to `typedoc.json`
|
|
56
|
+
*/
|
|
57
|
+
export declare const findTypeDocJsonPath: ((cwd?: any) => Promise<string | undefined>) & _.MemoizedFunction;
|
|
58
|
+
/**
|
|
59
|
+
* Finds an `mkdocs.yml`, expected to be a sibling of `package.json`
|
|
60
|
+
*
|
|
61
|
+
* Caches the result.
|
|
62
|
+
* @param cwd - Current working directory
|
|
63
|
+
* @returns Path to `mkdocs.yml`
|
|
64
|
+
*/
|
|
65
|
+
export declare const findMkDocsYml: ((cwd?: string | undefined) => Promise<string | undefined>) & _.MemoizedFunction;
|
|
66
|
+
/**
|
|
67
|
+
* Given a directory path, finds closest `package.json` and reads it.
|
|
68
|
+
* @param cwd - Current working directory
|
|
69
|
+
* @param normalize - Whether or not to normalize the result
|
|
70
|
+
* @returns A {@linkcode PackageJson} object if `normalize` is `false`, otherwise a {@linkcode NormalizedPackageJson} object
|
|
71
|
+
*/
|
|
72
|
+
declare function _readPkgJson(cwd: string, normalize: true): Promise<{
|
|
73
|
+
pkgPath: string;
|
|
74
|
+
pkg: NormalizedPackageJson;
|
|
75
|
+
}>;
|
|
76
|
+
declare function _readPkgJson(cwd: string): Promise<{
|
|
77
|
+
pkgPath: string;
|
|
78
|
+
pkg: PackageJson;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* Given a directory to start from, reads a `package.json` file and returns its path and contents
|
|
82
|
+
*/
|
|
83
|
+
export declare const readPackageJson: typeof _readPkgJson & _.MemoizedFunction;
|
|
84
|
+
/**
|
|
85
|
+
* Reads a `typedoc.json` file and returns its parsed contents.
|
|
86
|
+
*
|
|
87
|
+
* TypeDoc expands the "extends" field, which is why we use its facilities. It, unfortunately, is a
|
|
88
|
+
* blocking operation.
|
|
89
|
+
*/
|
|
90
|
+
export declare const readTypedocJson: ((typedocJsonPath: string) => Readonly<Partial<import("typedoc").TypeDocOptions>>) & _.MemoizedFunction;
|
|
91
|
+
/**
|
|
92
|
+
* Reads a JSON5 file and parses it
|
|
93
|
+
*/
|
|
94
|
+
export declare const readJson5: (<T extends JsonValue>(filepath: string) => Promise<T>) & _.MemoizedFunction;
|
|
95
|
+
/**
|
|
96
|
+
* Reads a JSON file and parses it
|
|
97
|
+
*/
|
|
98
|
+
export declare const readJson: (<T extends JsonValue>(filepath: string) => Promise<T>) & _.MemoizedFunction;
|
|
99
|
+
/**
|
|
100
|
+
* Writes a file, but will not overwrite an existing file unless `overwrite` is true
|
|
101
|
+
*
|
|
102
|
+
* Will stringify JSON objects
|
|
103
|
+
* @param filepath - Path to file
|
|
104
|
+
* @param content - File contents
|
|
105
|
+
* @param overwrite - If `true`, overwrite existing files
|
|
106
|
+
*/
|
|
107
|
+
export declare function safeWriteFile(filepath: string, content: JsonValue, overwrite?: boolean): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* `which` with memoization
|
|
110
|
+
*/
|
|
111
|
+
export declare const cachedWhich: typeof fs.which & _.MemoizedFunction;
|
|
112
|
+
/**
|
|
113
|
+
* Finds `mkdocs` executable
|
|
114
|
+
*/
|
|
115
|
+
export declare const whichMkDocs: (options?: (fs.which.AsyncOptions & fs.which.OptionsFirst) | undefined) => Promise<string>;
|
|
116
|
+
/**
|
|
117
|
+
* Finds `npm` executable
|
|
118
|
+
*/
|
|
119
|
+
export declare const whichNpm: (options?: (fs.which.AsyncOptions & fs.which.OptionsFirst) | undefined) => Promise<string>;
|
|
120
|
+
/**
|
|
121
|
+
* Finds `python` executable
|
|
122
|
+
*/
|
|
123
|
+
export declare const whichPython: (options?: (fs.which.AsyncOptions & fs.which.OptionsFirst) | undefined) => Promise<string>;
|
|
124
|
+
/**
|
|
125
|
+
* Finds `mike` executable
|
|
126
|
+
*/
|
|
127
|
+
export declare const whichMike: (options?: (fs.which.AsyncOptions & fs.which.OptionsFirst) | undefined) => Promise<string>;
|
|
128
|
+
/**
|
|
129
|
+
* Reads an `mkdocs.yml` file, merges inherited configs, and returns the result. The result is cached.
|
|
130
|
+
*
|
|
131
|
+
* **IMPORTANT**: The paths of `site_dir` and `docs_dir` are resolved to absolute paths, since they
|
|
132
|
+
* are expressed as relative paths, and each inherited config file can live in different paths.
|
|
133
|
+
* @param filepath Patgh to an `mkdocs.yml` file
|
|
134
|
+
* @returns Parsed `mkdocs.yml` file
|
|
135
|
+
*/
|
|
136
|
+
export declare const readMkDocsYml: ((filepath: string, cwd?: any) => Promise<MkDocsYml>) & _.MemoizedFunction;
|
|
137
|
+
/**
|
|
138
|
+
* Given an abs path to a directory, return a list of all abs paths of all directories in it
|
|
139
|
+
*/
|
|
140
|
+
export declare const findDirsIn: ((dirpath: string) => Promise<string[]>) & _.MemoizedFunction;
|
|
141
|
+
export {};
|
|
142
|
+
//# sourceMappingURL=fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../lib/fs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAgB,EAAC,qBAAqB,EAAE,WAAW,EAAC,MAAM,UAAU,CAAC;AAErE,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,EAAC,EAAE,EAAC,MAAM,iBAAiB,CAAC;AAEnC,OAAO,CAAC,MAAM,QAAQ,CAAC;AAcvB,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAIlC;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;sBAAqB,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAIjD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAEjD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAIjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,cAA8B,MAAM,uCAKxD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAgB,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM7B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,mEAI9B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,kFAAsD,CAAC;AAEjF;;;;;GAKG;AACH,iBAAe,YAAY,CACzB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,IAAI,GACd,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,qBAAqB,CAAA;CAAC,CAAC,CAAC;AAC1D,iBAAe,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAC,CAAC,CAAC;AAsBvF;;GAEG;AACH,eAAO,MAAM,eAAe,0CAA0B,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,qBAA+B,MAAM,8EAO/D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,mCACkB,MAAM,qCAE7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,mCACmB,MAAM,qCAE7C,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,UAAQ,iBAMpF;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,sCAAsB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,WAAW,4FAAsC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,QAAQ,4FAAmC,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,WAAW,4FAAsC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,SAAS,4FAAoC,CAAC;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,cACP,MAAM,gBAAwB,QAAQ,SAAS,CAAC,sBAyBlE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,aAA6B,MAAM,KAAG,QAAQ,MAAM,EAAE,CAAC,sBAM5E,CAAC"}
|
package/build/lib/fs.js
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Functions which touch the filesystem
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.findDirsIn = exports.readMkDocsYml = exports.whichMike = exports.whichPython = exports.whichNpm = exports.whichMkDocs = exports.cachedWhich = exports.safeWriteFile = exports.readJson = exports.readJson5 = exports.readTypedocJson = exports.readPackageJson = exports.findMkDocsYml = exports.findTypeDocJsonPath = exports.findInPkgDir = exports.readYaml = exports.stringifyJson = exports.stringifyJson5 = exports.stringifyYaml = exports.findPkgDir = void 0;
|
|
34
|
+
const find_up_1 = __importDefault(require("find-up"));
|
|
35
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
36
|
+
const read_pkg_1 = __importDefault(require("read-pkg"));
|
|
37
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
38
|
+
const support_1 = require("@appium/support");
|
|
39
|
+
const JSON5 = __importStar(require("json5"));
|
|
40
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
41
|
+
const pkg_dir_1 = __importDefault(require("pkg-dir"));
|
|
42
|
+
const logger_1 = __importDefault(require("./logger"));
|
|
43
|
+
const typedoc_1 = require("typedoc");
|
|
44
|
+
const constants_1 = require("./constants");
|
|
45
|
+
const error_1 = require("./error");
|
|
46
|
+
const log = logger_1.default.withTag('fs');
|
|
47
|
+
/**
|
|
48
|
+
* Finds path to closest `package.json`
|
|
49
|
+
*
|
|
50
|
+
* Caches result
|
|
51
|
+
*/
|
|
52
|
+
exports.findPkgDir = lodash_1.default.memoize(pkg_dir_1.default);
|
|
53
|
+
/**
|
|
54
|
+
* Stringifies a thing into a YAML
|
|
55
|
+
* @param value Something to yamlify
|
|
56
|
+
* @returns Some nice YAML 4 u
|
|
57
|
+
*/
|
|
58
|
+
exports.stringifyYaml = lodash_1.default.partialRight(yaml_1.default.stringify, { indent: 2 }, undefined);
|
|
59
|
+
/**
|
|
60
|
+
* Stringifies something into JSON5. I think the only difference between this and `JSON.stringify`
|
|
61
|
+
* is that if an object has a `toJSON5()` method, it will be used.
|
|
62
|
+
* @param value Something to stringify
|
|
63
|
+
* @returns JSON5 string
|
|
64
|
+
*/
|
|
65
|
+
exports.stringifyJson5 = lodash_1.default.partialRight(JSON5.stringify, {
|
|
66
|
+
indent: 2,
|
|
67
|
+
});
|
|
68
|
+
/**
|
|
69
|
+
* Pretty-stringifies a JSON value
|
|
70
|
+
* @param value Something to stringify
|
|
71
|
+
* @returns JSON string
|
|
72
|
+
*/
|
|
73
|
+
exports.stringifyJson = lodash_1.default.partialRight(JSON.stringify, 2, undefined);
|
|
74
|
+
/**
|
|
75
|
+
* Reads a YAML file, parses it and caches the result
|
|
76
|
+
*/
|
|
77
|
+
exports.readYaml = lodash_1.default.memoize(async (filepath) => yaml_1.default.parse(await support_1.fs.readFile(filepath, 'utf8'), {
|
|
78
|
+
prettyErrors: false,
|
|
79
|
+
logLevel: 'silent',
|
|
80
|
+
}));
|
|
81
|
+
/**
|
|
82
|
+
* Finds a file from `cwd`. Searches up to the package root (dir containing `package.json`).
|
|
83
|
+
*
|
|
84
|
+
* @param filename Filename to look for
|
|
85
|
+
* @param cwd Dir it should be in
|
|
86
|
+
* @returns
|
|
87
|
+
*/
|
|
88
|
+
async function findInPkgDir(filename, cwd = process.cwd()) {
|
|
89
|
+
const pkgDir = await (0, exports.findPkgDir)(cwd);
|
|
90
|
+
if (!pkgDir) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
return node_path_1.default.join(pkgDir, filename);
|
|
94
|
+
}
|
|
95
|
+
exports.findInPkgDir = findInPkgDir;
|
|
96
|
+
/**
|
|
97
|
+
* Finds a `typedoc.json`, expected to be a sibling of `package.json`
|
|
98
|
+
*
|
|
99
|
+
* Caches the result.
|
|
100
|
+
* @param cwd - Current working directory
|
|
101
|
+
* @returns Path to `typedoc.json`
|
|
102
|
+
*/
|
|
103
|
+
exports.findTypeDocJsonPath = lodash_1.default.memoize(async (cwd = process.cwd()) => {
|
|
104
|
+
const filepath = await (0, find_up_1.default)(constants_1.NAME_TYPEDOC_JSON, { cwd, type: 'file' });
|
|
105
|
+
log.debug('Found `typedoc.json` at %s', filepath);
|
|
106
|
+
return filepath;
|
|
107
|
+
});
|
|
108
|
+
/**
|
|
109
|
+
* Finds an `mkdocs.yml`, expected to be a sibling of `package.json`
|
|
110
|
+
*
|
|
111
|
+
* Caches the result.
|
|
112
|
+
* @param cwd - Current working directory
|
|
113
|
+
* @returns Path to `mkdocs.yml`
|
|
114
|
+
*/
|
|
115
|
+
exports.findMkDocsYml = lodash_1.default.memoize(lodash_1.default.partial(findInPkgDir, constants_1.NAME_MKDOCS_YML));
|
|
116
|
+
async function _readPkgJson(cwd, normalize) {
|
|
117
|
+
const pkgDir = await (0, exports.findPkgDir)(cwd);
|
|
118
|
+
if (!pkgDir) {
|
|
119
|
+
throw new error_1.DocutilsError(`Could not find a ${constants_1.NAME_PACKAGE_JSON} near ${cwd}; please create it before using this utility`);
|
|
120
|
+
}
|
|
121
|
+
const pkgPath = node_path_1.default.join(pkgDir, constants_1.NAME_PACKAGE_JSON);
|
|
122
|
+
log.debug('Found `package.json` at %s', pkgPath);
|
|
123
|
+
if (normalize) {
|
|
124
|
+
const pkg = await (0, read_pkg_1.default)({ cwd: pkgDir, normalize });
|
|
125
|
+
return { pkg, pkgPath };
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
const pkg = await (0, read_pkg_1.default)({ cwd: pkgDir });
|
|
129
|
+
return { pkg, pkgPath };
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Given a directory to start from, reads a `package.json` file and returns its path and contents
|
|
134
|
+
*/
|
|
135
|
+
exports.readPackageJson = lodash_1.default.memoize(_readPkgJson);
|
|
136
|
+
/**
|
|
137
|
+
* Reads a `typedoc.json` file and returns its parsed contents.
|
|
138
|
+
*
|
|
139
|
+
* TypeDoc expands the "extends" field, which is why we use its facilities. It, unfortunately, is a
|
|
140
|
+
* blocking operation.
|
|
141
|
+
*/
|
|
142
|
+
exports.readTypedocJson = lodash_1.default.memoize((typedocJsonPath) => {
|
|
143
|
+
const app = new typedoc_1.Application();
|
|
144
|
+
app.options.setValue('plugin', 'none');
|
|
145
|
+
app.options.setValue('logger', 'none');
|
|
146
|
+
app.options.addReader(new typedoc_1.TypeDocReader());
|
|
147
|
+
app.bootstrap({ options: node_path_1.default.dirname(typedocJsonPath) });
|
|
148
|
+
return app.options.getRawValues();
|
|
149
|
+
});
|
|
150
|
+
/**
|
|
151
|
+
* Reads a JSON5 file and parses it
|
|
152
|
+
*/
|
|
153
|
+
exports.readJson5 = lodash_1.default.memoize(async (filepath) => JSON5.parse(await support_1.fs.readFile(filepath, 'utf8')));
|
|
154
|
+
/**
|
|
155
|
+
* Reads a JSON file and parses it
|
|
156
|
+
*/
|
|
157
|
+
exports.readJson = lodash_1.default.memoize(async (filepath) => JSON.parse(await support_1.fs.readFile(filepath, 'utf8')));
|
|
158
|
+
/**
|
|
159
|
+
* Writes a file, but will not overwrite an existing file unless `overwrite` is true
|
|
160
|
+
*
|
|
161
|
+
* Will stringify JSON objects
|
|
162
|
+
* @param filepath - Path to file
|
|
163
|
+
* @param content - File contents
|
|
164
|
+
* @param overwrite - If `true`, overwrite existing files
|
|
165
|
+
*/
|
|
166
|
+
function safeWriteFile(filepath, content, overwrite = false) {
|
|
167
|
+
const data = lodash_1.default.isString(content) ? content : JSON.stringify(content, undefined, 2);
|
|
168
|
+
return support_1.fs.writeFile(filepath, data, {
|
|
169
|
+
encoding: 'utf8',
|
|
170
|
+
flag: overwrite ? 'w' : 'wx',
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
exports.safeWriteFile = safeWriteFile;
|
|
174
|
+
/**
|
|
175
|
+
* `which` with memoization
|
|
176
|
+
*/
|
|
177
|
+
exports.cachedWhich = lodash_1.default.memoize(support_1.fs.which);
|
|
178
|
+
/**
|
|
179
|
+
* Finds `mkdocs` executable
|
|
180
|
+
*/
|
|
181
|
+
exports.whichMkDocs = lodash_1.default.partial(exports.cachedWhich, constants_1.NAME_MKDOCS);
|
|
182
|
+
/**
|
|
183
|
+
* Finds `npm` executable
|
|
184
|
+
*/
|
|
185
|
+
exports.whichNpm = lodash_1.default.partial(exports.cachedWhich, constants_1.NAME_NPM);
|
|
186
|
+
/**
|
|
187
|
+
* Finds `python` executable
|
|
188
|
+
*/
|
|
189
|
+
exports.whichPython = lodash_1.default.partial(exports.cachedWhich, constants_1.NAME_PYTHON);
|
|
190
|
+
/**
|
|
191
|
+
* Finds `mike` executable
|
|
192
|
+
*/
|
|
193
|
+
exports.whichMike = lodash_1.default.partial(exports.cachedWhich, constants_1.NAME_MIKE);
|
|
194
|
+
/**
|
|
195
|
+
* Reads an `mkdocs.yml` file, merges inherited configs, and returns the result. The result is cached.
|
|
196
|
+
*
|
|
197
|
+
* **IMPORTANT**: The paths of `site_dir` and `docs_dir` are resolved to absolute paths, since they
|
|
198
|
+
* are expressed as relative paths, and each inherited config file can live in different paths.
|
|
199
|
+
* @param filepath Patgh to an `mkdocs.yml` file
|
|
200
|
+
* @returns Parsed `mkdocs.yml` file
|
|
201
|
+
*/
|
|
202
|
+
exports.readMkDocsYml = lodash_1.default.memoize(async (filepath, cwd = process.cwd()) => {
|
|
203
|
+
let mkDocsYml = await (0, exports.readYaml)(filepath);
|
|
204
|
+
if (mkDocsYml.site_dir) {
|
|
205
|
+
mkDocsYml.site_dir = node_path_1.default.resolve(cwd, node_path_1.default.dirname(filepath), mkDocsYml.site_dir);
|
|
206
|
+
}
|
|
207
|
+
if (mkDocsYml.INHERIT) {
|
|
208
|
+
let inheritPath = node_path_1.default.resolve(node_path_1.default.dirname(filepath), mkDocsYml.INHERIT);
|
|
209
|
+
while (inheritPath) {
|
|
210
|
+
const inheritYml = await (0, exports.readYaml)(inheritPath);
|
|
211
|
+
if (inheritYml.site_dir) {
|
|
212
|
+
inheritYml.site_dir = node_path_1.default.resolve(node_path_1.default.dirname(inheritPath), inheritYml.site_dir);
|
|
213
|
+
log.debug('Resolved site_dir to %s', inheritYml.site_dir);
|
|
214
|
+
}
|
|
215
|
+
if (inheritYml.docs_dir) {
|
|
216
|
+
inheritYml.docs_dir = node_path_1.default.resolve(node_path_1.default.dirname(inheritPath), inheritYml.docs_dir);
|
|
217
|
+
log.debug('Resolved docs_dir to %s', inheritYml.docs_dir);
|
|
218
|
+
}
|
|
219
|
+
mkDocsYml = lodash_1.default.defaultsDeep(mkDocsYml, inheritYml);
|
|
220
|
+
inheritPath = inheritYml.INHERIT
|
|
221
|
+
? node_path_1.default.resolve(node_path_1.default.dirname(inheritPath), inheritYml.INHERIT)
|
|
222
|
+
: undefined;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return mkDocsYml;
|
|
226
|
+
});
|
|
227
|
+
/**
|
|
228
|
+
* Given an abs path to a directory, return a list of all abs paths of all directories in it
|
|
229
|
+
*/
|
|
230
|
+
exports.findDirsIn = lodash_1.default.memoize(async (dirpath) => {
|
|
231
|
+
if (!node_path_1.default.isAbsolute(dirpath)) {
|
|
232
|
+
throw new error_1.DocutilsError(`Expected absolute path, got '${dirpath}'`);
|
|
233
|
+
}
|
|
234
|
+
const dirEnts = await support_1.fs.readdir(dirpath, { withFileTypes: true });
|
|
235
|
+
return dirEnts.filter((ent) => ent.isDirectory()).map((ent) => node_path_1.default.join(dirpath, ent.name));
|
|
236
|
+
});
|
|
237
|
+
//# sourceMappingURL=fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../lib/fs.ts"],"names":[],"mappings":"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"}
|
package/build/lib/index.d.ts
CHANGED
package/build/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
package/build/lib/index.js
CHANGED
|
@@ -14,6 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./mkdocs"), exports);
|
|
18
17
|
__exportStar(require("./mike"), exports);
|
|
18
|
+
__exportStar(require("./builder"), exports);
|
|
19
|
+
__exportStar(require("./validate"), exports);
|
|
20
|
+
__exportStar(require("./scaffold"), exports);
|
|
21
|
+
__exportStar(require("./constants"), exports);
|
|
19
22
|
//# sourceMappingURL=index.js.map
|
package/build/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,6CAA2B;AAC3B,8CAA4B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { NormalizedPackageJson } from 'read-pkg';
|
|
2
|
+
import { JsonValue, JsonObject } from 'type-fest';
|
|
3
|
+
export declare type TaskSpecificOpts<Opts extends ScaffoldTaskOptions> = Omit<Opts, 'overwrite' | 'cwd' | 'packageJson' | 'dest' | 'dryRun'>;
|
|
4
|
+
export declare type ScaffoldTask<Opts extends ScaffoldTaskOptions, T extends JsonObject> = (opts: Opts) => Promise<ScaffoldTaskResult<T>>;
|
|
5
|
+
/**
|
|
6
|
+
* Factory for a {@linkcode ScaffoldTask}.
|
|
7
|
+
*
|
|
8
|
+
* @param defaultFilename Default file to create
|
|
9
|
+
* @param defaultContent Default content to use
|
|
10
|
+
* @param description Description of task
|
|
11
|
+
* @param opts Options
|
|
12
|
+
* @returns A scaffold task
|
|
13
|
+
*/
|
|
14
|
+
export declare function createScaffoldTask<Opts extends ScaffoldTaskOptions, T extends JsonObject>(defaultFilename: string, defaultContent: T, description: string, { transform, deserialize, serialize, }?: CreateScaffoldTaskOptions<Opts, T>): ScaffoldTask<Opts, T>;
|
|
15
|
+
export declare type ScaffoldTaskTransformer<Opts extends ScaffoldTaskOptions, T extends JsonValue> = (content: Readonly<T>, opts: TaskSpecificOpts<Opts>, pkg: NormalizedPackageJson) => T;
|
|
16
|
+
export declare type ScaffoldTaskDeserializer<T extends JsonValue> = (content: string) => T;
|
|
17
|
+
export declare type ScaffoldTaskSerializer<T extends JsonValue> = (content: T) => string;
|
|
18
|
+
export interface CreateScaffoldTaskOptions<Opts extends ScaffoldTaskOptions, T extends JsonValue> {
|
|
19
|
+
transform?: ScaffoldTaskTransformer<Opts, T>;
|
|
20
|
+
deserialize?: ScaffoldTaskDeserializer<T>;
|
|
21
|
+
serialize?: ScaffoldTaskSerializer<T>;
|
|
22
|
+
}
|
|
23
|
+
export interface ScaffoldTaskOptions {
|
|
24
|
+
/**
|
|
25
|
+
* Current working directory
|
|
26
|
+
*/
|
|
27
|
+
cwd?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Destination file
|
|
30
|
+
*/
|
|
31
|
+
dest?: string;
|
|
32
|
+
/**
|
|
33
|
+
* If `true` will not write files
|
|
34
|
+
*/
|
|
35
|
+
dryRun?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* If `true` will overwrite fields in `typedoc.json`
|
|
38
|
+
*/
|
|
39
|
+
overwrite?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Path to `package.json`
|
|
42
|
+
*/
|
|
43
|
+
packageJson?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface ScaffoldTaskResult<T> {
|
|
46
|
+
content: T;
|
|
47
|
+
path: string;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=init-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-task.d.ts","sourceRoot":"","sources":["../../lib/init-task.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,qBAAqB,EAAC,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAC,SAAS,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAiChD,oBAAY,gBAAgB,CAAC,IAAI,SAAS,mBAAmB,IAAI,IAAI,CACnE,IAAI,EACJ,WAAW,GAAG,KAAK,GAAG,aAAa,GAAG,MAAM,GAAG,QAAQ,CACxD,CAAC;AAEF,oBAAY,YAAY,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,UAAU,IAAI,CACjF,IAAI,EAAE,IAAI,KACP,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,UAAU,EACvF,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,CAAC,EACjB,WAAW,EAAE,MAAM,EACnB,EACE,SAAsB,EACtB,WAAwB,EACxB,SAAyB,GAC1B,GAAE,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAM,GACzC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAqEvB;AAED,oBAAY,uBAAuB,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,SAAS,IAAI,CAC3F,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAC5B,GAAG,EAAE,qBAAqB,KACvB,CAAC,CAAC;AAEP,oBAAY,wBAAwB,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC;AAEnF,oBAAY,sBAAsB,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC;AAEjF,MAAM,WAAW,yBAAyB,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,SAAS;IAC9F,SAAS,CAAC,EAAE,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createScaffoldTask = void 0;
|
|
7
|
+
const support_1 = require("@appium/support");
|
|
8
|
+
const logger_1 = __importDefault(require("./logger"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const diff_1 = require("diff");
|
|
11
|
+
const error_1 = require("./error");
|
|
12
|
+
const util_1 = require("./util");
|
|
13
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
14
|
+
const NAME_ERR_ENOENT = 'ENOENT';
|
|
15
|
+
const NAME_ERR_EEXIST = 'EEXIST';
|
|
16
|
+
const log = logger_1.default.withTag('init');
|
|
17
|
+
const dryRunLog = logger_1.default.withTag('dry-run');
|
|
18
|
+
const jsonStringify = lodash_1.default.partial(JSON.stringify, lodash_1.default, undefined, 2);
|
|
19
|
+
/**
|
|
20
|
+
* Creates a unified patch for display in "dry run" mode
|
|
21
|
+
* @param filename - File name to use
|
|
22
|
+
* @param oldData - Old data
|
|
23
|
+
* @param newData - New Data
|
|
24
|
+
* @returns Patch string
|
|
25
|
+
*/
|
|
26
|
+
function makePatch(filename, oldData, newData, serializer = jsonStringify) {
|
|
27
|
+
return (0, diff_1.createPatch)(filename, lodash_1.default.isString(oldData) ? oldData : serializer(oldData), lodash_1.default.isString(newData) ? newData : serializer(newData));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Factory for a {@linkcode ScaffoldTask}.
|
|
31
|
+
*
|
|
32
|
+
* @param defaultFilename Default file to create
|
|
33
|
+
* @param defaultContent Default content to use
|
|
34
|
+
* @param description Description of task
|
|
35
|
+
* @param opts Options
|
|
36
|
+
* @returns A scaffold task
|
|
37
|
+
*/
|
|
38
|
+
function createScaffoldTask(defaultFilename, defaultContent, description, { transform = lodash_1.default.identity, deserialize = JSON.parse, serialize = jsonStringify, } = {}) {
|
|
39
|
+
return async ({ overwrite = false, cwd = process.cwd(), packageJson: packageJsonPath, dest, dryRun = false, ...opts }) => {
|
|
40
|
+
const relativePath = (0, util_1.relative)(cwd);
|
|
41
|
+
const { pkgPath, pkg } = await (0, util_1.readPackageJson)(packageJsonPath ? node_path_1.default.dirname(packageJsonPath) : cwd, true);
|
|
42
|
+
const pkgDir = node_path_1.default.dirname(pkgPath);
|
|
43
|
+
dest = dest ?? node_path_1.default.join(pkgDir, defaultFilename);
|
|
44
|
+
const relativeDest = relativePath(dest);
|
|
45
|
+
log.debug('Initializing %s', relativeDest);
|
|
46
|
+
let shouldWriteDest = false;
|
|
47
|
+
let destContent;
|
|
48
|
+
let result;
|
|
49
|
+
try {
|
|
50
|
+
destContent = deserialize(await support_1.fs.readFile(dest, 'utf8'));
|
|
51
|
+
log.debug('Found existing file %s', relativeDest);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
const err = e;
|
|
55
|
+
if (err.code !== NAME_ERR_ENOENT) {
|
|
56
|
+
throw err;
|
|
57
|
+
}
|
|
58
|
+
shouldWriteDest = true;
|
|
59
|
+
log.debug('Creating new file %s', relativeDest);
|
|
60
|
+
destContent = {};
|
|
61
|
+
}
|
|
62
|
+
const defaults = transform(defaultContent, opts, pkg);
|
|
63
|
+
const finalDestContent = lodash_1.default.defaultsDeep({}, destContent, defaults);
|
|
64
|
+
shouldWriteDest = shouldWriteDest || !lodash_1.default.isEqual(destContent, finalDestContent);
|
|
65
|
+
if (shouldWriteDest) {
|
|
66
|
+
log.info('Changes needed to %s', relativeDest);
|
|
67
|
+
log.debug('Original %s: %O', relativeDest, destContent);
|
|
68
|
+
log.debug('Final %s: %O', relativeDest, finalDestContent);
|
|
69
|
+
const patch = makePatch(dest, destContent, finalDestContent, serialize);
|
|
70
|
+
if (dryRun) {
|
|
71
|
+
dryRunLog.info('Would apply the following patch: \n\n%s', patch);
|
|
72
|
+
result = { path: dest, content: finalDestContent };
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
await (0, util_1.safeWriteFile)(dest, finalDestContent, overwrite);
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
const err = e;
|
|
80
|
+
// this should only be thrown if `force` is false
|
|
81
|
+
if (err.code === NAME_ERR_EEXIST) {
|
|
82
|
+
throw new error_1.DocutilsError(`${relativeDest} already exists. To overwrite, use --force. Wanted to apply patch:\n\n${patch}`);
|
|
83
|
+
}
|
|
84
|
+
throw new error_1.DocutilsError(`Could not write to ${relativeDest}. Reason: ${err.message}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
log.info('No changes to %s', relativeDest);
|
|
89
|
+
}
|
|
90
|
+
log.success('Initialized %s', description);
|
|
91
|
+
return { path: dest, content: finalDestContent };
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
exports.createScaffoldTask = createScaffoldTask;
|
|
95
|
+
//# sourceMappingURL=init-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-task.js","sourceRoot":"","sources":["../../lib/init-task.ts"],"names":[],"mappings":"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"}
|