Skip to content

Commit d658b9c

Browse files
committed
1.2.1
1 parent 3ed5734 commit d658b9c

File tree

8 files changed

+72
-55
lines changed

8 files changed

+72
-55
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@idrinth/typescript-language-from-yaml",
3-
"version": "1.2.0",
3+
"version": "1.2.1",
44
"description": "Translates yaml files to ts for translation autocompletion, autocorrection and better developer support",
55
"bin": {
66
"itlfy": "bin/itlfy.js"

src/check.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ import {
1111
} from './constants.js';
1212
import Logger from './logger.js';
1313
import loadKeys from './loadKeys.js';
14-
import Config from "./config.js";
14+
import Config from './config.js';
1515
export default (
1616
logger: Logger,
1717
config: Config,
1818
) => {
1919
let errors = 0;
2020
let warnings = 0;
21-
for (const folder of config.folders) {
22-
const localConfig = new Config(`${ folder }`);
21+
for (const folder of config.folders) {
22+
const localConfig = new Config(`${ folder }`,);
2323
if (! existsSync(`${ folder }/${ localConfig.originDirectory }`,)) {
2424
logger.error(`folder ${ folder }/${ localConfig.originDirectory } doesn't exist`,);
2525
errors ++;

src/cli.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import init from './init.js';
1313
// eslint-disable-next-line complexity
1414
export default async(args: string[], cwd: string,): Promise<number> => {
1515
const logger = new Logger();
16-
const config = new Config(cwd, args,);
16+
const config = new Config(cwd, args,);
1717
switch (args[FIRST_ARGUMENT]) {
1818
case 'check':
1919
return check(

src/config.ts

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,30 @@ import {
66
parse,
77
} from 'yaml';
88
import {
9+
CONFIG_FILE,
910
EMPTY,
10-
SECOND_ARGUMENT
11-
} from "./constants.js";
11+
SECOND_ARGUMENT,
12+
} from './constants.js';
1213

1314
export default class Config {
1415
public readonly originDirectory: string;
16+
1517
public readonly targetDirectory: string;
18+
1619
public readonly isVerbatimModuleSyntax: boolean;
20+
1721
public readonly hasNoTranslationsFile: boolean;
22+
1823
public readonly isFailOnWarning: boolean;
24+
1925
public readonly isStrictTypes: boolean;
26+
2027
public readonly isSplit: boolean;
28+
2129
public readonly folders: string[];
22-
constructor(cwd: string, args: string[] = []) {
23-
const file = `${ cwd }/.idrinth-typescript-from-yaml.yml`;
30+
31+
constructor(cwd: string, args: string[] = [],) {
32+
const file = `${ cwd }/${ CONFIG_FILE }`;
2433
this.hasNoTranslationsFile = false;
2534
this.isSplit = false;
2635
this.originDirectory = 'language';
@@ -29,7 +38,7 @@ export default class Config {
2938
this.isStrictTypes = false;
3039
this.isVerbatimModuleSyntax = false;
3140
if (existsSync(file,)) {
32-
const data = parse(readFileSync(file, 'utf8'));
41+
const data = parse(readFileSync(file, 'utf8',),);
3342
if (typeof data.hasNoTranslationsFile === 'boolean') {
3443
this.hasNoTranslationsFile = data.hasNoTranslationsFile;
3544
}
@@ -68,9 +77,9 @@ export default class Config {
6877
this.isVerbatimModuleSyntax = true;
6978
}
7079
this.folders = args
71-
.splice(SECOND_ARGUMENT,)
72-
.filter((arg,) => ! arg.startsWith('--'),)
73-
.map((rel,) => `${ cwd }/${ rel }`);
80+
.slice(SECOND_ARGUMENT,)
81+
.filter((arg,) => ! arg.startsWith('--',),)
82+
.map((rel,) => `${ cwd }/${ rel }`,);
7483
if (this.folders.length === EMPTY) {
7584
this.folders.push(cwd,);
7685
}

src/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ export const FIRST_ARGUMENT = 2;
55
export const SECOND_ARGUMENT = 3;
66
export const EMPTY = 0;
77
export const DEFAULT_INDENTATION = 2;
8+
export const CONFIG_FILE = '.idrinth-typescript-language-from-yaml.yml';

src/generate.ts

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,30 +12,30 @@ import {
1212
import Logger from './logger.js';
1313
import toTypescriptObject from './to-typescript-object.js';
1414
import loadKeys from './loadKeys.js';
15-
import Config from "./config.js";
15+
import Config from './config.js';
1616

1717
export default (
1818
logger: Logger,
1919
config: Config,
2020
) => {
2121
for (const folder of config.folders) {
22-
const localConfig = new Config(`${ folder }`);
22+
const localConfig = new Config(`${ folder }`,);
2323
if (existsSync(`${ folder }/${ localConfig.targetDirectory }`,)) {
24-
for (const file of readdirSync(`${folder}/${localConfig.targetDirectory}`, 'utf8',)) {
25-
unlinkSync(`${folder}/${localConfig.targetDirectory}/${file}`,);
24+
for (const file of readdirSync(`${ folder }/${ localConfig.targetDirectory }`, 'utf8',)) {
25+
unlinkSync(`${ folder }/${ localConfig.targetDirectory }/${ file }`,);
2626
}
2727
}
28-
const yamlFiles = readdirSync(`${folder}/${localConfig.originDirectory}`, 'utf8',)
28+
const yamlFiles = readdirSync(`${ folder }/${ localConfig.originDirectory }`, 'utf8',)
2929
.filter((file,) => file.endsWith('.yml',),);
3030

3131
const files = [];
3232
// eslint-disable-next-line complexity
3333
yamlFiles.forEach((yamlFile,) => {
3434
const lang = yamlFile.replace('.yml', '',);
35-
const yamlPath = `${folder}/${localConfig.originDirectory}/${yamlFile}`;
35+
const yamlPath = `${ folder }/${ localConfig.originDirectory }/${ yamlFile }`;
3636

37-
if (!existsSync(`${folder}/${localConfig.targetDirectory}`,)) {
38-
mkdirSync(`${folder}/${localConfig.targetDirectory}`, {
37+
if (! existsSync(`${ folder }/${ localConfig.targetDirectory }`,)) {
38+
mkdirSync(`${ folder }/${ localConfig.targetDirectory }`, {
3939
recursive: true,
4040
},);
4141
}
@@ -46,49 +46,49 @@ export default (
4646
if (localConfig.isSplit && typeof data[Object.keys(data,).pop()] !== 'string') {
4747
for (const key of Object.keys(data,)) {
4848
writeFileSync(
49-
`${folder}/${localConfig.targetDirectory}/${lang}-${key}.ts`,
49+
`${ folder }/${ localConfig.targetDirectory }/${ lang }-${ key }.ts`,
5050
localConfig.isVerbatimModuleSyntax
51-
? `/* eslint max-len:0 */\nimport {\n lang as langType,\n} from './type-${key}.js';\nconst lang: ${typeName} = ${toTypescriptObject(data[key],)};\n\nexport default lang;\n`
52-
: `/* eslint max-len:0 */\nimport langType from './type-${key}.js';\nconst lang: ${typeName} = ${toTypescriptObject(data[key],)};\n\nexport default lang;\n`,
51+
? `/* eslint max-len:0 */\nimport {\n lang as langType,\n} from './type-${ key }.js';\nconst lang: ${ typeName } = ${ toTypescriptObject(data[key],) };\n\nexport default lang;\n`
52+
: `/* eslint max-len:0 */\nimport langType from './type-${ key }.js';\nconst lang: ${ typeName } = ${ toTypescriptObject(data[key],) };\n\nexport default lang;\n`,
5353
'utf8',
5454
);
55-
files.push(`${lang}-${key}`,);
55+
files.push(`${ lang }-${ key }`,);
5656
if (lang === 'en') {
5757
writeFileSync(
58-
`${folder}/${localConfig.targetDirectory}/type-${key}.ts`,
58+
`${ folder }/${ localConfig.targetDirectory }/type-${ key }.ts`,
5959
localConfig.isVerbatimModuleSyntax
60-
? `/* eslint max-len:0 */\ntype ln = ${toTypescriptObject(data[key],).replace(/: '.*?',/ug, ': string,',)};\n\nexport type lang = ln;\n`
61-
: `/* eslint max-len:0 */\ntype lang = ${toTypescriptObject(data[key],).replace(/: '.*?',/ug, ': string,',)};\n\nexport default lang;\n`,
60+
? `/* eslint max-len:0 */\ntype ln = ${ toTypescriptObject(data[key],).replace(/: '.*?',/ug, ': string,',) };\n\nexport type lang = ln;\n`
61+
: `/* eslint max-len:0 */\ntype lang = ${ toTypescriptObject(data[key],).replace(/: '.*?',/ug, ': string,',) };\n\nexport default lang;\n`,
6262
'utf8',
6363
);
6464
}
6565
}
6666
} else {
6767
writeFileSync(
68-
`${folder}/${localConfig.targetDirectory}/${lang}.ts`,
68+
`${ folder }/${ localConfig.targetDirectory }/${ lang }.ts`,
6969
localConfig.isVerbatimModuleSyntax
70-
? `/* eslint max-len:0 */\nimport {\n lang as langType,\n} from './type.js';\nconst lang: ${typeName} = ${toTypescriptObject(data,)};\n\nexport default lang;\n`
71-
: `/* eslint max-len:0 */\nimport langType from './type.js';\nconst lang: ${typeName} = ${toTypescriptObject(data,)};\n\nexport default lang;\n`,
70+
? `/* eslint max-len:0 */\nimport {\n lang as langType,\n} from './type.js';\nconst lang: ${ typeName } = ${ toTypescriptObject(data,) };\n\nexport default lang;\n`
71+
: `/* eslint max-len:0 */\nimport langType from './type.js';\nconst lang: ${ typeName } = ${ toTypescriptObject(data,) };\n\nexport default lang;\n`,
7272
'utf8',
7373
);
74-
files.push(`${lang}`,);
74+
files.push(`${ lang }`,);
7575
if (lang === 'en') {
7676
writeFileSync(
77-
`${folder}/${localConfig.targetDirectory}/type.ts`,
77+
`${ folder }/${ localConfig.targetDirectory }/type.ts`,
7878
localConfig.isVerbatimModuleSyntax
79-
? `/* eslint max-len:0 */\ntype ln = ${toTypescriptObject(data,).replace(/: '.*?',/ug, ': string,',)};\n\nexport type lang = ln;\n`
80-
: `/* eslint max-len:0 */\ntype lang = ${toTypescriptObject(data,).replace(/: '.*?',/ug, ': string,',)};\n\nexport default lang;\n`,
79+
? `/* eslint max-len:0 */\ntype ln = ${ toTypescriptObject(data,).replace(/: '.*?',/ug, ': string,',) };\n\nexport type lang = ln;\n`
80+
: `/* eslint max-len:0 */\ntype lang = ${ toTypescriptObject(data,).replace(/: '.*?',/ug, ': string,',) };\n\nexport default lang;\n`,
8181
'utf8',
8282
);
8383
}
8484
}
8585
if (lang === 'en') {
8686
const keys = loadKeys(data,);
8787
writeFileSync(
88-
`${folder}/${localConfig.targetDirectory}/language-key.ts`,
88+
`${ folder }/${ localConfig.targetDirectory }/language-key.ts`,
8989
localConfig.isVerbatimModuleSyntax
90-
? `/* eslint max-len:0 */\ntype lk = '${keys.join('\'|\'',)}';\nexport type languageKey = lk;\n`
91-
: `/* eslint max-len:0 */\ntype languageKey = '${keys.join('\'|\'',)}';\nexport default languageKey;\n`,
90+
? `/* eslint max-len:0 */\ntype lk = '${ keys.join('\'|\'',) }';\nexport type languageKey = lk;\n`
91+
: `/* eslint max-len:0 */\ntype languageKey = '${ keys.join('\'|\'',) }';\nexport default languageKey;\n`,
9292
'utf8',
9393
);
9494
}
@@ -98,27 +98,27 @@ export default (
9898
.map((k,) => k.replace(/\.yml$/u, '',),),
9999
);
100100
writeFileSync(
101-
`${folder}/${localConfig.targetDirectory}/languages.ts`,
102-
`/* eslint max-len:0 */\nconst languages = ${languages};\nexport default languages;\n`,
101+
`${ folder }/${ localConfig.targetDirectory }/languages.ts`,
102+
`/* eslint max-len:0 */\nconst languages = ${ languages };\nexport default languages;\n`,
103103
'utf8',
104104
);
105105
writeFileSync(
106-
`${folder}/${localConfig.targetDirectory}/files.ts`,
107-
`const files = ${toTypescriptObject(files,)};\nexport default files;\n`,
106+
`${ folder }/${ localConfig.targetDirectory }/files.ts`,
107+
`const files = ${ toTypescriptObject(files,) };\nexport default files;\n`,
108108
'utf8',
109109
);
110110
if (! localConfig.hasNoTranslationsFile) {
111111
let fileImporter = '';
112112
let fileExporter = 'const translations = {';
113113
for (const f of files) {
114114
const v = f.replace(/-/gu, '_',);
115-
fileImporter += `import ${v} from './${f}.js';\n`;
116-
fileExporter += `\n '${f}': ${v},`;
115+
fileImporter += `import ${ v } from './${ f }.js';\n`;
116+
fileExporter += `\n '${ f }': ${ v },`;
117117
}
118118
fileExporter += '\n};';
119119
writeFileSync(
120-
`${folder}/${localConfig.targetDirectory}/translations.ts`,
121-
`${fileImporter}${fileExporter}\nexport default translations;\n`,
120+
`${ folder }/${ localConfig.targetDirectory }/translations.ts`,
121+
`${ fileImporter }${ fileExporter }\nexport default translations;\n`,
122122
'utf8',
123123
);
124124
}

src/init.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1-
import Logger from "./logger.js";
2-
import Config from "./config.js";
3-
import {writeFileSync} from "fs";
4-
import {stringify} from "yaml";
1+
import Logger from './logger.js';
2+
import Config from './config.js';
3+
import {
4+
writeFileSync,
5+
} from 'fs';
6+
import {
7+
stringify,
8+
} from 'yaml';
9+
import {
10+
CONFIG_FILE,
11+
} from './constants.js';
512

613
export default (
714
logger: Logger,
@@ -17,12 +24,12 @@ export default (
1724
isFailOnWarning: config.isFailOnWarning,
1825
};
1926
for (const folder of config.folders) {
20-
const target = `${folder}/.idrinth-typescript-language-from-yaml.yml`;
27+
const target = `${ folder }/${ CONFIG_FILE }`;
2128
writeFileSync(
2229
target,
23-
stringify(toWrite),
30+
stringify(toWrite,),
2431
'utf8',
2532
);
26-
logger.info(`Wrote ${ target }`);
33+
logger.info(`Wrote ${ target }`,);
2734
}
2835
};

src/watch.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
import delay from './delay.js';
99
import generate from './generate.js';
1010
import Logger from './logger.js';
11-
import Config from "./config.js";
11+
import Config from './config.js';
1212

1313
// eslint-disable-next-line complexity
1414
export default async(
@@ -20,7 +20,7 @@ export default async(
2020
while (true) {
2121
const now = Date.now();
2222
for (const folder of config.folders) {
23-
const localConfig = new Config(folder);
23+
const localConfig = new Config(folder,);
2424
let modified = false;
2525
for (const file of readdirSync(
2626
`${ folder }/${ localConfig.originDirectory }`,

0 commit comments

Comments
 (0)