@wp-blocks/make-pot 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ .prettierignore +3 -0
- package/.editorconfig +15 -0
- package/.eslintrc.json +12 -0
- package/.github/workflows/node.js.yml +33 -0
- package/jest.config.json +14 -0
- package/lib/cliArgs.d.ts +4 -0
- package/lib/cliArgs.js +177 -0
- package/lib/cliArgs.js.map +1 -0
- package/lib/consolidate.d.ts +2 -0
- package/lib/consolidate.js +27 -0
- package/lib/consolidate.js.map +1 -0
- package/lib/const.d.ts +26 -0
- package/lib/const.js +56 -0
- package/lib/const.js.map +1 -0
- package/lib/extractors-json.d.ts +9 -0
- package/lib/extractors-json.js +53 -0
- package/lib/extractors-json.js.map +1 -0
- package/lib/extractors-maps.d.ts +109 -0
- package/lib/extractors-maps.js +139 -0
- package/lib/extractors-maps.js.map +1 -0
- package/lib/extractors-php.d.ts +1 -0
- package/lib/extractors-php.js +24 -0
- package/lib/extractors-php.js.map +1 -0
- package/lib/extractors-text.d.ts +1 -0
- package/lib/extractors-text.js +21 -0
- package/lib/extractors-text.js.map +1 -0
- package/lib/extractors.d.ts +17 -0
- package/lib/extractors.js +128 -0
- package/lib/extractors.js.map +1 -0
- package/lib/fs.d.ts +2 -0
- package/lib/fs.js +51 -0
- package/lib/fs.js.map +1 -0
- package/lib/glob.d.ts +13 -0
- package/lib/glob.js +60 -0
- package/lib/glob.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +25 -0
- package/lib/index.js.map +1 -0
- package/lib/makePot.d.ts +2 -0
- package/lib/makePot.js +56 -0
- package/lib/makePot.js.map +1 -0
- package/lib/parser.d.ts +6 -0
- package/lib/parser.js +93 -0
- package/lib/parser.js.map +1 -0
- package/lib/tree.d.ts +2 -0
- package/lib/tree.js +77 -0
- package/lib/tree.js.map +1 -0
- package/lib/types.d.ts +46 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib/utils.d.ts +8 -0
- package/lib/utils.js +74 -0
- package/lib/utils.js.map +1 -0
- package/package.json +50 -0
- package/tests/consolidate.test.ts +77 -0
- package/tests/extract-2.test.ts +97 -0
- package/tests/extract.test.ts +380 -0
- package/tests/getFiles.test.ts +114 -0
- package/tests/getStrings.test.ts +149 -0
- package/tests/index.html +78 -0
- package/tests/ingnoreFunction.test.ts +177 -0
- package/tests/jsonParse.test.ts +60 -0
- package/tests/makePot.ts +46 -0
- package/tests/treeJs.test.ts +15 -0
- package/tests/treePhp.test.ts +30 -0
- package/tests/treeTs.test.ts +15 -0
- package/tests/utils.test.ts +28 -0
- package/tsconfig.json +35 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.themeHeaders = exports.pluginHeaders = exports.pkgJsonHeaders = exports.blockJson = exports.themeJson = void 0;
|
|
4
|
+
exports.themeJson = {
|
|
5
|
+
title: 'Style variation name',
|
|
6
|
+
settings: {
|
|
7
|
+
typography: {
|
|
8
|
+
fontSizes: [
|
|
9
|
+
{
|
|
10
|
+
name: 'Font size name',
|
|
11
|
+
},
|
|
12
|
+
],
|
|
13
|
+
fontFamilies: [
|
|
14
|
+
{
|
|
15
|
+
name: 'Font family name',
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
color: {
|
|
20
|
+
palette: [
|
|
21
|
+
{
|
|
22
|
+
name: 'Color name',
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
gradients: [
|
|
26
|
+
{
|
|
27
|
+
name: 'Gradient name',
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
duotone: [
|
|
31
|
+
{
|
|
32
|
+
name: 'Duotone name',
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
spacing: {
|
|
37
|
+
spacingSizes: [
|
|
38
|
+
{
|
|
39
|
+
name: 'Space size name',
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
blocks: {
|
|
44
|
+
'*': {
|
|
45
|
+
typography: {
|
|
46
|
+
fontSizes: [
|
|
47
|
+
{
|
|
48
|
+
name: 'Font size name',
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
fontFamilies: [
|
|
52
|
+
{
|
|
53
|
+
name: 'Font family name',
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
color: {
|
|
58
|
+
palette: [
|
|
59
|
+
{
|
|
60
|
+
name: 'Color name',
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
gradients: [
|
|
64
|
+
{
|
|
65
|
+
name: 'Gradient name',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
spacing: {
|
|
70
|
+
spacingSizes: [
|
|
71
|
+
{
|
|
72
|
+
name: 'Space size name',
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
customTemplates: [
|
|
80
|
+
{
|
|
81
|
+
title: 'Custom template name',
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
templateParts: [
|
|
85
|
+
{
|
|
86
|
+
title: 'Template part name',
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
};
|
|
90
|
+
exports.blockJson = {
|
|
91
|
+
title: 'block title',
|
|
92
|
+
description: 'block description',
|
|
93
|
+
keywords: ['block keyword'],
|
|
94
|
+
styles: [
|
|
95
|
+
{
|
|
96
|
+
label: 'block style label',
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
variations: [
|
|
100
|
+
{
|
|
101
|
+
title: 'block variation title',
|
|
102
|
+
description: 'block variation description',
|
|
103
|
+
keywords: ['block variation keyword'],
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
};
|
|
107
|
+
exports.pkgJsonHeaders = {
|
|
108
|
+
name: 'name',
|
|
109
|
+
url: 'homepage',
|
|
110
|
+
description: 'description',
|
|
111
|
+
author: 'author',
|
|
112
|
+
version: 'version',
|
|
113
|
+
bugs: 'bugs',
|
|
114
|
+
license: 'license',
|
|
115
|
+
repository: 'repository',
|
|
116
|
+
};
|
|
117
|
+
exports.pluginHeaders = {
|
|
118
|
+
name: 'Plugin Name',
|
|
119
|
+
url: 'Plugin URI',
|
|
120
|
+
description: 'Description',
|
|
121
|
+
author: 'Author',
|
|
122
|
+
authorUrl: 'Author URI',
|
|
123
|
+
version: 'Version',
|
|
124
|
+
license: 'License',
|
|
125
|
+
domainPath: 'Domain Path',
|
|
126
|
+
textDomain: 'Text Domain',
|
|
127
|
+
};
|
|
128
|
+
exports.themeHeaders = {
|
|
129
|
+
name: 'Theme Name',
|
|
130
|
+
url: 'Theme URI',
|
|
131
|
+
description: 'Description',
|
|
132
|
+
author: 'Author',
|
|
133
|
+
authorUrl: 'Author URI',
|
|
134
|
+
version: 'Version',
|
|
135
|
+
license: 'License',
|
|
136
|
+
domainPath: 'Domain Path',
|
|
137
|
+
textDomain: 'Text Domain',
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=extractors-maps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractors-maps.js","sourceRoot":"","sources":["../src/extractors-maps.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACxB,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE;QACT,UAAU,EAAE;YACX,SAAS,EAAE;gBACV;oBACC,IAAI,EAAE,gBAAgB;iBACtB;aACD;YACD,YAAY,EAAE;gBACb;oBACC,IAAI,EAAE,kBAAkB;iBACxB;aACD;SACD;QACD,KAAK,EAAE;YACN,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,YAAY;iBAClB;aACD;YACD,SAAS,EAAE;gBACV;oBACC,IAAI,EAAE,eAAe;iBACrB;aACD;YACD,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,cAAc;iBACpB;aACD;SACD;QACD,OAAO,EAAE;YACR,YAAY,EAAE;gBACb;oBACC,IAAI,EAAE,iBAAiB;iBACvB;aACD;SACD;QACD,MAAM,EAAE;YACP,GAAG,EAAE;gBACJ,UAAU,EAAE;oBACX,SAAS,EAAE;wBACV;4BACC,IAAI,EAAE,gBAAgB;yBACtB;qBACD;oBACD,YAAY,EAAE;wBACb;4BACC,IAAI,EAAE,kBAAkB;yBACxB;qBACD;iBACD;gBACD,KAAK,EAAE;oBACN,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,YAAY;yBAClB;qBACD;oBACD,SAAS,EAAE;wBACV;4BACC,IAAI,EAAE,eAAe;yBACrB;qBACD;iBACD;gBACD,OAAO,EAAE;oBACR,YAAY,EAAE;wBACb;4BACC,IAAI,EAAE,iBAAiB;yBACvB;qBACD;iBACD;aACD;SACD;KACD;IACD,eAAe,EAAE;QAChB;YACC,KAAK,EAAE,sBAAsB;SAC7B;KACD;IACD,aAAa,EAAE;QACd;YACC,KAAK,EAAE,oBAAoB;SAC3B;KACD;CACQ,CAAA;AAKG,QAAA,SAAS,GAAG;IACxB,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,mBAAmB;IAChC,QAAQ,EAAE,CAAC,eAAe,CAAC;IAC3B,MAAM,EAAE;QACP;YACC,KAAK,EAAE,mBAAmB;SAC1B;KACD;IACD,UAAU,EAAE;QACX;YACC,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,CAAC,yBAAyB,CAAC;SACrC;KACD;CACQ,CAAA;AAKG,QAAA,cAAc,GAAG;IAC7B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;CACxB,CAAA;AAEY,QAAA,aAAa,GAAG;IAC5B,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,YAAY;IACjB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,aAAa;CAChB,CAAA;AAEG,QAAA,YAAY,GAAG;IAC3B,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,aAAa;CAChB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function parsePHPFile(phpContent: string): Record<string, string>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parsePHPFile = void 0;
|
|
4
|
+
const extractors_maps_1 = require("./extractors-maps");
|
|
5
|
+
function parsePHPFile(phpContent) {
|
|
6
|
+
const match = phpContent.match(/\/\*\*([\s\S]*?)\*\//);
|
|
7
|
+
if (match && match[1]) {
|
|
8
|
+
const commentBlock = match[1];
|
|
9
|
+
const lines = commentBlock.split('\n');
|
|
10
|
+
const pluginInfo = {};
|
|
11
|
+
for (const line of lines) {
|
|
12
|
+
const keyValueMatch = line.match(/^\s*\*\s*([^:]+):\s*(.*)/);
|
|
13
|
+
if (keyValueMatch && keyValueMatch[1] && keyValueMatch[2]) {
|
|
14
|
+
let header = keyValueMatch[1].trim();
|
|
15
|
+
header = extractors_maps_1.pluginHeaders[header] ?? header;
|
|
16
|
+
pluginInfo[header] = keyValueMatch[2].trim();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return pluginInfo;
|
|
20
|
+
}
|
|
21
|
+
return {};
|
|
22
|
+
}
|
|
23
|
+
exports.parsePHPFile = parsePHPFile;
|
|
24
|
+
//# sourceMappingURL=extractors-php.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractors-php.js","sourceRoot":"","sources":["../src/extractors-php.ts"],"names":[],"mappings":";;;AAAA,uDAAiD;AAQjD,SAAgB,YAAY,CAAC,UAAkB;IAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IAEtD,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEtC,MAAM,UAAU,GAA2B,EAAE,CAAA;QAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;YAE5D,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,IAAI,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBACpC,MAAM,GAAG,+BAAa,CAAC,MAAoC,CAAC,IAAI,MAAM,CAAA;gBACtE,UAAU,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC7C,CAAC;QACF,CAAC;QACD,OAAO,UAAU,CAAA;IAClB,CAAC;IACD,OAAO,EAAE,CAAA;AACV,CAAC;AArBD,oCAqBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function extractFileData(fileContent: string): Record<string, string>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractFileData = void 0;
|
|
4
|
+
const utils_1 = require("./utils");
|
|
5
|
+
function extractFileData(fileContent) {
|
|
6
|
+
const data = {};
|
|
7
|
+
fileContent
|
|
8
|
+
.split('\n')
|
|
9
|
+
.map((line) => line.trim())
|
|
10
|
+
.map((line) => (0, utils_1.removeCommentMarkup)(line))
|
|
11
|
+
.forEach((line) => {
|
|
12
|
+
const parts = line.split(':');
|
|
13
|
+
if (parts[1] === undefined) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
data[parts[0]?.trim()] = parts[1]?.trim();
|
|
17
|
+
});
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
20
|
+
exports.extractFileData = extractFileData;
|
|
21
|
+
//# sourceMappingURL=extractors-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractors-text.js","sourceRoot":"","sources":["../src/extractors-text.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAQ7C,SAAgB,eAAe,CAAC,WAAmB;IAClD,MAAM,IAAI,GAA2B,EAAE,CAAA;IAGvC,WAAW;SACT,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC;SAExC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAM;QACP,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEH,OAAO,IAAI,CAAA;AACZ,CAAC;AAlBD,0CAkBC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Args, type TranslationStrings } from './types';
|
|
2
|
+
import Parser from 'tree-sitter';
|
|
3
|
+
export declare function yieldParsedData(parsed: Record<string, any>, filename: string | Parser, filepath: string): TranslationStrings;
|
|
4
|
+
export declare function parseFile(file: string, filePath?: string): Promise<TranslationStrings | null>;
|
|
5
|
+
export declare function extractPackageJson(args: Args, fields?: {
|
|
6
|
+
name: string;
|
|
7
|
+
url: string;
|
|
8
|
+
description: string;
|
|
9
|
+
author: string;
|
|
10
|
+
version: string;
|
|
11
|
+
bugs: string;
|
|
12
|
+
license: string;
|
|
13
|
+
repository: string;
|
|
14
|
+
}): Record<string, string>;
|
|
15
|
+
export declare function extractPhpPluginData(args: Args): void;
|
|
16
|
+
export declare function extractCssThemeData(args: Args): Record<string, string> | undefined;
|
|
17
|
+
export declare function extractMainFileData(args: Args): void | Record<string, string>;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.extractMainFileData = exports.extractCssThemeData = exports.extractPhpPluginData = exports.extractPackageJson = exports.parseFile = exports.yieldParsedData = void 0;
|
|
27
|
+
const path = __importStar(require("path"));
|
|
28
|
+
const fs = __importStar(require("fs"));
|
|
29
|
+
const utils_1 = require("./utils");
|
|
30
|
+
const extractors_json_1 = require("./extractors-json");
|
|
31
|
+
const extractors_php_1 = require("./extractors-php");
|
|
32
|
+
const extractors_text_1 = require("./extractors-text");
|
|
33
|
+
const extractors_maps_1 = require("./extractors-maps");
|
|
34
|
+
const tree_1 = require("./tree");
|
|
35
|
+
function yieldParsedData(parsed, filename, filepath) {
|
|
36
|
+
const gettextTranslations = {};
|
|
37
|
+
Object.entries(parsed).map(([k, v]) => {
|
|
38
|
+
const entry = (0, extractors_json_1.jsonString)(k, v, filepath, filename);
|
|
39
|
+
gettextTranslations[entry.msgctxt ?? ''] = {
|
|
40
|
+
...(gettextTranslations[entry.msgctxt ?? ''] || {}),
|
|
41
|
+
[entry.msgid]: entry,
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
return gettextTranslations;
|
|
45
|
+
}
|
|
46
|
+
exports.yieldParsedData = yieldParsedData;
|
|
47
|
+
async function parseFile(file, filePath = '') {
|
|
48
|
+
const ext = path.extname(file).replace(/^./, '');
|
|
49
|
+
const fileRealPath = path.resolve(filePath, file);
|
|
50
|
+
if (ext === 'json') {
|
|
51
|
+
const filename = path.basename(file);
|
|
52
|
+
if (filename === 'theme.json' || filename === 'block.json') {
|
|
53
|
+
return (0, extractors_json_1.parseJsonFile)({
|
|
54
|
+
sourceCode: fs.readFileSync(path.resolve(filePath, file), 'utf8'),
|
|
55
|
+
filename: filename,
|
|
56
|
+
filepath: path.join(filePath, file),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (['ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs', 'php'].includes(ext)) {
|
|
61
|
+
const sourceCode = fs.readFileSync(file, 'utf8');
|
|
62
|
+
return (0, tree_1.doTree)(sourceCode, file);
|
|
63
|
+
}
|
|
64
|
+
return new Promise((resolve) => resolve(null));
|
|
65
|
+
}
|
|
66
|
+
exports.parseFile = parseFile;
|
|
67
|
+
function extractPackageJson(args, fields = extractors_maps_1.pkgJsonHeaders) {
|
|
68
|
+
const pkgJsonMeta = {};
|
|
69
|
+
const packageJsonPath = args.paths.cwd
|
|
70
|
+
? path.join(args.paths.cwd, 'package.json')
|
|
71
|
+
: 'package.json';
|
|
72
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
73
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
74
|
+
for (const field of Object.keys(fields)) {
|
|
75
|
+
if (packageJson[field] !== undefined) {
|
|
76
|
+
pkgJsonMeta[field] = packageJson[field];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return pkgJsonMeta;
|
|
81
|
+
}
|
|
82
|
+
exports.extractPackageJson = extractPackageJson;
|
|
83
|
+
function extractPhpPluginData(args) {
|
|
84
|
+
let fileData = {};
|
|
85
|
+
const folderPhpFile = path.join(args.paths.cwd, `${args.slug}.php`);
|
|
86
|
+
if (fs.existsSync(folderPhpFile)) {
|
|
87
|
+
const fileContent = fs.readFileSync(folderPhpFile, 'utf8');
|
|
88
|
+
fileData = (0, extractors_php_1.parsePHPFile)(fileContent);
|
|
89
|
+
if ('Plugin Name' in fileData) {
|
|
90
|
+
console.log('Plugin file detected.');
|
|
91
|
+
console.log(`Plugin file: ${folderPhpFile}`);
|
|
92
|
+
args.domain = 'plugin';
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
console.log('Plugin file not found.');
|
|
97
|
+
console.log(`Missing Plugin filename: ${folderPhpFile}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.extractPhpPluginData = extractPhpPluginData;
|
|
101
|
+
function extractCssThemeData(args) {
|
|
102
|
+
let fileData = {};
|
|
103
|
+
const styleCssFile = path.join(args.paths.cwd, 'style.css');
|
|
104
|
+
if (fs.existsSync(styleCssFile)) {
|
|
105
|
+
const fileContent = fs.readFileSync(styleCssFile, 'utf8');
|
|
106
|
+
const commentBlock = (0, utils_1.getCommentBlock)(fileContent);
|
|
107
|
+
fileData = (0, extractors_text_1.extractFileData)(commentBlock);
|
|
108
|
+
console.log('Theme stylesheet detected.');
|
|
109
|
+
console.log(`Theme stylesheet: ${styleCssFile}`);
|
|
110
|
+
args.domain = 'theme';
|
|
111
|
+
return fileData;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.log(`Theme stylesheet not found in ${styleCssFile}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.extractCssThemeData = extractCssThemeData;
|
|
118
|
+
function extractMainFileData(args) {
|
|
119
|
+
if (['plugin', 'block', 'generic'].includes(args.domain)) {
|
|
120
|
+
return extractPhpPluginData(args);
|
|
121
|
+
}
|
|
122
|
+
else if (['theme', 'theme-block'].includes(args.domain)) {
|
|
123
|
+
return extractCssThemeData(args);
|
|
124
|
+
}
|
|
125
|
+
return console.log('No main file detected.');
|
|
126
|
+
}
|
|
127
|
+
exports.extractMainFileData = extractMainFileData;
|
|
128
|
+
//# sourceMappingURL=extractors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractors.js","sourceRoot":"","sources":["../src/extractors.ts"],"names":[],"mappings":"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"}
|
package/lib/fs.d.ts
ADDED
package/lib/fs.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.writeFile = void 0;
|
|
27
|
+
const path = __importStar(require("path"));
|
|
28
|
+
const fs = __importStar(require("fs"));
|
|
29
|
+
function ensureFolderExists(folderPath) {
|
|
30
|
+
if (folderPath === undefined) {
|
|
31
|
+
return '.';
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
fs.accessSync(path.resolve(folderPath), fs.constants.R_OK | fs.constants.W_OK);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
if (error.code === 'ENOENT') {
|
|
38
|
+
fs.mkdirSync(folderPath, { recursive: true });
|
|
39
|
+
console.log(`Folder created: ${folderPath}`);
|
|
40
|
+
return folderPath;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return folderPath;
|
|
44
|
+
}
|
|
45
|
+
async function writeFile(args, fileContent, filename) {
|
|
46
|
+
if (ensureFolderExists(args.paths.out)) {
|
|
47
|
+
fs.writeFileSync(path.join(args.paths.out, filename), fileContent);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.writeFile = writeFile;
|
|
51
|
+
//# sourceMappingURL=fs.js.map
|
package/lib/fs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA4B;AAC5B,uCAAwB;AAQxB,SAAS,kBAAkB,CAAC,UAA8B;IACzD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAA;IACX,CAAC;IACD,IAAI,CAAC;QAEJ,EAAE,CAAC,UAAU,CACZ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EACxB,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CACrC,CAAA;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAExD,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC7C,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAA;YAC5C,OAAO,UAAU,CAAA;QAClB,CAAC;IACF,CAAC;IACD,OAAO,UAAU,CAAA;AAClB,CAAC;AAQM,KAAK,UAAU,SAAS,CAC9B,IAAU,EACV,WAAmB,EACnB,QAAgB;IAEhB,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAA;IACnE,CAAC;AACF,CAAC;AARD,8BAQC"}
|
package/lib/glob.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Parser from 'tree-sitter';
|
|
2
|
+
import type { Args, Patterns } from './types';
|
|
3
|
+
import { Glob, Path } from 'glob';
|
|
4
|
+
export declare function getParser(file: string): string | Parser;
|
|
5
|
+
export declare const ignoreFunc: (filePath: Path, excludedPatterns: string[]) => boolean;
|
|
6
|
+
export declare function getFiles(args: Args, pattern: Patterns): Promise<Glob<{
|
|
7
|
+
ignore: {
|
|
8
|
+
ignored: (p: Path) => boolean;
|
|
9
|
+
};
|
|
10
|
+
nodir: true;
|
|
11
|
+
cwd: string;
|
|
12
|
+
root: string | undefined;
|
|
13
|
+
}>>;
|
package/lib/glob.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
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.getFiles = exports.ignoreFunc = exports.getParser = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const glob_1 = require("glob");
|
|
9
|
+
const minimatch_1 = require("minimatch");
|
|
10
|
+
const tree_sitter_javascript_1 = __importDefault(require("tree-sitter-javascript"));
|
|
11
|
+
const tree_sitter_typescript_1 = __importDefault(require("tree-sitter-typescript"));
|
|
12
|
+
const tree_sitter_php_1 = __importDefault(require("tree-sitter-php"));
|
|
13
|
+
const utils_1 = require("./utils");
|
|
14
|
+
function getParser(file) {
|
|
15
|
+
const ext = file.split('.').pop();
|
|
16
|
+
switch (ext) {
|
|
17
|
+
case 'ts':
|
|
18
|
+
return tree_sitter_typescript_1.default.typescript;
|
|
19
|
+
case 'tsx':
|
|
20
|
+
return tree_sitter_typescript_1.default.tsx;
|
|
21
|
+
case 'js':
|
|
22
|
+
case 'jsx':
|
|
23
|
+
case 'mjs':
|
|
24
|
+
case 'cjs':
|
|
25
|
+
return tree_sitter_javascript_1.default;
|
|
26
|
+
case 'php':
|
|
27
|
+
return tree_sitter_php_1.default;
|
|
28
|
+
default:
|
|
29
|
+
return ext;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.getParser = getParser;
|
|
33
|
+
const ignoreFunc = (filePath, excludedPatterns) => {
|
|
34
|
+
return excludedPatterns.some((exclude) => {
|
|
35
|
+
const type = (0, utils_1.detectPatternType)(exclude);
|
|
36
|
+
switch (type) {
|
|
37
|
+
case 'file':
|
|
38
|
+
return filePath.isNamed(exclude);
|
|
39
|
+
case 'directory':
|
|
40
|
+
return filePath.relative().includes(exclude);
|
|
41
|
+
default:
|
|
42
|
+
return (0, minimatch_1.minimatch)(filePath.relative(), exclude);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
exports.ignoreFunc = ignoreFunc;
|
|
47
|
+
async function getFiles(args, pattern) {
|
|
48
|
+
if (!args.options?.silent)
|
|
49
|
+
console.log('Searching in :', path_1.default.resolve(args.paths.cwd), 'for ' + pattern.include.join(), '\nignoring patterns: ' + pattern.exclude.join());
|
|
50
|
+
return new glob_1.Glob(pattern.include, {
|
|
51
|
+
ignore: {
|
|
52
|
+
ignored: (p) => (0, exports.ignoreFunc)(p, pattern.exclude),
|
|
53
|
+
},
|
|
54
|
+
nodir: true,
|
|
55
|
+
cwd: args.paths.cwd,
|
|
56
|
+
root: args.paths.root ? path_1.default.resolve(args.paths.root) : undefined,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
exports.getFiles = getFiles;
|
|
60
|
+
//# sourceMappingURL=glob.js.map
|
package/lib/glob.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":";;;;;;AACA,gDAAuB;AAEvB,+BAAiC;AACjC,yCAAqC;AAGrC,oFAA+C;AAE/C,oFAAuC;AAEvC,sEAAiC;AACjC,mCAA2C;AAQ3C,SAAgB,SAAS,CAAC,IAAY;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IACjC,QAAQ,GAAG,EAAE,CAAC;QACb,KAAK,IAAI;YACR,OAAO,gCAAE,CAAC,UAAU,CAAA;QACrB,KAAK,KAAK;YACT,OAAO,gCAAE,CAAC,GAAG,CAAA;QACd,KAAK,IAAI,CAAC;QACV,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACT,OAAO,gCAAU,CAAA;QAClB,KAAK,KAAK;YACT,OAAO,yBAAG,CAAA;QACX;YACC,OAAO,GAAI,CAAA;IACb,CAAC;AACF,CAAC;AAjBD,8BAiBC;AAGM,MAAM,UAAU,GAAG,CACzB,QAAc,EACd,gBAA0B,EAChB,EAAE;IACZ,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,IAAA,yBAAiB,EAAC,OAAO,CAAC,CAAA;QAEvC,QAAQ,IAAI,EAAE,CAAC;YACd,KAAK,MAAM;gBACV,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACjC,KAAK,WAAW;gBACf,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC7C;gBAEC,OAAO,IAAA,qBAAS,EAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAA;QAChD,CAAC;IACF,CAAC,CAAY,CAAA;AACd,CAAC,CAAA;AAjBY,QAAA,UAAU,cAiBtB;AASM,KAAK,UAAU,QAAQ,CAAC,IAAU,EAAE,OAAiB;IAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;QACxB,OAAO,CAAC,GAAG,CACV,gBAAgB,EAChB,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAC5B,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAC/B,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAChD,CAAA;IAGF,OAAO,IAAI,WAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QAChC,MAAM,EAAE;YACP,OAAO,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,IAAA,kBAAU,EAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;SACpD;QACD,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;QACnB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC,CAAA;AACH,CAAC;AAlBD,4BAkBC"}
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const makePot_1 = require("./makePot");
|
|
8
|
+
const cliArgs_1 = require("./cliArgs");
|
|
9
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
10
|
+
const args = (0, cliArgs_1.getArgs)();
|
|
11
|
+
if (Object.keys(args).length > 0) {
|
|
12
|
+
const timeStart = new Date();
|
|
13
|
+
(0, makePot_1.makePot)(args)
|
|
14
|
+
.then(() => {
|
|
15
|
+
const timeEnd = new Date();
|
|
16
|
+
console.log(`🚀 Translation Pot file created in ${timeEnd.getTime() - timeStart.getTime()}ms`);
|
|
17
|
+
})
|
|
18
|
+
.catch((error) => {
|
|
19
|
+
console.error(error);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
yargs_1.default.showHelp();
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,uCAAmC;AAEnC,uCAAmC;AAEnC,kDAAyB;AAGzB,MAAM,IAAI,GAAG,IAAA,iBAAO,GAAE,CAAA;AACtB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;IAC5B,IAAA,iBAAO,EAAC,IAAI,CAAC;SACX,IAAI,CAAC,GAAG,EAAE;QACV,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAA;QAC1B,OAAO,CAAC,GAAG,CACV,sCAAsC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CACjF,CAAA;IACF,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;AACJ,CAAC;KAAM,CAAC;IACP,eAAK,CAAC,QAAQ,EAAE,CAAA;AACjB,CAAC"}
|
package/lib/makePot.d.ts
ADDED
package/lib/makePot.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
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.makePot = void 0;
|
|
7
|
+
const extractors_1 = require("./extractors");
|
|
8
|
+
const fs_1 = require("./fs");
|
|
9
|
+
const parser_1 = require("./parser");
|
|
10
|
+
const node_os_1 = require("node:os");
|
|
11
|
+
const gettext_parser_1 = __importDefault(require("gettext-parser"));
|
|
12
|
+
const utils_1 = require("./utils");
|
|
13
|
+
async function exec(args) {
|
|
14
|
+
if (!args.options?.silent) {
|
|
15
|
+
console.log('📝 Making a pot file...');
|
|
16
|
+
console.log('🔍 Extracting strings...', args?.slug, args);
|
|
17
|
+
}
|
|
18
|
+
const stringsJson = await (0, parser_1.runExtract)(args);
|
|
19
|
+
if (!args.options?.silent) {
|
|
20
|
+
console.log('Memory usage:', (process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2), 'MB (Total:', ((0, node_os_1.totalmem)() / 1024 / 1024 / 1024).toFixed(2), 'GB)\n', 'Cpu User:', (process.cpuUsage().user / 1000000).toFixed(2), 'ms Cpu System:', (process.cpuUsage().system / 1000000).toFixed(2), 'ms of', (0, node_os_1.cpus)().length, 'cores');
|
|
21
|
+
}
|
|
22
|
+
if (args.options?.skip.audit) {
|
|
23
|
+
console.log('Audit strings...');
|
|
24
|
+
console.log('✅ Done');
|
|
25
|
+
}
|
|
26
|
+
const getTextTranslations = {
|
|
27
|
+
charset: 'iso-8859-1',
|
|
28
|
+
headers: {
|
|
29
|
+
'': args.headers?.fileComment ?? (0, utils_1.generateHeaderComments)(args),
|
|
30
|
+
},
|
|
31
|
+
translations: stringsJson,
|
|
32
|
+
};
|
|
33
|
+
if (args.headers && Object.values(args.headers).length)
|
|
34
|
+
Object.entries(args.headers).map((header) => (getTextTranslations.headers[header[0]] =
|
|
35
|
+
typeof header[1] === 'string'
|
|
36
|
+
? header[1]
|
|
37
|
+
: JSON.stringify(header[1])));
|
|
38
|
+
if (args.options?.json) {
|
|
39
|
+
return JSON.stringify(getTextTranslations);
|
|
40
|
+
}
|
|
41
|
+
return gettext_parser_1.default.po
|
|
42
|
+
.compile(getTextTranslations, {
|
|
43
|
+
sort: true,
|
|
44
|
+
})
|
|
45
|
+
.toString('utf-8');
|
|
46
|
+
}
|
|
47
|
+
async function makePot(args) {
|
|
48
|
+
const metadata = (0, extractors_1.extractMainFileData)(args);
|
|
49
|
+
const pkgData = (0, extractors_1.extractPackageJson)(args);
|
|
50
|
+
const headers = { ...pkgData, ...metadata, ...args.headers };
|
|
51
|
+
args = { ...args, headers };
|
|
52
|
+
const jsonTranslations = await exec(args);
|
|
53
|
+
return await (0, fs_1.writeFile)(args, jsonTranslations, `${args?.slug}.${args.options?.json ? 'json' : 'pot'}`);
|
|
54
|
+
}
|
|
55
|
+
exports.makePot = makePot;
|
|
56
|
+
//# sourceMappingURL=makePot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makePot.js","sourceRoot":"","sources":["../src/makePot.ts"],"names":[],"mappings":";;;;;;AACA,6CAAsE;AACtE,6BAAgC;AAChC,qCAAqC;AACrC,qCAAwC;AACxC,oEAAmE;AACnE,mCAAgD;AAQhD,KAAK,UAAU,IAAI,CAAC,IAAU;IAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAA;IAE1C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CACV,eAAe,EACf,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACzD,YAAY,EACZ,CAAC,IAAA,kBAAQ,GAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAC5C,OAAO,EACP,WAAW,EACX,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAC9C,gBAAgB,EAChB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAChD,OAAO,EACP,IAAA,cAAI,GAAE,CAAC,MAAM,EACb,OAAO,CACP,CAAA;IACF,CAAC;IAGD,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAE/B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC;IAGD,MAAM,mBAAmB,GAAwB;QAChD,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE;YACR,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,IAAA,8BAAsB,EAAC,IAAI,CAAC;SAC7D;QACD,YAAY,EAAE,WAAW;KACzB,CAAA;IAGD,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM;QACrD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAC/B,CAAC,MAAM,EAAE,EAAE,CACV,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ;gBAC5B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACX,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/B,CAAA;IAGF,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;IAC3C,CAAC;IAGD,OAAO,wBAAa,CAAC,EAAE;SACrB,OAAO,CAAC,mBAAmB,EAAE;QAC7B,IAAI,EAAE,IAAI;KACV,CAAC;SACD,QAAQ,CAAC,OAAO,CAAC,CAAA;AACpB,CAAC;AAQM,KAAK,UAAU,OAAO,CAAC,IAAU;IAEvC,MAAM,QAAQ,GAAG,IAAA,gCAAmB,EAAC,IAAI,CAAC,CAAA;IAE1C,MAAM,OAAO,GAAG,IAAA,+BAAkB,EAAC,IAAI,CAAC,CAAA;IAExC,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;IAE5D,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAU,CAAA;IAEnC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;IAEzC,OAAO,MAAM,IAAA,cAAS,EACrB,IAAI,EACJ,gBAAgB,EAChB,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CACtD,CAAA;AACF,CAAC;AAjBD,0BAiBC"}
|
package/lib/parser.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Args, TranslationStrings } from './types';
|
|
2
|
+
import { Glob } from 'glob';
|
|
3
|
+
export declare function getStrings(args: Args, files: Glob<{
|
|
4
|
+
cwd: string;
|
|
5
|
+
}>): Promise<TranslationStrings>;
|
|
6
|
+
export declare function runExtract(args: Args): Promise<TranslationStrings>;
|