Skip to content

Commit 0b87708

Browse files
Merge pull request #409 from ibi-group/fix-scripts-package
Fix scripts package
2 parents a588a85 + 2b95f47 commit 0b87708

7 files changed

+53
-34
lines changed

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
"bootstrap": "lerna bootstrap --use-workspaces",
9393
"build:cjs": "lerna exec --parallel -- babel --extensions '.js,.ts,.tsx' --ignore **/*.story.js,**/*.story.ts,**/*.story.d.ts,**/*.story.tsx,**/*.spec.js,**/*.spec.ts,**/*.test.js,**/*.test.ts,**/__tests__/**,**/__unpublished__/** --root-mode upward --source-maps true src -d lib",
9494
"build:esm": "lerna exec --parallel -- cross-env BABEL_ENV=esm babel --extensions '.js,.ts,.tsx' --ignore **/*.story.js,**/*.story.ts,**/*.story.d.ts,**/*.story.tsx,**/*.spec.js,**/*.spec.ts,**/*.test.js,**/*.test.ts,**/__tests__/**,**/__unpublished__/** --root-mode upward --source-maps true src -d esm",
95-
"check:i18n": "node packages/scripts/lib/validate-i18n.js packages/**/src packages/**/i18n",
95+
"check:i18n": "node packages/scripts/lib/run-validate-i18n.js packages/**/src packages/**/i18n",
9696
"prepublish": "yarn typescript && yarn build:cjs && yarn build:esm",
9797
"check-eslint-config": "eslint --print-config jestconfig.js | eslint-config-prettier-check",
9898
"coverage": "jest --coverage",

Diff for: packages/scripts/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
"js-yaml": "^4.1.0"
1919
},
2020
"scripts": {
21-
"collect-i18n": "node lib/collect-i18n-messages.js ../**/src ../**/i18n/en-US.yml > i18n.csv",
21+
"collect-i18n": "node lib/run-collect-i18n-messages.js ../**/src ../**/i18n/en-US.yml > i18n.csv",
2222
"tsc": "tsc",
23-
"validate-i18n": "node lib/validate-i18n.js ../**/src ../**/i18n"
23+
"validate-i18n": "node lib/run-validate-i18n.js ../**/src ../**/i18n"
2424
},
2525
"bugs": {
2626
"url": "https://github.com/opentripplanner/otp-ui/issues"

Diff for: packages/scripts/src/collect-i18n-messages.ts

+8-11
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,4 @@
11
/* eslint-disable no-console */
2-
/**
3-
* This script collects message ids gathered by the formatjs extract command in the specified files and folder(s)
4-
* and creates a CSV file with the id, description, and messages in the selected language(s).
5-
* This script is shipped as part of a package so it can be used in other code bases as needed.
6-
*/
7-
// Example usage for all packages and all languages in this repo:
8-
// node path-to/lib/collect-i18n-messages.js ../**/src ../**/i18n
9-
// Example usage for all packages and one language in this repo:
10-
// node path-to-lib/collect-i18n-messages.js ../**/src ../**/i18n/en-US.yml
11-
122
import { extract } from "@formatjs/cli";
133
import flatten from "flat";
144

@@ -74,4 +64,11 @@ async function collectAndPrintOutMessages({ sourceFiles, ymlFilesByLocale }) {
7464
});
7565
}
7666

77-
sortSourceAndYmlFiles(process.argv).then(collectAndPrintOutMessages);
67+
/**
68+
* This script collects message ids gathered by the formatjs extract command in the specified files and folder(s)
69+
* and creates a CSV file with the id, description, and messages in the selected language(s).
70+
* This script is shipped as part of a package so it can be used in other code bases as needed.
71+
*/
72+
export default function run(): Promise<void> {
73+
return sortSourceAndYmlFiles(process.argv).then(collectAndPrintOutMessages);
74+
}

Diff for: packages/scripts/src/index.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import collectI18nMessages from "./collect-i18n-messages";
2+
import validateI18n from "./validate-i18n";
3+
4+
export default {
5+
collectI18nMessages,
6+
validateI18n
7+
};

Diff for: packages/scripts/src/run-collect-i18n-messages.ts

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/**
2+
* This script collects message ids gathered by the formatjs extract command in the specified files and folder(s)
3+
* and creates a CSV file with the id, description, and messages in the selected language(s).
4+
*/
5+
// Example usage for all packages and all languages in this repo:
6+
// node path-to/lib/run-collect-i18n-messages.js ../**/src ../**/i18n
7+
// Example usage for all packages and one language in this repo:
8+
// node path-to-lib/run-collect-i18n-messages.js ../**/src ../**/i18n/en-US.yml
9+
10+
import collectI18nMessages from "./collect-i18n-messages";
11+
12+
collectI18nMessages();

Diff for: packages/scripts/src/run-validate-i18n.ts

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/**
2+
* Checks that message ids gathered by the formatjs extract command are present in the specified folder(s).
3+
*/
4+
// Example usage for one package in this repo:
5+
// node path-to/lib/run-validate-i18n.js ../trip-details/src ../trip-details/i18n
6+
// Example usage for all packages in this repo:
7+
// node path-to/lib/run-validate-i18n.js ../**/src ../**/i18n
8+
9+
import validateI18n from "./validate-i18n";
10+
11+
validateI18n();

Diff for: packages/scripts/src/validate-i18n.ts

+12-20
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,8 @@
11
/* eslint-disable no-console */
2-
/**
3-
* This script checks that message ids gathered by the formatjs extract command
4-
* are present in the specified folder(s).
5-
* It will produce an error code if message ids are present in a language but not another,
6-
* or if message ids are in a i18n yml files but not in the code or vice-versa.
7-
* This script is shipped as part of a package so it can be used in other code bases as needed.
8-
*/
9-
// Example usage for one package in this repo:
10-
// node path-to/lib/validate-i18n.js ../trip-details/src ../trip-details/i18n
11-
// Example usage for all packages in this repo:
12-
// node path-to/lib/validate-i18n.js ../**/src ../**/i18n
13-
14-
const { extract } = require("@formatjs/cli");
15-
const flatten = require("flat");
2+
import flatten from "flat";
3+
import { extract } from "@formatjs/cli";
164

17-
const {
18-
isNotSpecialId,
19-
loadYamlFile,
20-
sortSourceAndYmlFiles
21-
} = require("./util");
5+
import { isNotSpecialId, loadYamlFile, sortSourceAndYmlFiles } from "./util";
226

237
/**
248
* Checks message ids completeness between code and yml files for all locales in repo.
@@ -83,4 +67,12 @@ async function checkI18n({ sourceFiles, ymlFilesByLocale }) {
8367
}
8468
}
8569

86-
sortSourceAndYmlFiles(process.argv).then(checkI18n);
70+
/**
71+
* Checks that message ids gathered by the formatjs extract command are present in the specified folder(s).
72+
* Produces a process error if message ids are present in a language but not another,
73+
* or if message ids are found in i18n yml files but not in the code or vice-versa.
74+
* This script is shipped as part of a package so it can be used in other code bases as needed.
75+
*/
76+
export default function run(): Promise<void> {
77+
return sortSourceAndYmlFiles(process.argv).then(checkI18n);
78+
}

0 commit comments

Comments
 (0)