@atcute/lex-cli 2.7.0 → 2.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AASvD,eAAO,MAAM,mBAAmB;;;;mFAY/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAgCnE;;;GAGG;AACH,eAAO,MAAM,SAAS,SAAgB,aAAa,KAAG,OAAO,CAAC,IAAI,CAgCjE,CAAC"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AASvD,eAAO,MAAM,mBAAmB;;;;mFAY/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAgCnE;;;GAGG;AACH,eAAO,MAAM,SAAS,SAAgB,aAAa,KAAG,OAAO,CAAC,IAAI,CAqCjE,CAAC"}
@@ -42,8 +42,12 @@ const writeLexicon = async (outdir, nsid, doc, formatter) => {
42
42
  export const runExport = async (args) => {
43
43
  const config = await loadConfig(args.config);
44
44
  const exportConfig = ensureExportConfig(config);
45
- // use export.files if specified, otherwise fall back to root files config
46
- const files = exportConfig.files ?? config.files;
45
+ // use export.files if specified, otherwise fall back to generate.files
46
+ const files = exportConfig.files ?? config.generate?.files;
47
+ if (!files || files.length === 0) {
48
+ console.error(pc.bold(pc.red(`export.files or generate.files must be specified`)));
49
+ process.exit(1);
50
+ }
47
51
  const outdir = path.resolve(config.root, exportConfig.outdir);
48
52
  const formatter = await createFormatter(config.formatter, config.root);
49
53
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAkHvD,eAAO,MAAM,qBAAqB;;;;mFAYjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,WAAW,SAAgB,eAAe,KAAG,OAAO,CAAC,IAAI,CAuCrE,CAAC"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AA6HvD,eAAO,MAAM,qBAAqB;;;;mFAYjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAyBvE;;;GAGG;AACH,eAAO,MAAM,WAAW,SAAgB,eAAe,KAAG,OAAO,CAAC,IAAI,CA8CrE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import * as fs from 'node:fs/promises';
2
+ import * as module from 'node:module';
2
3
  import * as path from 'node:path';
3
4
  import { merge, object } from '@optique/core/constructs';
4
5
  import { message } from '@optique/core/message';
@@ -16,36 +17,45 @@ import { sharedOptions } from '../shared-options.js';
16
17
  */
17
18
  const resolveImportsToMappings = async (imports, configDirname) => {
18
19
  const mappings = [];
20
+ const require = module.createRequire(path.join(configDirname, '__lex_cli__.js'));
19
21
  for (const packageName of imports) {
20
- // walk up from config directory to find package in node_modules
21
22
  let packageJson;
22
- let currentDir = configDirname;
23
- let found = false;
24
- while (currentDir !== path.dirname(currentDir)) {
25
- const candidatePath = path.join(currentDir, 'node_modules', packageName, 'package.json');
26
- try {
27
- const content = await fs.readFile(candidatePath, 'utf8');
28
- packageJson = JSON.parse(content);
29
- found = true;
30
- break;
31
- }
32
- catch (err) {
33
- // only continue to parent if file not found
34
- if (err.code !== 'ENOENT') {
35
- console.error(pc.bold(pc.red(`failed to read package.json for "${packageName}":`)));
36
- console.error(err);
37
- process.exit(1);
23
+ try {
24
+ const entryPath = require.resolve(packageName);
25
+ let currentDir = path.dirname(entryPath);
26
+ while (true) {
27
+ const candidatePath = path.join(currentDir, 'package.json');
28
+ try {
29
+ const content = await fs.readFile(candidatePath, 'utf8');
30
+ packageJson = JSON.parse(content);
31
+ break;
32
+ }
33
+ catch (err) {
34
+ if (err.code !== 'ENOENT') {
35
+ console.error(pc.bold(pc.red(`failed to read package.json for "${packageName}":`)));
36
+ console.error(err);
37
+ process.exit(1);
38
+ }
38
39
  }
39
- // not found, try parent directory
40
- currentDir = path.dirname(currentDir);
40
+ if (currentDir === configDirname) {
41
+ break;
42
+ }
43
+ const parentDir = path.dirname(currentDir);
44
+ if (parentDir === currentDir) {
45
+ break;
46
+ }
47
+ currentDir = parentDir;
41
48
  }
42
49
  }
43
- if (!found) {
50
+ catch (err) {
44
51
  console.error(pc.bold(pc.red(`failed to resolve package "${packageName}"`)));
45
- console.error(`Could not find package in node_modules starting from ${configDirname}`);
52
+ console.error(err);
53
+ process.exit(1);
54
+ }
55
+ if (!packageJson) {
56
+ console.error(pc.bold(pc.red(`failed to locate package.json for "${packageName}"`)));
46
57
  process.exit(1);
47
58
  }
48
- // validate package.json
49
59
  const result = packageJsonSchema.try(packageJson, { mode: 'passthrough' });
50
60
  if (!result.ok) {
51
61
  console.error(pc.bold(pc.red(`invalid atcute:lexicons in "${packageName}":`)));
@@ -104,27 +114,50 @@ export const generateCommandSchema = command('generate', merge(object({
104
114
  brief: message `generate type definitions from lexicon documents`,
105
115
  description: message `reads lexicon documents from the configured files and generates TypeScript type definitions and runtime validators.`,
106
116
  });
117
+ const ensureGenerateConfig = (config) => {
118
+ const generate = config.generate;
119
+ if (!generate) {
120
+ console.error(pc.bold(pc.red(`generate configuration missing`)));
121
+ process.exit(1);
122
+ }
123
+ const { outdir, files } = generate;
124
+ if (!outdir) {
125
+ console.error(pc.bold(pc.red(`generate.outdir is required`)));
126
+ process.exit(1);
127
+ }
128
+ if (!files || files.length === 0) {
129
+ console.error(pc.bold(pc.red(`generate.files is required`)));
130
+ process.exit(1);
131
+ }
132
+ return { ...generate, outdir, files };
133
+ };
107
134
  /**
108
135
  * runs the generate command to create type definitions from lexicon documents
109
136
  * @param args parsed command arguments
110
137
  */
111
138
  export const runGenerate = async (args) => {
112
139
  const config = await loadConfig(args.config);
140
+ const generateConfig = ensureGenerateConfig(config);
113
141
  // resolve imports to mappings
114
- const importMappings = config.imports ? await resolveImportsToMappings(config.imports, config.root) : [];
115
- const allMappings = [...importMappings, ...(config.mappings ?? [])];
142
+ const importMappings = generateConfig.imports
143
+ ? await resolveImportsToMappings(generateConfig.imports, config.root)
144
+ : [];
145
+ const allMappings = [...importMappings, ...(generateConfig.mappings ?? [])];
116
146
  // load lexicons from files
117
- const loaded = await loadLexicons(config.files, config.root);
147
+ const loaded = await loadLexicons(generateConfig.files, config.root);
118
148
  const documents = loaded.map((l) => l.doc);
119
- const outdir = path.join(config.root, config.outdir);
149
+ const outdir = path.join(config.root, generateConfig.outdir);
120
150
  const formatter = await createFormatter(config.formatter, config.root);
151
+ if (generateConfig.clean) {
152
+ await fs.rm(outdir, { recursive: true, force: true });
153
+ }
121
154
  try {
122
155
  const pending = [];
123
156
  for (const file of generateLexiconApi({
124
157
  documents: documents,
125
158
  mappings: allMappings,
126
159
  modules: {
127
- importSuffix: config.modules?.importSuffix ?? '.js',
160
+ importSuffix: generateConfig.modules?.importSuffix ?? '.js',
128
161
  },
129
162
  })) {
130
163
  const filename = path.join(outdir, file.filename);
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -76,6 +76,16 @@ declare const formatterConfigSchema: v.UnionType<[v.ObjectType<{
76
76
  type: v.Type<"lsp">;
77
77
  command: v.Type<string>;
78
78
  }, undefined>]>;
79
+ declare const generateConfigSchema: v.ObjectType<{
80
+ outdir: v.Optional<string>;
81
+ files: v.Optional<string[]>;
82
+ imports: v.Optional<string[]>;
83
+ mappings: v.Optional<ImportMapping[]>;
84
+ modules: v.Optional<{
85
+ importSuffix?: string | undefined;
86
+ }>;
87
+ clean: v.Optional<boolean>;
88
+ }, undefined>;
79
89
  export type GitSourceConfig = v.Infer<typeof gitSourceConfigSchema>;
80
90
  export type AtprotoNsidsSourceConfig = v.Infer<typeof atprotoNsidsSourceConfigSchema>;
81
91
  export type AtprotoAuthoritySourceConfig = v.Infer<typeof atprotoAuthoritySourceConfigSchema>;
@@ -84,11 +94,17 @@ export type SourceConfig = v.Infer<typeof sourceConfigSchema>;
84
94
  export type PullConfig = v.Infer<typeof pullConfigSchema>;
85
95
  export type ExportConfig = v.Infer<typeof exportConfigSchema>;
86
96
  export type FormatterConfig = v.Infer<typeof formatterConfigSchema>;
97
+ export type GenerateConfig = v.Infer<typeof generateConfigSchema>;
87
98
  export declare const lexiconConfigSchema: v.ObjectType<{
88
- outdir: v.Type<string>;
89
- files: v.Type<string[]>;
99
+ /** @deprecated moved to `generate.outdir` */
100
+ outdir: v.Optional<string>;
101
+ /** @deprecated moved to `generate.files` */
102
+ files: v.Optional<string[]>;
103
+ /** @deprecated moved to `generate.imports` */
90
104
  imports: v.Optional<string[]>;
105
+ /** @deprecated moved to `generate.mappings` */
91
106
  mappings: v.Optional<ImportMapping[]>;
107
+ /** @deprecated moved to `generate.modules` */
92
108
  modules: v.Optional<{
93
109
  importSuffix?: string | undefined;
94
110
  }>;
@@ -102,6 +118,16 @@ export declare const lexiconConfigSchema: v.ObjectType<{
102
118
  type: "lsp";
103
119
  command: string;
104
120
  }>;
121
+ generate: v.Optional<{
122
+ outdir?: string | undefined;
123
+ files?: string[] | undefined;
124
+ imports?: string[] | undefined;
125
+ mappings?: ImportMapping[] | undefined;
126
+ modules?: {
127
+ importSuffix?: string | undefined;
128
+ } | undefined;
129
+ clean?: boolean | undefined;
130
+ }>;
105
131
  pull: v.Optional<{
106
132
  outdir: string;
107
133
  clean?: boolean | undefined;
@@ -128,9 +154,9 @@ export declare const lexiconConfigSchema: v.ObjectType<{
128
154
  }>;
129
155
  }, undefined>;
130
156
  export type LexiconConfig = v.Infer<typeof lexiconConfigSchema>;
131
- export interface NormalizedConfig extends LexiconConfig {
157
+ export type NormalizedConfig = Omit<LexiconConfig, 'outdir' | 'files' | 'imports' | 'mappings' | 'modules'> & {
132
158
  root: string;
133
- }
159
+ };
134
160
  export declare const loadConfig: (configPath?: string) => Promise<NormalizedConfig>;
135
161
  export {};
136
162
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAGpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,QAAA,MAAM,qBAAqB;;;;;aAUzB,CAAC;AAEH,QAAA,MAAM,8BAA8B;;;;aAMlC,CAAC;AAEH,QAAA,MAAM,kCAAkC;;;;;aAatC,CAAC;AAEH,QAAA,MAAM,yBAAyB;;;;;;;;;eAA8E,CAAC;AAE9G,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;iBAA4D,CAAC;AAErF,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;aAMpB,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;aAItB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;eAc1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAyCpE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAmB9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACtD,IAAI,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,UAAU,gBAAuB,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAsD9E,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAGpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,QAAA,MAAM,qBAAqB;;;;;aAUzB,CAAC;AAEH,QAAA,MAAM,8BAA8B;;;;aAMlC,CAAC;AAEH,QAAA,MAAM,kCAAkC;;;;;aAatC,CAAC;AAEH,QAAA,MAAM,yBAAyB;;;;;;;;;eAA8E,CAAC;AAE9G,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;iBAA4D,CAAC;AAErF,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;aAMpB,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;aAItB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;eAc1B,CAAC;AAkDF,QAAA,MAAM,oBAAoB;;;;;;;;;aAaxB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,mBAAmB;IAC/B,6CAA6C;;IAK7C,4CAA4C;;IAK5C,8CAA8C;;IAE9C,+CAA+C;;IAE/C,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAM7C,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAClC,aAAa,EACb,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CACvD,GAAG;IACH,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,UAAU,gBAAuB,MAAM,KAAG,OAAO,CAAC,gBAAgB,CA8E9E,CAAC"}
package/dist/config.js CHANGED
@@ -97,23 +97,47 @@ const importMappingSchema = v.object({
97
97
  .assert((patterns) => patterns.length > 0, `nsid requires at least one pattern`),
98
98
  imports: mappingImports,
99
99
  });
100
- export const lexiconConfigSchema = v.object({
101
- outdir: v.string().assert((value) => value.length > 0, `must not be empty`),
100
+ const modulesConfigSchema = v
101
+ .object({
102
+ importSuffix: v
103
+ .string()
104
+ .assert((value) => value.length > 0, `must not be empty`)
105
+ .optional(),
106
+ })
107
+ .partial();
108
+ const generateConfigSchema = v.object({
109
+ outdir: v
110
+ .string()
111
+ .assert((value) => value.length > 0, `must not be empty`)
112
+ .optional(),
102
113
  files: v
103
114
  .array(v.string().assert((value) => value.length > 0, `must not be empty`))
104
- .assert((value) => value.length > 0, `must include at least one glob pattern`),
115
+ .assert((value) => value.length > 0, `must include at least one glob pattern`)
116
+ .optional(),
105
117
  imports: v.array(v.string().assert((value) => value.length > 0, `must not be empty`)).optional(),
106
118
  mappings: v.array(importMappingSchema).optional(),
107
- modules: v
108
- .object({
109
- importSuffix: v
110
- .string()
111
- .assert((value) => value.length > 0, `must not be empty`)
112
- .optional(),
113
- })
114
- .partial()
119
+ modules: modulesConfigSchema.optional(),
120
+ clean: v.boolean().optional(),
121
+ });
122
+ export const lexiconConfigSchema = v.object({
123
+ /** @deprecated moved to `generate.outdir` */
124
+ outdir: v
125
+ .string()
126
+ .assert((value) => value.length > 0, `must not be empty`)
127
+ .optional(),
128
+ /** @deprecated moved to `generate.files` */
129
+ files: v
130
+ .array(v.string().assert((value) => value.length > 0, `must not be empty`))
131
+ .assert((value) => value.length > 0, `must include at least one glob pattern`)
115
132
  .optional(),
133
+ /** @deprecated moved to `generate.imports` */
134
+ imports: v.array(v.string().assert((value) => value.length > 0, `must not be empty`)).optional(),
135
+ /** @deprecated moved to `generate.mappings` */
136
+ mappings: v.array(importMappingSchema).optional(),
137
+ /** @deprecated moved to `generate.modules` */
138
+ modules: modulesConfigSchema.optional(),
116
139
  formatter: formatterConfigSchema.optional(() => ({ type: 'prettier' })),
140
+ generate: generateConfigSchema.optional(),
117
141
  pull: pullConfigSchema.optional(),
118
142
  export: exportConfigSchema.optional(),
119
143
  });
@@ -163,6 +187,26 @@ export const loadConfig = async (configPath) => {
163
187
  }
164
188
  process.exit(1);
165
189
  }
166
- return { ...configResult.value, root: configDirname };
190
+ const { outdir, files, imports, mappings, modules, generate, ...rest } = configResult.value;
191
+ // back-compat: top-level generate options were moved into `generate.*`. merge the legacy
192
+ // top-level values into `generate`, with nested `generate.*` winning on conflicts. the result
193
+ // is only present if at least one generate-related option was provided anywhere.
194
+ const hasLegacyTopLevel = outdir !== undefined ||
195
+ files !== undefined ||
196
+ imports !== undefined ||
197
+ mappings !== undefined ||
198
+ modules !== undefined;
199
+ let normalizedGenerate;
200
+ if (generate || hasLegacyTopLevel) {
201
+ normalizedGenerate = {
202
+ outdir: generate?.outdir ?? outdir,
203
+ files: generate?.files ?? files,
204
+ imports: generate?.imports ?? imports,
205
+ mappings: generate?.mappings ?? mappings,
206
+ modules: generate?.modules ?? modules,
207
+ clean: generate?.clean,
208
+ };
209
+ }
210
+ return { ...rest, generate: normalizedGenerate, root: configDirname };
167
211
  };
168
212
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/pull-sources/git.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,aAAa,WACjB,eAAe,oBACL,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,UAAU,CAAC,KAC5D,OAAO,CAAC,UAAU,CAkFpB,CAAC"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/pull-sources/git.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,aAAa,WACjB,eAAe,oBACL,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,UAAU,CAAC,KAC5D,OAAO,CAAC,UAAU,CAmFpB,CAAC"}
@@ -13,68 +13,71 @@ export const pullGitSource = async (source, parseLexiconFile) => {
13
13
  const tempParent = await fs.mkdtemp(path.join(os.tmpdir(), 'lex-cli-pull-'));
14
14
  const cloneDir = path.join(tempParent, 'repo');
15
15
  try {
16
- await runGit([
17
- 'clone',
18
- '--filter=blob:none',
19
- '--depth',
20
- '1',
21
- '--sparse',
22
- ...(source.ref ? ['--branch', source.ref, '--single-branch'] : []),
23
- source.remote,
24
- cloneDir,
25
- ], { timeoutMs: 60_000 });
26
- }
27
- catch (err) {
28
- if (err instanceof GitError) {
29
- console.error(pc.bold(pc.red(`git clone failed for ${source.remote}:`)));
30
- console.error(err.stderr || err.message);
31
- process.exit(1);
16
+ try {
17
+ await runGit([
18
+ 'clone',
19
+ '--filter=blob:none',
20
+ '--depth',
21
+ '1',
22
+ '--sparse',
23
+ ...(source.ref ? ['--branch', source.ref, '--single-branch'] : []),
24
+ source.remote,
25
+ cloneDir,
26
+ ], { timeoutMs: 60_000 });
32
27
  }
33
- throw err;
34
- }
35
- try {
36
- await runGit(['-C', cloneDir, 'sparse-checkout', 'set', '--no-cone', ...source.pattern], {
37
- timeoutMs: 30_000,
38
- });
39
- }
40
- catch (err) {
41
- if (err instanceof GitError) {
42
- console.error(pc.bold(pc.red(`git sparse-checkout failed for ${source.remote}:`)));
43
- console.error(err.stderr || err.message);
44
- process.exit(1);
28
+ catch (err) {
29
+ if (err instanceof GitError) {
30
+ console.error(pc.bold(pc.red(`git clone failed for ${source.remote}:`)));
31
+ console.error(err.stderr || err.message);
32
+ process.exit(1);
33
+ }
34
+ throw err;
45
35
  }
46
- throw err;
47
- }
48
- const pulled = new Map();
49
- for await (const filename of fs.glob(source.pattern, { cwd: cloneDir })) {
50
- const absolute = path.join(cloneDir, filename);
51
- const stat = await fs.stat(absolute);
52
- if (!stat.isFile()) {
53
- continue;
36
+ try {
37
+ await runGit(['-C', cloneDir, 'sparse-checkout', 'set', '--no-cone', ...source.pattern], {
38
+ timeoutMs: 30_000,
39
+ });
54
40
  }
55
- const location = {
56
- absolutePath: absolute,
57
- relativePath: filename,
58
- sourceDescription: source.remote,
59
- };
60
- const doc = await parseLexiconFile(location);
61
- pulled.set(doc.id, { nsid: doc.id, doc, location });
62
- }
63
- // get the commit hash
64
- let rev;
65
- try {
66
- const result = await runGit(['-C', cloneDir, 'rev-parse', 'HEAD'], { timeoutMs: 10_000 });
67
- rev = result.stdout.trim();
68
- }
69
- catch (err) {
70
- if (err instanceof GitError) {
71
- console.error(pc.bold(pc.red(`git rev-parse failed for ${source.remote}:`)));
72
- console.error(err.stderr || err.message);
73
- process.exit(1);
41
+ catch (err) {
42
+ if (err instanceof GitError) {
43
+ console.error(pc.bold(pc.red(`git sparse-checkout failed for ${source.remote}:`)));
44
+ console.error(err.stderr || err.message);
45
+ process.exit(1);
46
+ }
47
+ throw err;
48
+ }
49
+ const pulled = new Map();
50
+ for await (const filename of fs.glob(source.pattern, { cwd: cloneDir })) {
51
+ const absolute = path.join(cloneDir, filename);
52
+ const stat = await fs.stat(absolute);
53
+ if (!stat.isFile()) {
54
+ continue;
55
+ }
56
+ const location = {
57
+ absolutePath: absolute,
58
+ relativePath: filename,
59
+ sourceDescription: source.remote,
60
+ };
61
+ const doc = await parseLexiconFile(location);
62
+ pulled.set(doc.id, { nsid: doc.id, doc, location });
74
63
  }
75
- throw err;
64
+ let rev;
65
+ try {
66
+ const result = await runGit(['-C', cloneDir, 'rev-parse', 'HEAD'], { timeoutMs: 10_000 });
67
+ rev = result.stdout.trim();
68
+ }
69
+ catch (err) {
70
+ if (err instanceof GitError) {
71
+ console.error(pc.bold(pc.red(`git rev-parse failed for ${source.remote}:`)));
72
+ console.error(err.stderr || err.message);
73
+ process.exit(1);
74
+ }
75
+ throw err;
76
+ }
77
+ return { pulled, rev };
78
+ }
79
+ finally {
80
+ await fs.rm(tempParent, { recursive: true, force: true });
76
81
  }
77
- await fs.rm(tempParent, { recursive: true, force: true });
78
- return { pulled, rev };
79
82
  };
80
83
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/pull-sources/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/pull-sources/git.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atcute/lex-cli",
3
- "version": "2.7.0",
3
+ "version": "2.8.0",
4
4
  "description": "cli tool to generate type definitions for atcute",
5
5
  "license": "0BSD",
6
6
  "repository": {
@@ -28,15 +28,15 @@
28
28
  "@optique/core": "^0.10.7",
29
29
  "@optique/run": "^0.10.7",
30
30
  "picocolors": "^1.1.1",
31
- "prettier": "^3.8.1",
31
+ "prettier": "^3.8.2",
32
32
  "@atcute/identity": "^1.1.4",
33
33
  "@atcute/identity-resolver": "^1.2.2",
34
- "@atcute/lexicon-doc": "^2.2.0",
35
34
  "@atcute/lexicon-resolver": "^0.1.6",
35
+ "@atcute/lexicon-doc": "^2.2.0",
36
36
  "@atcute/lexicons": "^1.3.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@types/node": "^25.5.2",
39
+ "@types/node": "^25.6.0",
40
40
  "tschema": "^3.2.0",
41
41
  "@atcute/uint8array": "^1.1.1"
42
42
  },
@@ -68,8 +68,13 @@ export const runExport = async (args: ExportCommand): Promise<void> => {
68
68
  const config = await loadConfig(args.config);
69
69
  const exportConfig = ensureExportConfig(config);
70
70
 
71
- // use export.files if specified, otherwise fall back to root files config
72
- const files = exportConfig.files ?? config.files;
71
+ // use export.files if specified, otherwise fall back to generate.files
72
+ const files = exportConfig.files ?? config.generate?.files;
73
+ if (!files || files.length === 0) {
74
+ console.error(pc.bold(pc.red(`export.files or generate.files must be specified`)));
75
+ process.exit(1);
76
+ }
77
+
73
78
  const outdir = path.resolve(config.root, exportConfig.outdir);
74
79
  const formatter = await createFormatter(config.formatter, config.root);
75
80
 
@@ -1,4 +1,5 @@
1
1
  import * as fs from 'node:fs/promises';
2
+ import * as module from 'node:module';
2
3
  import * as path from 'node:path';
3
4
 
4
5
  import { merge, object } from '@optique/core/constructs';
@@ -8,7 +9,7 @@ import { command, constant } from '@optique/core/primitives';
8
9
  import pc from 'picocolors';
9
10
 
10
11
  import { generateLexiconApi, type ImportMapping } from '../codegen.ts';
11
- import { loadConfig } from '../config.ts';
12
+ import { loadConfig, type GenerateConfig, type NormalizedConfig } from '../config.ts';
12
13
  import { createFormatter } from '../formatter.ts';
13
14
  import { loadLexicons } from '../lexicon-loader.ts';
14
15
  import { packageJsonSchema } from '../lexicon-metadata.ts';
@@ -22,40 +23,51 @@ const resolveImportsToMappings = async (
22
23
  configDirname: string,
23
24
  ): Promise<ImportMapping[]> => {
24
25
  const mappings: ImportMapping[] = [];
26
+ const require = module.createRequire(path.join(configDirname, '__lex_cli__.js'));
25
27
 
26
28
  for (const packageName of imports) {
27
- // walk up from config directory to find package in node_modules
28
29
  let packageJson: unknown;
29
- let currentDir = configDirname;
30
- let found = false;
31
-
32
- while (currentDir !== path.dirname(currentDir)) {
33
- const candidatePath = path.join(currentDir, 'node_modules', packageName, 'package.json');
34
- try {
35
- const content = await fs.readFile(candidatePath, 'utf8');
36
- packageJson = JSON.parse(content);
37
- found = true;
38
- break;
39
- } catch (err: any) {
40
- // only continue to parent if file not found
41
- if (err.code !== 'ENOENT') {
42
- console.error(pc.bold(pc.red(`failed to read package.json for "${packageName}":`)));
43
- console.error(err);
44
- process.exit(1);
30
+
31
+ try {
32
+ const entryPath = require.resolve(packageName);
33
+
34
+ let currentDir = path.dirname(entryPath);
35
+ while (true) {
36
+ const candidatePath = path.join(currentDir, 'package.json');
37
+ try {
38
+ const content = await fs.readFile(candidatePath, 'utf8');
39
+ packageJson = JSON.parse(content);
40
+ break;
41
+ } catch (err: any) {
42
+ if (err.code !== 'ENOENT') {
43
+ console.error(pc.bold(pc.red(`failed to read package.json for "${packageName}":`)));
44
+ console.error(err);
45
+ process.exit(1);
46
+ }
47
+ }
48
+
49
+ if (currentDir === configDirname) {
50
+ break;
51
+ }
52
+
53
+ const parentDir = path.dirname(currentDir);
54
+ if (parentDir === currentDir) {
55
+ break;
45
56
  }
46
57
 
47
- // not found, try parent directory
48
- currentDir = path.dirname(currentDir);
58
+ currentDir = parentDir;
49
59
  }
60
+ } catch (err) {
61
+ console.error(pc.bold(pc.red(`failed to resolve package "${packageName}"`)));
62
+ console.error(err);
63
+ process.exit(1);
50
64
  }
51
65
 
52
- if (!found) {
53
- console.error(pc.bold(pc.red(`failed to resolve package "${packageName}"`)));
54
- console.error(`Could not find package in node_modules starting from ${configDirname}`);
66
+ if (!packageJson) {
67
+ console.error(pc.bold(pc.red(`failed to locate package.json for "${packageName}"`)));
55
68
  process.exit(1);
56
69
  }
57
70
 
58
- // validate package.json
59
71
  const result = packageJsonSchema.try(packageJson, { mode: 'passthrough' });
60
72
  if (!result.ok) {
61
73
  console.error(pc.bold(pc.red(`invalid atcute:lexicons in "${packageName}":`)));
@@ -133,24 +145,54 @@ export const generateCommandSchema = command(
133
145
 
134
146
  export type GenerateCommand = InferValue<typeof generateCommandSchema>;
135
147
 
148
+ type ResolvedGenerateConfig = GenerateConfig & { outdir: string; files: string[] };
149
+
150
+ const ensureGenerateConfig = (config: NormalizedConfig): ResolvedGenerateConfig => {
151
+ const generate = config.generate;
152
+ if (!generate) {
153
+ console.error(pc.bold(pc.red(`generate configuration missing`)));
154
+ process.exit(1);
155
+ }
156
+
157
+ const { outdir, files } = generate;
158
+ if (!outdir) {
159
+ console.error(pc.bold(pc.red(`generate.outdir is required`)));
160
+ process.exit(1);
161
+ }
162
+
163
+ if (!files || files.length === 0) {
164
+ console.error(pc.bold(pc.red(`generate.files is required`)));
165
+ process.exit(1);
166
+ }
167
+
168
+ return { ...generate, outdir, files };
169
+ };
170
+
136
171
  /**
137
172
  * runs the generate command to create type definitions from lexicon documents
138
173
  * @param args parsed command arguments
139
174
  */
140
175
  export const runGenerate = async (args: GenerateCommand): Promise<void> => {
141
176
  const config = await loadConfig(args.config);
177
+ const generateConfig = ensureGenerateConfig(config);
142
178
 
143
179
  // resolve imports to mappings
144
- const importMappings = config.imports ? await resolveImportsToMappings(config.imports, config.root) : [];
145
- const allMappings = [...importMappings, ...(config.mappings ?? [])];
180
+ const importMappings = generateConfig.imports
181
+ ? await resolveImportsToMappings(generateConfig.imports, config.root)
182
+ : [];
183
+ const allMappings = [...importMappings, ...(generateConfig.mappings ?? [])];
146
184
 
147
185
  // load lexicons from files
148
- const loaded = await loadLexicons(config.files, config.root);
186
+ const loaded = await loadLexicons(generateConfig.files, config.root);
149
187
  const documents = loaded.map((l) => l.doc);
150
188
 
151
- const outdir = path.join(config.root, config.outdir);
189
+ const outdir = path.join(config.root, generateConfig.outdir);
152
190
  const formatter = await createFormatter(config.formatter, config.root);
153
191
 
192
+ if (generateConfig.clean) {
193
+ await fs.rm(outdir, { recursive: true, force: true });
194
+ }
195
+
154
196
  try {
155
197
  const pending: Promise<void>[] = [];
156
198
 
@@ -158,7 +200,7 @@ export const runGenerate = async (args: GenerateCommand): Promise<void> => {
158
200
  documents: documents,
159
201
  mappings: allMappings,
160
202
  modules: {
161
- importSuffix: config.modules?.importSuffix ?? '.js',
203
+ importSuffix: generateConfig.modules?.importSuffix ?? '.js',
162
204
  },
163
205
  })) {
164
206
  const filename = path.join(outdir, file.filename);
package/src/config.ts CHANGED
@@ -79,15 +79,6 @@ const formatterConfigSchema = v.union(
79
79
  }),
80
80
  );
81
81
 
82
- export type GitSourceConfig = v.Infer<typeof gitSourceConfigSchema>;
83
- export type AtprotoNsidsSourceConfig = v.Infer<typeof atprotoNsidsSourceConfigSchema>;
84
- export type AtprotoAuthoritySourceConfig = v.Infer<typeof atprotoAuthoritySourceConfigSchema>;
85
- export type AtprotoSourceConfig = v.Infer<typeof atprotoSourceConfigSchema>;
86
- export type SourceConfig = v.Infer<typeof sourceConfigSchema>;
87
- export type PullConfig = v.Infer<typeof pullConfigSchema>;
88
- export type ExportConfig = v.Infer<typeof exportConfigSchema>;
89
- export type FormatterConfig = v.Infer<typeof formatterConfigSchema>;
90
-
91
82
  const isValidLexiconPattern = (pattern: string): boolean => {
92
83
  if (pattern.endsWith('.*')) {
93
84
  return isNsid(`${pattern.slice(0, -2)}.x`);
@@ -127,32 +118,71 @@ const importMappingSchema: v.Type<ImportMapping> = v.object({
127
118
  imports: mappingImports,
128
119
  });
129
120
 
130
- export const lexiconConfigSchema = v.object({
131
- outdir: v.string().assert((value) => value.length > 0, `must not be empty`),
121
+ const modulesConfigSchema = v
122
+ .object({
123
+ importSuffix: v
124
+ .string()
125
+ .assert((value) => value.length > 0, `must not be empty`)
126
+ .optional(),
127
+ })
128
+ .partial();
129
+
130
+ const generateConfigSchema = v.object({
131
+ outdir: v
132
+ .string()
133
+ .assert((value) => value.length > 0, `must not be empty`)
134
+ .optional(),
132
135
  files: v
133
136
  .array(v.string().assert((value) => value.length > 0, `must not be empty`))
134
- .assert((value) => value.length > 0, `must include at least one glob pattern`),
137
+ .assert((value) => value.length > 0, `must include at least one glob pattern`)
138
+ .optional(),
135
139
  imports: v.array(v.string().assert((value) => value.length > 0, `must not be empty`)).optional(),
136
140
  mappings: v.array(importMappingSchema).optional(),
137
- modules: v
138
- .object({
139
- importSuffix: v
140
- .string()
141
- .assert((value) => value.length > 0, `must not be empty`)
142
- .optional(),
143
- })
144
- .partial()
141
+ modules: modulesConfigSchema.optional(),
142
+ clean: v.boolean().optional(),
143
+ });
144
+
145
+ export type GitSourceConfig = v.Infer<typeof gitSourceConfigSchema>;
146
+ export type AtprotoNsidsSourceConfig = v.Infer<typeof atprotoNsidsSourceConfigSchema>;
147
+ export type AtprotoAuthoritySourceConfig = v.Infer<typeof atprotoAuthoritySourceConfigSchema>;
148
+ export type AtprotoSourceConfig = v.Infer<typeof atprotoSourceConfigSchema>;
149
+ export type SourceConfig = v.Infer<typeof sourceConfigSchema>;
150
+ export type PullConfig = v.Infer<typeof pullConfigSchema>;
151
+ export type ExportConfig = v.Infer<typeof exportConfigSchema>;
152
+ export type FormatterConfig = v.Infer<typeof formatterConfigSchema>;
153
+ export type GenerateConfig = v.Infer<typeof generateConfigSchema>;
154
+
155
+ export const lexiconConfigSchema = v.object({
156
+ /** @deprecated moved to `generate.outdir` */
157
+ outdir: v
158
+ .string()
159
+ .assert((value) => value.length > 0, `must not be empty`)
160
+ .optional(),
161
+ /** @deprecated moved to `generate.files` */
162
+ files: v
163
+ .array(v.string().assert((value) => value.length > 0, `must not be empty`))
164
+ .assert((value) => value.length > 0, `must include at least one glob pattern`)
145
165
  .optional(),
166
+ /** @deprecated moved to `generate.imports` */
167
+ imports: v.array(v.string().assert((value) => value.length > 0, `must not be empty`)).optional(),
168
+ /** @deprecated moved to `generate.mappings` */
169
+ mappings: v.array(importMappingSchema).optional(),
170
+ /** @deprecated moved to `generate.modules` */
171
+ modules: modulesConfigSchema.optional(),
146
172
  formatter: formatterConfigSchema.optional((): FormatterConfig => ({ type: 'prettier' })),
173
+ generate: generateConfigSchema.optional(),
147
174
  pull: pullConfigSchema.optional(),
148
175
  export: exportConfigSchema.optional(),
149
176
  });
150
177
 
151
178
  export type LexiconConfig = v.Infer<typeof lexiconConfigSchema>;
152
179
 
153
- export interface NormalizedConfig extends LexiconConfig {
180
+ export type NormalizedConfig = Omit<
181
+ LexiconConfig,
182
+ 'outdir' | 'files' | 'imports' | 'mappings' | 'modules'
183
+ > & {
154
184
  root: string;
155
- }
185
+ };
156
186
 
157
187
  export const loadConfig = async (configPath?: string): Promise<NormalizedConfig> => {
158
188
  let configFilename: string | undefined;
@@ -207,5 +237,29 @@ export const loadConfig = async (configPath?: string): Promise<NormalizedConfig>
207
237
  process.exit(1);
208
238
  }
209
239
 
210
- return { ...configResult.value, root: configDirname };
240
+ const { outdir, files, imports, mappings, modules, generate, ...rest } = configResult.value;
241
+
242
+ // back-compat: top-level generate options were moved into `generate.*`. merge the legacy
243
+ // top-level values into `generate`, with nested `generate.*` winning on conflicts. the result
244
+ // is only present if at least one generate-related option was provided anywhere.
245
+ const hasLegacyTopLevel =
246
+ outdir !== undefined ||
247
+ files !== undefined ||
248
+ imports !== undefined ||
249
+ mappings !== undefined ||
250
+ modules !== undefined;
251
+
252
+ let normalizedGenerate: GenerateConfig | undefined;
253
+ if (generate || hasLegacyTopLevel) {
254
+ normalizedGenerate = {
255
+ outdir: generate?.outdir ?? outdir,
256
+ files: generate?.files ?? files,
257
+ imports: generate?.imports ?? imports,
258
+ mappings: generate?.mappings ?? mappings,
259
+ modules: generate?.modules ?? modules,
260
+ clean: generate?.clean,
261
+ };
262
+ }
263
+
264
+ return { ...rest, generate: normalizedGenerate, root: configDirname };
211
265
  };
@@ -26,80 +26,81 @@ export const pullGitSource = async (
26
26
  const cloneDir = path.join(tempParent, 'repo');
27
27
 
28
28
  try {
29
- await runGit(
30
- [
31
- 'clone',
32
- '--filter=blob:none',
33
- '--depth',
34
- '1',
35
- '--sparse',
36
- ...(source.ref ? ['--branch', source.ref, '--single-branch'] : []),
37
- source.remote,
38
- cloneDir,
39
- ],
40
- { timeoutMs: 60_000 },
41
- );
42
- } catch (err) {
43
- if (err instanceof GitError) {
44
- console.error(pc.bold(pc.red(`git clone failed for ${source.remote}:`)));
45
- console.error(err.stderr || err.message);
46
- process.exit(1);
29
+ try {
30
+ await runGit(
31
+ [
32
+ 'clone',
33
+ '--filter=blob:none',
34
+ '--depth',
35
+ '1',
36
+ '--sparse',
37
+ ...(source.ref ? ['--branch', source.ref, '--single-branch'] : []),
38
+ source.remote,
39
+ cloneDir,
40
+ ],
41
+ { timeoutMs: 60_000 },
42
+ );
43
+ } catch (err) {
44
+ if (err instanceof GitError) {
45
+ console.error(pc.bold(pc.red(`git clone failed for ${source.remote}:`)));
46
+ console.error(err.stderr || err.message);
47
+ process.exit(1);
48
+ }
49
+
50
+ throw err;
47
51
  }
48
52
 
49
- throw err;
50
- }
51
-
52
- try {
53
- await runGit(['-C', cloneDir, 'sparse-checkout', 'set', '--no-cone', ...source.pattern], {
54
- timeoutMs: 30_000,
55
- });
56
- } catch (err) {
57
- if (err instanceof GitError) {
58
- console.error(pc.bold(pc.red(`git sparse-checkout failed for ${source.remote}:`)));
59
- console.error(err.stderr || err.message);
60
- process.exit(1);
53
+ try {
54
+ await runGit(['-C', cloneDir, 'sparse-checkout', 'set', '--no-cone', ...source.pattern], {
55
+ timeoutMs: 30_000,
56
+ });
57
+ } catch (err) {
58
+ if (err instanceof GitError) {
59
+ console.error(pc.bold(pc.red(`git sparse-checkout failed for ${source.remote}:`)));
60
+ console.error(err.stderr || err.message);
61
+ process.exit(1);
62
+ }
63
+
64
+ throw err;
61
65
  }
62
66
 
63
- throw err;
64
- }
65
-
66
- const pulled = new Map<string, PulledLexicon>();
67
+ const pulled = new Map<string, PulledLexicon>();
67
68
 
68
- for await (const filename of fs.glob(source.pattern, { cwd: cloneDir })) {
69
- const absolute = path.join(cloneDir, filename);
70
- const stat = await fs.stat(absolute);
69
+ for await (const filename of fs.glob(source.pattern, { cwd: cloneDir })) {
70
+ const absolute = path.join(cloneDir, filename);
71
+ const stat = await fs.stat(absolute);
71
72
 
72
- if (!stat.isFile()) {
73
- continue;
74
- }
73
+ if (!stat.isFile()) {
74
+ continue;
75
+ }
75
76
 
76
- const location: SourceLocation = {
77
- absolutePath: absolute,
78
- relativePath: filename,
79
- sourceDescription: source.remote,
80
- };
77
+ const location: SourceLocation = {
78
+ absolutePath: absolute,
79
+ relativePath: filename,
80
+ sourceDescription: source.remote,
81
+ };
81
82
 
82
- const doc = await parseLexiconFile(location);
83
+ const doc = await parseLexiconFile(location);
83
84
 
84
- pulled.set(doc.id, { nsid: doc.id, doc, location });
85
- }
85
+ pulled.set(doc.id, { nsid: doc.id, doc, location });
86
+ }
86
87
 
87
- // get the commit hash
88
- let rev: string;
89
- try {
90
- const result = await runGit(['-C', cloneDir, 'rev-parse', 'HEAD'], { timeoutMs: 10_000 });
91
- rev = result.stdout.trim();
92
- } catch (err) {
93
- if (err instanceof GitError) {
94
- console.error(pc.bold(pc.red(`git rev-parse failed for ${source.remote}:`)));
95
- console.error(err.stderr || err.message);
96
- process.exit(1);
88
+ let rev: string;
89
+ try {
90
+ const result = await runGit(['-C', cloneDir, 'rev-parse', 'HEAD'], { timeoutMs: 10_000 });
91
+ rev = result.stdout.trim();
92
+ } catch (err) {
93
+ if (err instanceof GitError) {
94
+ console.error(pc.bold(pc.red(`git rev-parse failed for ${source.remote}:`)));
95
+ console.error(err.stderr || err.message);
96
+ process.exit(1);
97
+ }
98
+
99
+ throw err;
97
100
  }
98
101
 
99
- throw err;
102
+ return { pulled, rev };
103
+ } finally {
104
+ await fs.rm(tempParent, { recursive: true, force: true });
100
105
  }
101
-
102
- await fs.rm(tempParent, { recursive: true, force: true });
103
-
104
- return { pulled, rev };
105
106
  };