@mapsight/traffic-style 5.0.0 → 5.0.2
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/meta.json +1 -1
- package/package.json +5 -5
- package/scripts/create-meta-json.d.ts +2 -0
- package/scripts/create-meta-json.d.ts.map +1 -0
- package/scripts/create-meta-json.js +79 -0
- package/scripts/create-meta-json.js.map +1 -0
- package/scripts/create-overview-md.d.ts +2 -0
- package/scripts/create-overview-md.d.ts.map +1 -0
- package/scripts/create-overview-md.js +72 -0
- package/scripts/create-overview-md.js.map +1 -0
- package/scripts/lib/meta.d.ts +32 -0
- package/scripts/lib/meta.d.ts.map +1 -0
- package/scripts/lib/meta.js +23 -0
- package/scripts/lib/meta.js.map +1 -0
- package/scripts/optimize-icons.d.ts +47 -0
- package/scripts/optimize-icons.d.ts.map +1 -0
- package/scripts/optimize-icons.js +477 -0
- package/scripts/optimize-icons.js.map +1 -0
- package/scripts/optimize-icons.test.d.ts +2 -0
- package/scripts/optimize-icons.test.d.ts.map +1 -0
- package/scripts/optimize-icons.test.js +179 -0
- package/scripts/optimize-icons.test.js.map +1 -0
- package/scripts/traffic-icon-sprite.d.ts +3 -0
- package/scripts/traffic-icon-sprite.d.ts.map +1 -0
- package/scripts/traffic-icon-sprite.js +212 -0
- package/scripts/traffic-icon-sprite.js.map +1 -0
package/meta.json
CHANGED
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mapsight/traffic-style",
|
|
3
3
|
"description": "Mapsight Traffic Style",
|
|
4
|
-
"version": "5.0.
|
|
4
|
+
"version": "5.0.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"traffic-icon-sprite": "scripts/traffic-icon-sprite.
|
|
8
|
-
"traffic-optimize-icons": "scripts/optimize-icons.
|
|
7
|
+
"traffic-icon-sprite": "scripts/traffic-icon-sprite.js",
|
|
8
|
+
"traffic-optimize-icons": "scripts/optimize-icons.js"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"merge-stream": "^2.0.0",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"linkDirectory": true
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
|
-
"build": "npm-run-all build:setup build:meta --parallel build:icons build:icons2x build:iconsSvg build:docs --sequential build:icon-sprites build:styles copy",
|
|
36
|
+
"build": "npm-run-all build:setup build:meta --parallel build:scripts build:icons build:icons2x build:iconsSvg build:docs --sequential build:icon-sprites build:styles copy",
|
|
37
37
|
"build:docs": "run-p build:docs:overview",
|
|
38
38
|
"build:docs:overview": "node scripts/create-overview-md.ts ./src/icons/ ../img/mapsight-icons-svg/ > dist/docs/overview.md",
|
|
39
39
|
"build:icon-sprites": "run-p build:icon-sprites:*",
|
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"build:icons2x": "node scripts/optimize-icons.ts --scale 2 --src ./src/icons/ --dest ./dist/img/mapsight-icons-2x/",
|
|
44
44
|
"build:iconsSvg": "node scripts/optimize-icons.ts --target svg --src ./src/icons/ --dest ./dist/img/mapsight-icons-svg/",
|
|
45
45
|
"build:meta": "node scripts/create-meta-json.ts ./src/meta.json ./src/icons/ > dist/meta.json",
|
|
46
|
+
"build:scripts": "tsc",
|
|
46
47
|
"build:setup": "mkdirp dist/docs && mkdirp dist/img",
|
|
47
48
|
"build:styles": "vector-style-compiler src/scss/default.scss --output tmp/mapsight-vector-styles --name default && cp tmp/mapsight-vector-styles/default.css dist",
|
|
48
49
|
"clean": "rimraf tmp/* dist/*",
|
|
49
50
|
"clean-build": "run-s clean build",
|
|
50
51
|
"copy": "run-p copy:src copy:misc",
|
|
51
52
|
"copy:misc": "cp package.json README.md *.scss dist/",
|
|
52
|
-
"copy:scripts": "mkdirp dist; cp -r scripts dist/",
|
|
53
53
|
"copy:src": "mkdirp dist/src; cp -r src/scss dist/src/",
|
|
54
54
|
"lint": "eslint scripts",
|
|
55
55
|
"typecheck": "tsc --noEmit",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-meta-json.d.ts","sourceRoot":"","sources":["../../scripts/create-meta-json.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { readFile, readdir } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
const colors = {
|
|
4
|
+
red: (str) => `\x1b[31m${str}\x1b[0m`,
|
|
5
|
+
yellow: (str) => `\x1b[33m${str}\x1b[0m`,
|
|
6
|
+
};
|
|
7
|
+
function parseIconName(fileName) {
|
|
8
|
+
const parts = fileName.split(".");
|
|
9
|
+
if (parts.length < 2) {
|
|
10
|
+
throw new Error("Invalid file name: no extension");
|
|
11
|
+
}
|
|
12
|
+
const main = parts[0];
|
|
13
|
+
const suffix = parts[1];
|
|
14
|
+
const nameParts = main.split("-");
|
|
15
|
+
if (nameParts.length < 1) {
|
|
16
|
+
throw new Error("Invalid file name: no parts");
|
|
17
|
+
}
|
|
18
|
+
const variant = nameParts.pop();
|
|
19
|
+
const name = nameParts.join("-");
|
|
20
|
+
return {
|
|
21
|
+
fileName,
|
|
22
|
+
name,
|
|
23
|
+
variant,
|
|
24
|
+
suffix,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async function main() {
|
|
28
|
+
const argv = process.argv;
|
|
29
|
+
const [, , metaPath, srcPath] = argv;
|
|
30
|
+
if (!metaPath) {
|
|
31
|
+
throw new Error("argument metaPath missing");
|
|
32
|
+
}
|
|
33
|
+
if (!srcPath) {
|
|
34
|
+
throw new Error("argument srcPath missing");
|
|
35
|
+
}
|
|
36
|
+
const metaDataContent = await readFile(path.resolve(metaPath), "utf8");
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
38
|
+
const metaData = JSON.parse(metaDataContent);
|
|
39
|
+
const packageJsonContent = await readFile("package.json", "utf8");
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
41
|
+
const packageJson = JSON.parse(packageJsonContent);
|
|
42
|
+
if (!metaData.icons) {
|
|
43
|
+
console.error(colors.red("ERROR: No Icons field found in src/meta.json!"));
|
|
44
|
+
}
|
|
45
|
+
const result = {
|
|
46
|
+
name: packageJson.name,
|
|
47
|
+
version: packageJson.version,
|
|
48
|
+
copyright: metaData.copyright || "Open Mapsight",
|
|
49
|
+
defaultIcon: metaData.defaultIcon,
|
|
50
|
+
icons: [],
|
|
51
|
+
};
|
|
52
|
+
const files = await readdir(srcPath);
|
|
53
|
+
const icons = files
|
|
54
|
+
.filter((fileName) => /(\.webp|\.png|\.svg)$/.test(fileName))
|
|
55
|
+
.map((iconFile) => parseIconName(iconFile));
|
|
56
|
+
const variants = [...new Set(icons.map(({ variant }) => variant))];
|
|
57
|
+
const iconGroups = icons.reduce((groups, icon) => ({
|
|
58
|
+
...groups,
|
|
59
|
+
[icon.name]: {
|
|
60
|
+
...(groups[icon.name] || {}),
|
|
61
|
+
[icon.variant]: icon,
|
|
62
|
+
},
|
|
63
|
+
}), {});
|
|
64
|
+
Object.keys(iconGroups).forEach((name) => {
|
|
65
|
+
if (metaData.icons && !metaData.icons[name]) {
|
|
66
|
+
console.warn(colors.yellow('WARNING: Icon "' +
|
|
67
|
+
name +
|
|
68
|
+
'" is not specified in src/meta.json!'));
|
|
69
|
+
}
|
|
70
|
+
result.icons.push({
|
|
71
|
+
...((metaData.icons && metaData.icons[name]) || {}),
|
|
72
|
+
id: name,
|
|
73
|
+
variants: variants,
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
console.log(JSON.stringify(result, null, 4));
|
|
77
|
+
}
|
|
78
|
+
main().catch(console.error);
|
|
79
|
+
//# sourceMappingURL=create-meta-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-meta-json.js","sourceRoot":"","sources":["../../scripts/create-meta-json.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-overview-md.d.ts","sourceRoot":"","sources":["../../scripts/create-overview-md.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { readFile, readdir } from "fs/promises";
|
|
2
|
+
import table from "markdown-table";
|
|
3
|
+
function parseIconName(fileName) {
|
|
4
|
+
const parts = fileName.split(".");
|
|
5
|
+
if (parts.length < 2) {
|
|
6
|
+
throw new Error("Invalid file name: no extension");
|
|
7
|
+
}
|
|
8
|
+
const [main = "", suffix = ""] = parts;
|
|
9
|
+
const nameParts = main.split("-");
|
|
10
|
+
if (nameParts.length < 1) {
|
|
11
|
+
throw new Error("Invalid file name: no variant");
|
|
12
|
+
}
|
|
13
|
+
const variant = nameParts.pop();
|
|
14
|
+
const name = nameParts.join("-");
|
|
15
|
+
return {
|
|
16
|
+
fileName,
|
|
17
|
+
name,
|
|
18
|
+
variant,
|
|
19
|
+
suffix,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function iconGroupsToRows(variants, iconGroups, imgPath, metaData) {
|
|
23
|
+
return Object.keys(iconGroups).map((name) => [
|
|
24
|
+
name,
|
|
25
|
+
metaData.icons[name]?.label.de || "",
|
|
26
|
+
metaData.icons[name]?.label.en || "",
|
|
27
|
+
...variants.map((variant) => {
|
|
28
|
+
const icon = iconGroups[name]?.[variant];
|
|
29
|
+
return icon
|
|
30
|
+
? ``
|
|
31
|
+
: "-/-";
|
|
32
|
+
}),
|
|
33
|
+
metaData.icons[name]?.aliases
|
|
34
|
+
? JSON.stringify(metaData.icons[name].aliases)
|
|
35
|
+
: "",
|
|
36
|
+
metaData.icons[name]?.groups
|
|
37
|
+
? JSON.stringify(metaData.icons[name].groups)
|
|
38
|
+
: "",
|
|
39
|
+
]);
|
|
40
|
+
}
|
|
41
|
+
async function main() {
|
|
42
|
+
const argv = process.argv;
|
|
43
|
+
const [, , srcPath, imgPath] = argv;
|
|
44
|
+
if (!srcPath) {
|
|
45
|
+
throw new Error("argument srcPath missing");
|
|
46
|
+
}
|
|
47
|
+
if (!imgPath) {
|
|
48
|
+
throw new Error("argument imgPath missing");
|
|
49
|
+
}
|
|
50
|
+
const metaDataContent = await readFile("src/meta.json", "utf8");
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
52
|
+
const metaData = JSON.parse(metaDataContent);
|
|
53
|
+
const files = await readdir(srcPath);
|
|
54
|
+
const icons = files
|
|
55
|
+
.filter((fileName) => /(\.webp|\.png|\.svg)$/.test(fileName))
|
|
56
|
+
.map((iconFile) => parseIconName(iconFile));
|
|
57
|
+
const variants = [...new Set(icons.map(({ variant }) => variant))];
|
|
58
|
+
const iconGroups = icons.reduce((groups, icon) => ({
|
|
59
|
+
...groups,
|
|
60
|
+
[icon.name]: {
|
|
61
|
+
...(groups[icon.name] || {}),
|
|
62
|
+
[icon.variant]: icon,
|
|
63
|
+
},
|
|
64
|
+
}), {});
|
|
65
|
+
const iconTable = [
|
|
66
|
+
["Name", "Label (de)", "Label (en)", ...variants, "Aliases", "Groups"],
|
|
67
|
+
...iconGroupsToRows(variants, iconGroups, imgPath, metaData),
|
|
68
|
+
];
|
|
69
|
+
console.log(table(iconTable));
|
|
70
|
+
}
|
|
71
|
+
main().catch(console.error);
|
|
72
|
+
//# sourceMappingURL=create-overview-md.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-overview-md.js","sourceRoot":"","sources":["../../scripts/create-overview-md.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export type IconVariant = z.infer<typeof IconVariantSchema>;
|
|
3
|
+
export declare const IconVariantSchema: z.ZodCustomStringFormat<"mapsight-icon-variant">;
|
|
4
|
+
export type IconId = z.infer<typeof IconIdSchema>;
|
|
5
|
+
export declare const IconIdSchema: z.ZodCustomStringFormat<"mapsight-icon-id">;
|
|
6
|
+
export type LangCode = z.infer<typeof LangCodeSchema>;
|
|
7
|
+
export declare const LangCodeSchema: z.ZodCustomStringFormat<"mapsight-lang-code">;
|
|
8
|
+
export type IconGroupName = z.infer<typeof IconGroupNameSchema>;
|
|
9
|
+
export declare const IconGroupNameSchema: z.ZodCustomStringFormat<"mapsight-icon-group">;
|
|
10
|
+
export type IconMeta = z.infer<typeof IconMetaSchema>;
|
|
11
|
+
export declare const IconMetaSchema: z.ZodObject<{
|
|
12
|
+
id: z.ZodCustomStringFormat<"mapsight-icon-id">;
|
|
13
|
+
label: z.ZodOptional<z.ZodRecord<z.ZodCustomStringFormat<"mapsight-lang-code">, z.ZodString>>;
|
|
14
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodCustomStringFormat<"mapsight-icon-id">>>;
|
|
15
|
+
groups: z.ZodOptional<z.ZodArray<z.ZodCustomStringFormat<"mapsight-icon-group">>>;
|
|
16
|
+
fallback: z.ZodOptional<z.ZodCustomStringFormat<"mapsight-icon-id">>;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export type MetaData = z.infer<typeof DistMetaDataSchema>;
|
|
19
|
+
export declare const DistMetaDataSchema: z.ZodObject<{
|
|
20
|
+
name: z.ZodString;
|
|
21
|
+
version: z.ZodString;
|
|
22
|
+
copyright: z.ZodString;
|
|
23
|
+
defaultIcon: z.ZodCustomStringFormat<"mapsight-icon-id">;
|
|
24
|
+
icons: z.ZodArray<z.ZodObject<{
|
|
25
|
+
id: z.ZodCustomStringFormat<"mapsight-icon-id">;
|
|
26
|
+
label: z.ZodOptional<z.ZodRecord<z.ZodCustomStringFormat<"mapsight-lang-code">, z.ZodString>>;
|
|
27
|
+
aliases: z.ZodOptional<z.ZodArray<z.ZodCustomStringFormat<"mapsight-icon-id">>>;
|
|
28
|
+
groups: z.ZodOptional<z.ZodArray<z.ZodCustomStringFormat<"mapsight-icon-group">>>;
|
|
29
|
+
fallback: z.ZodOptional<z.ZodCustomStringFormat<"mapsight-icon-id">>;
|
|
30
|
+
}, z.core.$strip>>;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../scripts/lib/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,QAAQ,CAAC;AAEzB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,eAAO,MAAM,iBAAiB,kDAG7B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,eAAO,MAAM,YAAY,6CAAmD,CAAC;AAE7E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,eAAO,MAAM,cAAc,+CAAmD,CAAC;AAE/E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,eAAO,MAAM,mBAAmB,gDAG/B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,eAAO,MAAM,cAAc;;;;;;iBASzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC1D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAM7B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export const IconVariantSchema = z.stringFormat("mapsight-icon-variant", /[a-z]+/);
|
|
3
|
+
export const IconIdSchema = z.stringFormat("mapsight-icon-id", /[0-9a-z-]+/);
|
|
4
|
+
export const LangCodeSchema = z.stringFormat("mapsight-lang-code", /[a-z]{2}/);
|
|
5
|
+
export const IconGroupNameSchema = z.stringFormat("mapsight-icon-group", /[0-9a-z-]+/);
|
|
6
|
+
export const IconMetaSchema = z.object({
|
|
7
|
+
// The label object has dynamic keys for languages (e.g., "de", "en", "en_US")
|
|
8
|
+
// and string values for the text.
|
|
9
|
+
id: IconIdSchema,
|
|
10
|
+
label: z.record(LangCodeSchema, z.string()).optional(),
|
|
11
|
+
aliases: z.array(IconIdSchema).optional(),
|
|
12
|
+
groups: z.array(IconGroupNameSchema).optional(),
|
|
13
|
+
// The fallback field is optional.
|
|
14
|
+
fallback: IconIdSchema.optional(),
|
|
15
|
+
});
|
|
16
|
+
export const DistMetaDataSchema = z.object({
|
|
17
|
+
name: z.string(),
|
|
18
|
+
version: z.string(),
|
|
19
|
+
copyright: z.string(),
|
|
20
|
+
defaultIcon: IconIdSchema,
|
|
21
|
+
icons: z.array(IconMetaSchema),
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../scripts/lib/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,QAAQ,CAAC;AAGzB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAC9C,uBAAuB,EACvB,QAAQ,CACR,CAAC;AAGF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;AAG7E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,YAAY,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;AAG/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAChD,qBAAqB,EACrB,YAAY,CACZ,CAAC;AAGF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,8EAA8E;IAC9E,kCAAkC;IAClC,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IAC/C,kCAAkC;IAClC,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,YAAY;IACzB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;CAC9B,CAAC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
|
+
type ResultStatus = "processed" | "skipped" | "failed";
|
|
4
|
+
type SourceKind = "svg" | "png";
|
|
5
|
+
type TargetFormat = "svg" | "png" | "webp";
|
|
6
|
+
declare const ManifestSchema: z.ZodObject<{
|
|
7
|
+
version: z.ZodNumber;
|
|
8
|
+
configHash: z.ZodString;
|
|
9
|
+
files: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
10
|
+
srcMtimeMs: z.ZodNumber;
|
|
11
|
+
srcSize: z.ZodNumber;
|
|
12
|
+
outputs: z.ZodArray<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
type Manifest = z.infer<typeof ManifestSchema>;
|
|
16
|
+
interface FileJob {
|
|
17
|
+
absSource: string;
|
|
18
|
+
relSource: string;
|
|
19
|
+
kind: SourceKind;
|
|
20
|
+
outputs: string[];
|
|
21
|
+
absOutSvg?: string;
|
|
22
|
+
absOutPng?: string;
|
|
23
|
+
absOutWebp?: string;
|
|
24
|
+
}
|
|
25
|
+
interface ProcessResult {
|
|
26
|
+
source: string;
|
|
27
|
+
status: ResultStatus;
|
|
28
|
+
error?: unknown;
|
|
29
|
+
}
|
|
30
|
+
declare function main(): Promise<void>;
|
|
31
|
+
declare function discoverJobs(srcDir: string, destDir: string, targets: Set<TargetFormat>): Promise<FileJob[]>;
|
|
32
|
+
interface ProcessJobArgs {
|
|
33
|
+
job: FileJob;
|
|
34
|
+
previousManifest: Manifest;
|
|
35
|
+
nextManifest: Manifest;
|
|
36
|
+
cacheUsable: boolean;
|
|
37
|
+
force: boolean;
|
|
38
|
+
scale: number;
|
|
39
|
+
verbose: boolean;
|
|
40
|
+
absDest: string;
|
|
41
|
+
}
|
|
42
|
+
declare function processJob(args: ProcessJobArgs): Promise<ProcessResult>;
|
|
43
|
+
declare function hashConfig(value: unknown): string;
|
|
44
|
+
declare function getScaledDimension(original: number | undefined, scaleValue: number): number | undefined;
|
|
45
|
+
export declare function runMain(): Promise<void>;
|
|
46
|
+
export { main, discoverJobs, processJob, hashConfig, getScaledDimension };
|
|
47
|
+
//# sourceMappingURL=optimize-icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optimize-icons.d.ts","sourceRoot":"","sources":["../../scripts/optimize-icons.ts"],"names":[],"mappings":";AAiBA,OAAO,EAAC,CAAC,EAAC,MAAM,QAAQ,CAAC;AAEzB,KAAK,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AACvD,KAAK,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC;AAChC,KAAK,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAU3C,QAAA,MAAM,cAAc;;;;;;;;iBAIlB,CAAC;AAEH,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE/C,UAAU,OAAO;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,aAAa;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAuBD,iBAAe,IAAI,kBAoKlB;AAED,iBAAe,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,GACxB,OAAO,CAAC,OAAO,EAAE,CAAC,CAyEpB;AAED,UAAU,cAAc;IACvB,GAAG,EAAE,OAAO,CAAC;IACb,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,YAAY,EAAE,QAAQ,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,iBAAe,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAmDtE;AA6MD,iBAAS,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK1C;AAED,iBAAS,kBAAkB,CAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAYpB;AAgED,wBAAgB,OAAO,kBAEtB;AASD,OAAO,EAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAC,CAAC"}
|