import/export cleanup

This commit is contained in:
be5invis 2021-07-28 20:13:04 -07:00
parent ead4159c55
commit 82913e9d7a
48 changed files with 195 additions and 234 deletions

View file

@ -2277,12 +2277,14 @@ Alongside stylistic sets, Monospace Iosevka can also be configured to cherry-pic
<td rowspan="2"><code>cv87</code></td> <td rowspan="2"><code>cv87</code></td>
<td colspan="2"><img src="images/character-variant-cv87-1.png" width="64"/></td> <td colspan="2"><img src="images/character-variant-cv87-1.png" width="64"/></td>
<td colspan="2"><img src="images/character-variant-cv87-2.png" width="64"/></td> <td colspan="2"><img src="images/character-variant-cv87-2.png" width="64"/></td>
<td colspan="8"> </td> <td colspan="2"><img src="images/character-variant-cv87-3.png" width="64"/></td>
<td colspan="6"> </td>
</tr> </tr>
<tr> <tr>
<td colspan="2">1</td> <td colspan="2">1</td>
<td colspan="2">2</td> <td colspan="2">2</td>
<td colspan="8"> </td> <td colspan="2">3</td>
<td colspan="6"> </td>
</tr> </tr>
<tr> <tr>
<td rowspan="2"><code>cv88</code></td> <td rowspan="2"><code>cv88</code></td>
@ -2920,7 +2922,7 @@ Subsection `variants` is used to configure character variants in the font. Prope
- Styles for `(`, `)`: - Styles for `(`, `)`:
<table><tr><td rowspan="2" width="92"><img src="images/character-variant-cv86-1.png" width="64"/></td><td><code>paren = 'normal'</code>, <code>cv86 = 1</code></td></tr><tr><td>Parenthesis with normal contour</td></tr><tr><td rowspan="2" width="92"><img src="images/character-variant-cv86-2.png" width="64"/></td><td><code>paren = 'large-contour'</code>, <code>cv86 = 2</code></td></tr><tr><td>Parenthesis with larger contour, like that in Monaco</td></tr><tr><td rowspan="2" width="92"><img src="images/character-variant-cv86-3.png" width="64"/></td><td><code>paren = 'flat-arc'</code>, <code>cv86 = 3</code></td></tr><tr><td>Parenthesis with flat arc, like that in JetBrains Mono</td></tr></table> <table><tr><td rowspan="2" width="92"><img src="images/character-variant-cv86-1.png" width="64"/></td><td><code>paren = 'normal'</code>, <code>cv86 = 1</code></td></tr><tr><td>Parenthesis with normal contour</td></tr><tr><td rowspan="2" width="92"><img src="images/character-variant-cv86-2.png" width="64"/></td><td><code>paren = 'large-contour'</code>, <code>cv86 = 2</code></td></tr><tr><td>Parenthesis with larger contour, like that in Monaco</td></tr><tr><td rowspan="2" width="92"><img src="images/character-variant-cv86-3.png" width="64"/></td><td><code>paren = 'flat-arc'</code>, <code>cv86 = 3</code></td></tr><tr><td>Parenthesis with flat arc, like that in JetBrains Mono</td></tr></table>
- Styles for `{`, `}`: - Styles for `{`, `}`:
<table><tr><td rowspan="2" width="92"><img src="images/character-variant-cv87-1.png" width="64"/></td><td><code>brace = 'straight'</code>, <code>cv87 = 1</code></td></tr><tr><td>More straight braces</td></tr><tr><td rowspan="2" width="92"><img src="images/character-variant-cv87-2.png" width="64"/></td><td><code>brace = 'curly'</code>, <code>cv87 = 2</code></td></tr><tr><td>More curly braces</td></tr></table> <table><tr><td rowspan="2" width="92"><img src="images/character-variant-cv87-1.png" width="64"/></td><td><code>brace = 'straight'</code>, <code>cv87 = 1</code></td></tr><tr><td>More straight braces</td></tr><tr><td rowspan="2" width="92"><img src="images/character-variant-cv87-2.png" width="64"/></td><td><code>brace = 'curly'</code>, <code>cv87 = 2</code></td></tr><tr><td>More curly braces</td></tr><tr><td rowspan="2" width="92"><img src="images/character-variant-cv87-3.png" width="64"/></td><td><code>brace = 'curly-flat-boundary'</code>, <code>cv87 = 3</code></td></tr><tr><td>Curly braces with flat boundary shape</td></tr></table>
- Styles for `#`: - Styles for `#`:
<table><tr><td rowspan="2" width="60"><img src="images/character-variant-cv88-1.png" width="32"/></td><td><code>number-sign = 'upright'</code>, <code>cv88 = 1</code></td></tr><tr><td>Number sign with vertical bars</td></tr><tr><td rowspan="2" width="60"><img src="images/character-variant-cv88-2.png" width="32"/></td><td><code>number-sign = 'slanted'</code>, <code>cv88 = 2</code></td></tr><tr><td>Number sign with slanted bars</td></tr><tr><td rowspan="2" width="60"><img src="images/character-variant-cv88-3.png" width="32"/></td><td><code>number-sign = 'upright-open'</code>, <code>cv88 = 3</code></td></tr><tr><td>Number sign with vertical bars and open inner</td></tr><tr><td rowspan="2" width="60"><img src="images/character-variant-cv88-4.png" width="32"/></td><td><code>number-sign = 'slanted-open'</code>, <code>cv88 = 4</code></td></tr><tr><td>Number sign with slanted bars and open inner</td></tr></table> <table><tr><td rowspan="2" width="60"><img src="images/character-variant-cv88-1.png" width="32"/></td><td><code>number-sign = 'upright'</code>, <code>cv88 = 1</code></td></tr><tr><td>Number sign with vertical bars</td></tr><tr><td rowspan="2" width="60"><img src="images/character-variant-cv88-2.png" width="32"/></td><td><code>number-sign = 'slanted'</code>, <code>cv88 = 2</code></td></tr><tr><td>Number sign with slanted bars</td></tr><tr><td rowspan="2" width="60"><img src="images/character-variant-cv88-3.png" width="32"/></td><td><code>number-sign = 'upright-open'</code>, <code>cv88 = 3</code></td></tr><tr><td>Number sign with vertical bars and open inner</td></tr><tr><td rowspan="2" width="60"><img src="images/character-variant-cv88-4.png" width="32"/></td><td><code>number-sign = 'slanted-open'</code>, <code>cv88 = 4</code></td></tr><tr><td>Number sign with slanted bars and open inner</td></tr></table>
- Styles for `&`: - Styles for `&`:

View file

@ -1,19 +1,19 @@
"use strict"; "use strict";
const EmptyFont = require("./empty-font"); const { CreateEmptyFont } = require("./empty-font");
const { buildGlyphs } = require("../glyphs/index"); const { buildGlyphs } = require("../glyphs/index");
const finalizeFont = require("./finalize/index"); const { finalizeFont } = require("./finalize/index");
const convertOtd = require("./otd-conv/index"); const { convertOtd } = require("./otd-conv/index");
const Caching = require("./caching/index"); const Caching = require("./caching/index");
const { buildOtl } = require("../otl/index"); const { buildOtl } = require("../otl/index");
const { assignFontNames } = require("../meta/naming"); const { assignFontNames } = require("../meta/naming");
const { copyFontMetrics } = require("../meta/aesthetics"); const { copyFontMetrics } = require("../meta/aesthetics");
module.exports = async function (argv, para) { exports.buildFont = async function buildFont(argv, para) {
const gs = buildGlyphs(para); const gs = buildGlyphs(para);
const baseFont = EmptyFont(argv); const baseFont = CreateEmptyFont(argv);
assignFontNames(para, baseFont); assignFontNames(para, baseFont);
copyFontMetrics(gs.fontMetrics, baseFont); copyFontMetrics(gs.fontMetrics, baseFont);

View file

@ -2,7 +2,7 @@
const { Ot } = require("ot-builder"); const { Ot } = require("ot-builder");
module.exports = function (argv) { exports.CreateEmptyFont = function (argv) {
let font = { let font = {
head: new Ot.Head.Table(), head: new Ot.Head.Table(),
hhea: new Ot.MetricHead.Hhea(), hhea: new Ot.MetricHead.Hhea(),

View file

@ -2,7 +2,7 @@
const { Radical } = require("../../support/gr"); const { Radical } = require("../../support/gr");
module.exports = function gcFont(glyphStore, excludedChars, otl, cfg) { exports.gcFont = function (glyphStore, excludedChars, otl, cfg) {
markSweepOtlLookups(otl.GSUB); markSweepOtlLookups(otl.GSUB);
markSweepOtlLookups(otl.GPOS); markSweepOtlLookups(otl.GPOS);
const sink = markGlyphs(glyphStore, excludedChars, otl, cfg); const sink = markGlyphs(glyphStore, excludedChars, otl, cfg);

View file

@ -2,16 +2,15 @@
const TypoGeom = require("typo-geom"); const TypoGeom = require("typo-geom");
const Geom = require("../../support/geometry/index"); const Geom = require("../../support/geometry/index");
const Point = require("../../support/geometry/point"); const { Point } = require("../../support/geometry/point");
const Transform = require("../../support/geometry/transform"); const { Transform } = require("../../support/geometry/transform");
const CurveUtil = require("../../support/geometry/curve-util"); const CurveUtil = require("../../support/geometry/curve-util");
module.exports = finalizeGlyphs; exports.finalizeGlyphs = function finalizeGlyphs(cache, para, glyphStore) {
function finalizeGlyphs(cache, para, glyphStore) {
const skew = Math.tan(((para.slopeAngle || 0) / 180) * Math.PI); const skew = Math.tan(((para.slopeAngle || 0) / 180) * Math.PI);
regulateGlyphStore(cache, skew, glyphStore); regulateGlyphStore(cache, skew, glyphStore);
return glyphStore; return glyphStore;
} };
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////

View file

@ -1,10 +1,10 @@
"use strict"; "use strict";
const finalizeGlyphs = require("./glyphs"); const { finalizeGlyphs } = require("./glyphs");
const gcFont = require("./gc"); const { gcFont } = require("./gc");
const { Nwid, Wwid } = require("../../support/gr"); const { Nwid, Wwid } = require("../../support/gr");
module.exports = function finalizeFont(cache, para, glyphStore, excludedCodePoints, restFont) { exports.finalizeFont = function (cache, para, glyphStore, excludedCodePoints, restFont) {
assignGrAndCodeRank(glyphStore, Nwid, Wwid); assignGrAndCodeRank(glyphStore, Nwid, Wwid);
assignSubRank(glyphStore); assignSubRank(glyphStore);
glyphStore = gcFont(glyphStore, excludedCodePoints, restFont, {}); glyphStore = gcFont(glyphStore, excludedCodePoints, restFont, {});

View file

@ -1,8 +1,39 @@
const { Ot } = require("ot-builder"); const { Ot } = require("ot-builder");
const Point = require("../../support/geometry/point"); const { Point } = require("../../support/geometry/point");
const Gr = require("../../support/gr"); const Gr = require("../../support/gr");
const { byCode, bySpacing, byGr, byBuildOrder } = require("./glyph-name"); const { byCode, bySpacing, byGr, byBuildOrder } = require("./glyph-name");
exports.convertGlyphs = function convertGlyphs(gsOrig) {
const sortedEntries = Array.from(gsOrig.namedEntries(Gr.Nwid, Gr.Wwid)).sort(byRank);
const gs = new MappedGlyphStore();
const cmap = new Ot.Cmap.Table();
for (const [name, gSrc] of sortedEntries) {
gs.declare(name, gSrc);
const us = gsOrig.queryUnicodeOf(gSrc);
if (us) {
for (const u of us) {
if (!(isFinite(u - 0) && u)) continue;
cmap.unicode.set(u, gs.queryBySourceGlyph(gSrc));
gs.setPrimaryUnicode(gSrc, u);
}
}
}
for (const [name, gSrc] of sortedEntries) gs.fill(name, gSrc);
gs.fillOtGlyphNames();
return { glyphs: gs, cmap };
};
function byRank([gna, a], [gnb, b]) {
return (
b.glyphRank - a.glyphRank ||
a.grRank - b.grRank ||
a.codeRank - b.codeRank ||
a.subRank - b.subRank
);
}
class MappedGlyphStore { class MappedGlyphStore {
constructor() { constructor() {
this.m_nameMapping = new Map(); this.m_nameMapping = new Map();
@ -121,35 +152,3 @@ class MappedGlyphStore {
g.geometry = cs; g.geometry = cs;
} }
} }
module.exports = convertGlyphs;
function convertGlyphs(gsOrig) {
const sortedEntries = Array.from(gsOrig.namedEntries(Gr.Nwid, Gr.Wwid)).sort(byRank);
const gs = new MappedGlyphStore();
const cmap = new Ot.Cmap.Table();
for (const [name, gSrc] of sortedEntries) {
gs.declare(name, gSrc);
const us = gsOrig.queryUnicodeOf(gSrc);
if (us) {
for (const u of us) {
if (!(isFinite(u - 0) && u)) continue;
cmap.unicode.set(u, gs.queryBySourceGlyph(gSrc));
gs.setPrimaryUnicode(gSrc, u);
}
}
}
for (const [name, gSrc] of sortedEntries) gs.fill(name, gSrc);
gs.fillOtGlyphNames();
return { glyphs: gs, cmap };
}
function byRank([gna, a], [gnb, b]) {
return (
b.glyphRank - a.glyphRank ||
a.grRank - b.grRank ||
a.codeRank - b.codeRank ||
a.subRank - b.subRank
);
}

View file

@ -1,7 +1,7 @@
const convertGlyphs = require("./glyphs"); const { convertGlyphs } = require("./glyphs");
const { convertGsub, convertGpos, convertGdef } = require("./layout"); const { convertGsub, convertGpos, convertGdef } = require("./layout");
module.exports = function (baseFont, otl, gs) { exports.convertOtd = function convertOtd(baseFont, otl, gs) {
const { glyphs, cmap } = convertGlyphs(gs); const { glyphs, cmap } = convertGlyphs(gs);
const gsub = convertGsub(otl.GSUB, glyphs); const gsub = convertGsub(otl.GSUB, glyphs);

View file

@ -3,7 +3,7 @@ $$include '../../meta/macros.ptl'
import [Dotless AnyDerivingCv DotlessOrNot getGrTree CvDecompose CcmpDecompose RequireCcmpDecompose] from "../../support/gr" import [Dotless AnyDerivingCv DotlessOrNot getGrTree CvDecompose CcmpDecompose RequireCcmpDecompose] from "../../support/gr"
import [fallback] from '../../support/utils' import [fallback] from '../../support/utils'
import "../../meta/unicode-knowledge" as UnicodeKnowledge import as UnicodeKnowledge from "../../meta/unicode-knowledge"
glyph-module glyph-module

View file

@ -1,6 +1,6 @@
$$include '../../meta/macros.ptl' $$include '../../meta/macros.ptl'
import '../../support/geometry/transform' as Transform import [Transform] from '../../support/geometry/transform'
import [mix linreg clamp fallback] from '../../support/utils' import [mix linreg clamp fallback] from '../../support/utils'
import [Radical] from '../../support/gr' import [Radical] from '../../support/gr'

View file

@ -1,9 +1,9 @@
import '../support/glyph/index' as Glyph import [Glyph] from '../support/glyph/index'
import '../support/glyph-store' as GlyphStore import [GlyphStore] from '../support/glyph-store'
import '../support/glyph-block' as GlyphBlock import [GlyphBlock] from '../support/glyph-block'
import '../support/gr' as Gr import as Gr from '../support/gr'
import '../kits/spiro-kit' as SpiroKit import as SpiroKit from '../kits/spiro-kit'
import '../kits/boole-kit' as BooleKit import as BooleKit from '../kits/boole-kit'
import [ DesignParameters ] from "../meta/aesthetics" import [ DesignParameters ] from "../meta/aesthetics"
extern isFinite extern isFinite

View file

@ -1,7 +1,7 @@
$$include '../../../meta/macros.ptl' $$include '../../../meta/macros.ptl'
import [mix barmixL linreg clamp fallback] from '../../../support/utils' import [mix barmixL linreg clamp fallback] from '../../../support/utils'
import '../../../support/geometry/point' as Point import [Point] from '../../../support/geometry/point'
glyph-module glyph-module

View file

@ -1,7 +1,7 @@
$$include '../../../meta/macros.ptl' $$include '../../../meta/macros.ptl'
import [mix barmixL linreg clamp fallback] from '../../../support/utils' import [mix barmixL linreg clamp fallback] from '../../../support/utils'
import '../../../support/geometry/point' as Point import [Point] from '../../../support/geometry/point'
glyph-module glyph-module

View file

@ -2,7 +2,7 @@ $$include '../../../meta/macros.ptl'
import [mix linreg clamp fallback] from '../../../support/utils' import [mix linreg clamp fallback] from '../../../support/utils'
import [DesignParameters] from '../../../meta/aesthetics' import [DesignParameters] from '../../../meta/aesthetics'
import '../../../support/geometry/point' as Point import [Point] from '../../../support/geometry/point'
glyph-module glyph-module

View file

@ -1,7 +1,7 @@
$$include '../../../meta/macros.ptl' $$include '../../../meta/macros.ptl'
import [mix linreg clamp fallback] from '../../../support/utils' import [mix linreg clamp fallback] from '../../../support/utils'
import '../../../support/geometry/transform' as Transform import [Transform] from '../../../support/geometry/transform'
glyph-module glyph-module

View file

@ -8,15 +8,15 @@ const { encode } = require("@msgpack/msgpack");
const { FontIo } = require("ot-builder"); const { FontIo } = require("ot-builder");
const Toml = require("@iarna/toml"); const Toml = require("@iarna/toml");
const BuildFont = require("./gen/build-font.js"); const { buildFont } = require("./gen/build-font.js");
const Parameters = require("./support/parameters"); const Parameters = require("./support/parameters");
const VariantData = require("./support/variant-data"); const VariantData = require("./support/variant-data");
const ApplyLigationData = require("./support/ligation-data"); const { applyLigationData } = require("./support/ligation-data");
const { createGrDisplaySheet } = require("./support/gr"); const { createGrDisplaySheet } = require("./support/gr");
module.exports = async function main(argv) { module.exports = async function main(argv) {
const paraT = await getParameters(); const paraT = await getParameters();
const { font, glyphStore } = await BuildFont(argv, paraT(argv)); const { font, glyphStore } = await buildFont(argv, paraT(argv));
if (argv.oCharMap) await saveCharMap(argv, glyphStore); if (argv.oCharMap) await saveCharMap(argv, glyphStore);
if (argv.o) await saveTTF(argv, font); if (argv.o) await saveTTF(argv, font);
}; };
@ -45,7 +45,7 @@ async function getParameters() {
function createParaImpl(argv) { function createParaImpl(argv) {
let para = Parameters.init(deepClone(parametersData), argv); let para = Parameters.init(deepClone(parametersData), argv);
VariantData.apply(deepClone(rawVariantsData), para, argv); VariantData.apply(deepClone(rawVariantsData), para, argv);
ApplyLigationData(deepClone(rawLigationData), para, argv); applyLigationData(deepClone(rawLigationData), para, argv);
if (argv.excludedCharRanges) para.excludedCharRanges = argv.excludedCharRanges; if (argv.excludedCharRanges) para.excludedCharRanges = argv.excludedCharRanges;
if (argv.compatibilityLigatures) para.compLig = argv.compatibilityLigatures; if (argv.compatibilityLigatures) para.compLig = argv.compatibilityLigatures;

View file

@ -1,7 +1,7 @@
"use strict"; "use strict";
const TypoGeom = require("typo-geom"); const TypoGeom = require("typo-geom");
const { BooleanGeometry, TransformedGeometry } = require("../support/geometry"); const { BooleanGeometry, TransformedGeometry } = require("../support/geometry/index");
exports.SetupBuilders = function ({ Glyph, GlobalTransform }) { exports.SetupBuilders = function ({ Glyph, GlobalTransform }) {
function impl(operator, operands) { function impl(operator, operands) {

View file

@ -1,6 +1,6 @@
import '../support/geometry/point' as Point import [Point] from '../support/geometry/point'
import '../support/geometry/transform' as Transform import [Transform] from '../support/geometry/transform'
import '../support/geometry/anchor' as Anchor import [Anchor] from '../support/geometry/anchor'
import [mix linreg clamp fallback] from '../support/utils' import [mix linreg clamp fallback] from '../support/utils'
# Parameter generation # Parameter generation

View file

@ -1,4 +1,4 @@
import 'semver' as semver import as semver from 'semver'
import [Ot] from "ot-builder" import [Ot] from "ot-builder"
extern Buffer extern Buffer

View file

@ -1,5 +1,5 @@
import '../support/glyph' as Glyph import [Glyph] from '../support/glyph'
import '../support/geometry/transform' as Transform import [Transform] from '../support/geometry/transform'
define GDEF_SIMPLE 1 define GDEF_SIMPLE 1
define GDEF_LIGATURE 2 define GDEF_LIGATURE 2

View file

@ -1,6 +1,6 @@
import [add-common-feature add-feature add-lookup add-feature-lookup ChainRuleBuilder BeginLookupBlock EndLookupBlock UkMapToLookup UkMap2ToLookup] from "./table-util" import [add-common-feature add-feature add-lookup add-feature-lookup ChainRuleBuilder BeginLookupBlock EndLookupBlock UkMapToLookup UkMap2ToLookup] from "./table-util"
import [AnyCv Dotless TieMark TieGlyph CcmpDecompose] from "../support/gr" import [AnyCv Dotless TieMark TieGlyph CcmpDecompose] from "../support/gr"
import "../meta/unicode-knowledge" as UnicodeKnowledge import as UnicodeKnowledge from "../meta/unicode-knowledge"
extern Set extern Set

View file

@ -1,6 +1,5 @@
import 'toposort' as toposort import as toposort from 'toposort'
import '../support/glyph/index' as Glyph import as Gr from '../support/gr'
import '../support/gr' as Gr
import [CreateEmptyTable finalizeTable MoveBackUtilityLookups] from "./table-util" import [CreateEmptyTable finalizeTable MoveBackUtilityLookups] from "./table-util"

View file

@ -1,5 +1,5 @@
import as toposort from 'toposort'
import [AnyCv] from "../support/gr" import [AnyCv] from "../support/gr"
import 'toposort' as toposort
export : define [CreateEmptyTable] {.languages {.} .features {.} .lookups {.} .lookupDep {}} export : define [CreateEmptyTable] {.languages {.} .features {.} .lookups {.} .lookupDep {}}
extern Map extern Map

View file

@ -1,6 +1,6 @@
"use strict"; "use strict";
module.exports = class Anchor { exports.Anchor = class Anchor {
constructor(x, y) { constructor(x, y) {
this.x = x; this.x = x;
this.y = y; this.y = y;

View file

@ -1,8 +1,8 @@
"use strict"; "use strict";
const TypoGeom = require("typo-geom"); const TypoGeom = require("typo-geom");
const Point = require("./point"); const { Point } = require("./point");
const Transform = require("./transform"); const { Transform } = require("./transform");
exports.SPIRO_PRECISION = 1 / 2; exports.SPIRO_PRECISION = 1 / 2;
exports.OCCURRENT_PRECISION = 1 / 16; exports.OCCURRENT_PRECISION = 1 / 16;

View file

@ -4,11 +4,11 @@ const crypto = require("crypto");
const TypoGeom = require("typo-geom"); const TypoGeom = require("typo-geom");
const SpiroJs = require("spiro"); const SpiroJs = require("spiro");
const Point = require("./point");
const Transform = require("./transform");
const CurveUtil = require("./curve-util"); const CurveUtil = require("./curve-util");
const { SpiroExpander } = require("./spiro-expand");
const Format = require("../util/formatter"); const Format = require("../util/formatter");
const { Point } = require("./point");
const { Transform } = require("./transform");
const { SpiroExpander } = require("./spiro-expand");
class GeometryBase { class GeometryBase {
asContours() { asContours() {

View file

@ -60,4 +60,4 @@ Point.Type = {
Quadratic: 3 Quadratic: 3
}; };
module.exports = Point; exports.Point = Point;

View file

@ -1,6 +1,6 @@
"use strict"; "use strict";
module.exports = class Transform { exports.Transform = class Transform {
constructor(xx, yx, xy, yy, x, y) { constructor(xx, yx, xy, yy, x, y) {
this.xx = xx; this.xx = xx;
this.yx = yx; this.yx = yx;

View file

@ -1,6 +1,6 @@
"use strict"; "use strict";
class GlyphBlock { exports.GlyphBlock = class GlyphBlock {
constructor(capture, blockName, body) { constructor(capture, blockName, body) {
this.capture = capture; this.capture = capture;
this.blockName = blockName; this.blockName = blockName;
@ -26,6 +26,4 @@ class GlyphBlock {
for (const f of pendingApplications) f(); for (const f of pendingApplications) f();
return this.exports; return this.exports;
} }
} };
module.exports = GlyphBlock;

View file

@ -1,6 +1,6 @@
"use strict"; "use strict";
class GlyphStore { exports.GlyphStore = class GlyphStore {
constructor() { constructor() {
this.nameForward = new Map(); this.nameForward = new Map();
this.nameBackward = new Map(); this.nameBackward = new Map();
@ -116,6 +116,4 @@ class GlyphStore {
} }
return gs1; return gs1;
} }
} };
module.exports = GlyphStore;

View file

@ -1,11 +1,11 @@
"use strict"; "use strict";
const Transform = require("../geometry/transform"); const { Transform } = require("../geometry/transform");
const Point = require("../geometry/point"); const { Point } = require("../geometry/point");
const Anchor = require("../geometry/anchor"); const { Anchor } = require("../geometry/anchor");
const Geom = require("../geometry"); const Geom = require("../geometry");
module.exports = class Glyph { exports.Glyph = class Glyph {
constructor(_identifier) { constructor(_identifier) {
this._m_identifier = _identifier; this._m_identifier = _identifier;

View file

@ -2,7 +2,7 @@
const Parameters = require("./parameters"); const Parameters = require("./parameters");
module.exports = function applyLigationData(data, para, argv) { exports.applyLigationData = function (data, para, argv) {
const defaultBuildup = {}; const defaultBuildup = {};
const hives = {}; const hives = {};

View file

@ -1,6 +1,6 @@
"use strict"; "use strict";
const monotonicInterpolate = require("./util/monotonic-interpolate"); const { monotonicInterpolate } = require("./util/monotonic-interpolate");
exports.init = initPara; exports.init = initPara;
function initPara(data, argv) { function initPara(data, argv) {

View file

@ -1,6 +1,6 @@
"use strict"; "use strict";
module.exports = function (xs, ys) { exports.monotonicInterpolate = function (xs, ys) {
let i, let i,
length = xs.length; length = xs.length;

View file

@ -16,7 +16,7 @@
"fs-extra": "^10.0.0", "fs-extra": "^10.0.0",
"ot-builder": "^1.1.0", "ot-builder": "^1.1.0",
"otb-ttc-bundle": "^1.1.0", "otb-ttc-bundle": "^1.1.0",
"patel": "^0.35.0", "patel": "^0.35.1",
"semver": "^7.3.5", "semver": "^7.3.5",
"spiro": "^3.0.0", "spiro": "^3.0.0",
"stylus": "^0.54.8", "stylus": "^0.54.8",

View file

@ -2,20 +2,13 @@
const fs = require("fs-extra"); const fs = require("fs-extra");
const path = require("path"); const path = require("path");
const parseVariantsData = require("../export-data/variants-data"); const { parseVariantsData } = require("../export-data/variants-data");
const parseLigationData = require("../export-data/ligation-data"); const { parseLigationData } = require("../export-data/ligation-data");
const getCharMapAndSupportedLanguageList = require("../export-data/supported-languages"); const { getCharMapAndSupportedLanguageList } = require("../export-data/supported-languages");
const execMain = require("../shared/execMain");
const charMapPath = process.argv[2];
const charMapItalicPath = process.argv[3];
const charMapObliquePath = process.argv[4];
execMain(main);
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
async function main() { module.exports = async function main(argv) {
const readmePath = path.resolve(__dirname, "../../README.md"); const readmePath = path.resolve(__dirname, "../../README.md");
let readme = await fs.readFile(readmePath, "utf-8"); let readme = await fs.readFile(readmePath, "utf-8");
readme = (await processSsOt()).apply(readme); readme = (await processSsOt()).apply(readme);
@ -26,10 +19,10 @@ async function main() {
readme = (await processLigSetPreDef()).apply(readme); readme = (await processLigSetPreDef()).apply(readme);
readme = (await processLigSetOt(1, g => g.tag === "calt")).apply(readme); readme = (await processLigSetOt(1, g => g.tag === "calt")).apply(readme);
readme = (await processLigSetOt(2, g => g.tag !== "calt")).apply(readme); readme = (await processLigSetOt(2, g => g.tag !== "calt")).apply(readme);
readme = (await processLangList()).apply(readme); readme = (await processLangList(argv)).apply(readme);
readme = (await processPrivateBuildPlans()).apply(readme); readme = (await processPrivateBuildPlans()).apply(readme);
await fs.writeFile(readmePath, readme); await fs.writeFile(readmePath, readme);
} };
async function processSsOt() { async function processSsOt() {
const variantsData = await parseVariantsData(); const variantsData = await parseVariantsData();
@ -309,11 +302,11 @@ async function processLigSetOt(index, fn) {
return md; return md;
} }
async function processLangList() { async function processLangList(argv) {
const cl = await getCharMapAndSupportedLanguageList( const cl = await getCharMapAndSupportedLanguageList(
charMapPath, argv.charMapPath,
charMapItalicPath, argv.charMapItalicPath,
charMapObliquePath argv.charMapObliquePath
); );
const md = new MdCol("Section-Language-List"); const md = new MdCol("Section-Language-List");
md.log(`${cl.languages.length} Supported Languages: \n`); md.log(`${cl.languages.length} Supported Languages: \n`);

View file

@ -1,4 +1,4 @@
module.exports = [ exports.blockData = [
[[0x0000, 0x007f], "Basic Latin"], [[0x0000, 0x007f], "Basic Latin"],
[[0x0080, 0x00ff], "Latin-1 Supplement"], [[0x0080, 0x00ff], "Latin-1 Supplement"],
[[0x0100, 0x017f], "Latin Extended-A"], [[0x0100, 0x017f], "Latin Extended-A"],

View file

@ -1,9 +1,9 @@
const blockData = require("./block-data"); const { blockData } = require("./block-data");
const ucdNames = require("@unicode/unicode-13.0.0/Names"); const ucdNames = require("@unicode/unicode-13.0.0/Names");
const ugc = require("@unicode/unicode-13.0.0/General_Category"); const ugc = require("@unicode/unicode-13.0.0/General_Category");
// eslint-disable-next-line complexity // eslint-disable-next-line complexity
module.exports = function (covUpright, covItalic, covOblique) { exports.gatherCoverageData = function (covUpright, covItalic, covOblique) {
const result = []; const result = [];
for (const [[lchBlockStart, lchBlockEnd], block] of blockData) { for (const [[lchBlockStart, lchBlockEnd], block] of blockData) {
let blockResults = []; let blockResults = [];

View file

@ -1,32 +1,23 @@
"use strict"; "use strict";
const fs = require("fs-extra"); const fs = require("fs-extra");
const parseVariantsData = require("./variants-data"); const { parseVariantsData } = require("./variants-data");
const parseLigationData = require("./ligation-data"); const { parseLigationData } = require("./ligation-data");
const getCharMapAndSupportedLanguageList = require("./supported-languages"); const { getCharMapAndSupportedLanguageList } = require("./supported-languages");
const execMain = require("../shared/execMain");
const version = require("../../package.json").version; const version = require("../../package.json").version;
const charMapPath = process.argv[2]; ///////////////////////////////////////////////////////////////////////////////////////////////////
const charMapItalicPath = process.argv[3]; module.exports = async function main(argv) {
const charMapObliquePath = process.argv[4];
const exportPathMeta = process.argv[5];
const exportPathCov = process.argv[6];
execMain(main);
/////////////////////////////////////////////////////////////////////////////////////////////////////
async function main() {
const variantsData = await parseVariantsData(); const variantsData = await parseVariantsData();
const ligationData = await parseLigationData(); const ligationData = await parseLigationData();
const cl = await getCharMapAndSupportedLanguageList( const cl = await getCharMapAndSupportedLanguageList(
charMapPath, argv.charMapPath,
charMapItalicPath, argv.charMapItalicPath,
charMapObliquePath argv.charMapObliquePath
); );
await fs.writeJson( await fs.writeJson(
exportPathMeta, argv.exportPathMeta,
{ {
version, version,
variantsData, variantsData,
@ -38,5 +29,5 @@ async function main() {
}, },
{ spaces: 2 } { spaces: 2 }
); );
await fs.writeJson(exportPathCov, { version, ...cl }, { spaces: 2 }); await fs.writeJson(argv.exportPathCov, { version, ...cl }, { spaces: 2 });
} };

View file

@ -188,7 +188,7 @@ const ligationSamplesNarrow = [
] ]
]; ];
module.exports = async function getLigationData() { exports.parseLigationData = async function () {
const ligToml = await fs.readFile( const ligToml = await fs.readFile(
path.join(__dirname, "../../params/ligation-set.toml"), path.join(__dirname, "../../params/ligation-set.toml"),
"utf8" "utf8"

View file

@ -5,15 +5,15 @@ const fs = require("fs-extra");
const zlib = require("zlib"); const zlib = require("zlib");
const { decode } = require("@msgpack/msgpack"); const { decode } = require("@msgpack/msgpack");
const gatherCov = require("./coverage-export/gather-coverage-data"); const { gatherCoverageData } = require("./coverage-export/gather-coverage-data");
// List all the languages that Iosevka supports, but cannot inferred from CLDR data. // List all the languages that Iosevka supports, but cannot inferred from CLDR data.
const overrideSupportedLanguages = []; const overrideSupportedLanguages = [];
module.exports = async function (charMapPath, charMapItalicPath, charMapObliquePath) { exports.getCharMapAndSupportedLanguageList = async function (cmpUpright, cmpItalic, cmpOblique) {
const charMap = await readMpCharMap(charMapPath); const charMap = await readMpCharMap(cmpUpright);
const charMapItalic = await readMpCharMap(charMapItalicPath); const charMapItalic = await readMpCharMap(cmpItalic);
const charMapOblique = await readMpCharMap(charMapObliquePath); const charMapOblique = await readMpCharMap(cmpOblique);
const rawCoverage = getRawCoverage(charMap); const rawCoverage = getRawCoverage(charMap);
const rawCoverageItalic = getRawCoverage(charMapItalic); const rawCoverageItalic = getRawCoverage(charMapItalic);
@ -24,7 +24,7 @@ module.exports = async function (charMapPath, charMapItalicPath, charMapObliqueP
glyphCount: charMap.length, glyphCount: charMap.length,
codePointCount: rawCoverage.size codePointCount: rawCoverage.size
}, },
unicodeCoverage: gatherCov(rawCoverage, rawCoverageItalic, rawCoverageOblique), unicodeCoverage: gatherCoverageData(rawCoverage, rawCoverageItalic, rawCoverageOblique),
languages: Array.from(getSupportedLanguageSet(rawCoverage)).sort() languages: Array.from(getSupportedLanguageSet(rawCoverage)).sort()
}; };
}; };

View file

@ -6,7 +6,7 @@ const toml = require("@iarna/toml");
const VariantDataParser = require("../../font-src/support/variant-data"); const VariantDataParser = require("../../font-src/support/variant-data");
module.exports = async function () { exports.parseVariantsData = async function () {
const variantsToml = await fs.readFile( const variantsToml = await fs.readFile(
path.join(__dirname, "../../params/variants.toml"), path.join(__dirname, "../../params/variants.toml"),
"utf8" "utf8"

View file

@ -3,22 +3,17 @@
const path = require("path"); const path = require("path");
const fs = require("fs-extra"); const fs = require("fs-extra");
const semver = require("semver"); const semver = require("semver");
const execMain = require("../shared/execMain");
const ChangeFileDir = path.join(__dirname, "../../changes"); const ChangeFileDir = path.join(__dirname, "../../changes");
const ModifiedSinceVersion = "2.x"; const ModifiedSinceVersion = "2.x";
const Version = process.argv[2];
const outputPath = process.argv[3];
execMain(main);
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
async function main() { module.exports = async function main(argv) {
const out = new Output(); const out = new Output();
await GenerateChangeList(out); await GenerateChangeList(argv, out);
await fs.writeFile(outputPath, out.buffer); await fs.writeFile(argv.outputPath, out.buffer);
} };
class Output { class Output {
constructor() { constructor() {
@ -29,14 +24,14 @@ class Output {
} }
} }
async function GenerateChangeList(out) { async function GenerateChangeList(argv, out) {
const changeFiles = await fs.readdir(ChangeFileDir); const changeFiles = await fs.readdir(ChangeFileDir);
const fragments = new Map(); const fragments = new Map();
for (const file of changeFiles) { for (const file of changeFiles) {
const filePath = path.join(ChangeFileDir, file); const filePath = path.join(ChangeFileDir, file);
const fileParts = path.parse(filePath); const fileParts = path.parse(filePath);
if (fileParts.ext !== ".md") continue; if (fileParts.ext !== ".md") continue;
if (!semver.valid(fileParts.name) || semver.lt(Version, fileParts.name)) continue; if (!semver.valid(fileParts.name) || semver.lt(argv.version, fileParts.name)) continue;
fragments.set(fileParts.name, await fs.readFile(filePath, "utf8")); fragments.set(fileParts.name, await fs.readFile(filePath, "utf8"));
} }
const sortedFragments = Array.from(fragments).sort((a, b) => semver.compare(b[0], a[0])); const sortedFragments = Array.from(fragments).sort((a, b) => semver.compare(b[0], a[0]));

View file

@ -3,27 +3,21 @@
const Path = require("path"); const Path = require("path");
const Fs = require("fs-extra"); const Fs = require("fs-extra");
const SemVer = require("semver"); const SemVer = require("semver");
const execMain = require("../shared/execMain");
const ChangeFileDir = Path.join(__dirname, "../../changes"); const ChangeFileDir = Path.join(__dirname, "../../changes");
const Version = process.argv[2];
const releasePackagesJsonPath = process.argv[3];
const outputPath = process.argv[4];
execMain(main);
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
async function main() { module.exports = async function main(argv) {
const out = new Output(); const out = new Output();
await GenerateChangeList(out); await GenerateChangeList(argv, out);
await CopyMarkdown(out, "packages-desc.md"); await CopyMarkdown(out, "packages-desc.md");
await GeneratePackageList(out); await GeneratePackageList(argv, out);
await Fs.ensureDir(Path.join(__dirname, `../../release-archives/`)); await Fs.ensureDir(Path.join(__dirname, `../../release-archives/`));
await Fs.writeFile(outputPath, out.buffer); await Fs.writeFile(argv.outputPath, out.buffer);
} };
class Output { class Output {
constructor() { constructor() {
@ -48,14 +42,14 @@ async function CopyMarkdown(out, name) {
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
// CHANGE LIST // CHANGE LIST
async function GenerateChangeList(out) { async function GenerateChangeList(argv, out) {
const changeFiles = await Fs.readdir(ChangeFileDir); const changeFiles = await Fs.readdir(ChangeFileDir);
const fragments = new Map(); const fragments = new Map();
for (const file of changeFiles) { for (const file of changeFiles) {
const filePath = Path.join(ChangeFileDir, file); const filePath = Path.join(ChangeFileDir, file);
const fileParts = Path.parse(filePath); const fileParts = Path.parse(filePath);
if (fileParts.ext !== ".md") continue; if (fileParts.ext !== ".md") continue;
if (!SemVer.valid(fileParts.name) || SemVer.lt(Version, fileParts.name)) continue; if (!SemVer.valid(fileParts.name) || SemVer.lt(argv.version, fileParts.name)) continue;
fragments.set(fileParts.name, await Fs.readFile(filePath, "utf8")); fragments.set(fileParts.name, await Fs.readFile(filePath, "utf8"));
} }
@ -85,19 +79,21 @@ const Spacings = {
"quasi-proportional": ["Default", false] "quasi-proportional": ["Default", false]
}; };
const imagePrefix = `https://raw.githubusercontent.com/be5invis/Iosevka/v${Version}/images`; const ImagePrefixNoVersion = `https://raw.githubusercontent.com/be5invis/Iosevka`;
const DownloadLinkPrefixNoVersion = `https://github.com/be5invis/Iosevka/releases/download`;
async function GeneratePackageList(out) { async function GeneratePackageList(argv, out) {
const pkgShapesData = await Fs.readJson(releasePackagesJsonPath); const imagePrefix = `${ImagePrefixNoVersion}/v${argv.version}/images`;
const DownloadLinkPrefix = `https://github.com/be5invis/Iosevka/releases/download/v${Version}`; const pkgShapesData = await Fs.readJson(argv.releasePackagesJsonPath);
const DownloadLinkPrefix = `${DownloadLinkPrefixNoVersion}/v${argv.version}`;
out.log(`<table>`); out.log(`<table>`);
for (let [groupID, gr] of Object.entries(pkgShapesData)) { for (let [groupID, gr] of Object.entries(pkgShapesData)) {
const prime = gr.subGroups[groupID]; const prime = gr.subGroups[groupID];
const familyName = buildName("\u00a0", ...prime.family.split(" ")); const familyName = buildName("\u00a0", ...prime.family.split(" "));
const sTtcName = buildName("-", "super-ttc", groupID, Version); const sTtcName = buildName("-", "super-ttc", groupID, argv.version);
const ttcName = buildName("-", "ttc", groupID, Version); const ttcName = buildName("-", "ttc", groupID, argv.version);
const sTtcLink = `${DownloadLinkPrefix}/${sTtcName}.zip`; const sTtcLink = `${DownloadLinkPrefix}/${sTtcName}.zip`;
const ttcLink = `${DownloadLinkPrefix}/${ttcName}.zip`; const ttcLink = `${DownloadLinkPrefix}/${ttcName}.zip`;
@ -128,7 +124,7 @@ async function GeneratePackageList(out) {
for (const [subGroupID, subGr] of Object.entries(gr.subGroups)) { for (const [subGroupID, subGr] of Object.entries(gr.subGroups)) {
const [spacingDesc, ligation] = Spacings[subGr.spacing]; const [spacingDesc, ligation] = Spacings[subGr.spacing];
const createLink = (label, prefix) => { const createLink = (label, prefix) => {
const fileName = buildName("-", prefix, subGroupID, Version); const fileName = buildName("-", prefix, subGroupID, argv.version);
const downloadLink = `${DownloadLinkPrefix}/${fileName}.zip`; const downloadLink = `${DownloadLinkPrefix}/${fileName}.zip`;
return `<b><a href="${downloadLink}">${label}</a></b>`; return `<b><a href="${downloadLink}">${label}</a></b>`;
}; };

View file

@ -3,23 +3,16 @@
const ejs = require("ejs"); const ejs = require("ejs");
const fs = require("fs-extra"); const fs = require("fs-extra");
const path = require("path"); const path = require("path");
const parseVariantsData = require("../export-data/variants-data"); const { parseVariantsData } = require("../export-data/variants-data");
const getLigationData = require("../export-data/ligation-data"); const { parseLigationData } = require("../export-data/ligation-data");
const execMain = require("../shared/execMain");
const inputPath = process.argv[2]; ///////////////////////////////////////////////////////////////////////////////////////////////////
const outputPath = process.argv[3];
const outputDataPath = process.argv[4];
execMain(main); module.exports = async function main(argv) {
/////////////////////////////////////////////////////////////////////////////////////////////////////
async function main() {
const weightGrades = [100, 200, 300, 400, 500, 600, 700, 800, 900]; const weightGrades = [100, 200, 300, 400, 500, 600, 700, 800, 900];
const templatePath = path.join(inputPath, "index.ejs"); const templatePath = path.join(argv.inputPath, "index.ejs");
const variationData = await await parseVariantsData(); const variationData = await await parseVariantsData();
const ligationData = await getLigationData(); const ligationData = await parseLigationData();
const html = await ejs.renderFile(templatePath, { const html = await ejs.renderFile(templatePath, {
...variationData, ...variationData,
ligation: ligationData, ligation: ligationData,
@ -32,7 +25,7 @@ async function main() {
.replace(/\n/g, "<br/>"); .replace(/\n/g, "<br/>");
} }
}); });
await fs.writeFile(outputPath, html); await fs.writeFile(argv.outputPath, html);
let readmeSnapshotTasks = [ let readmeSnapshotTasks = [
{ el: "#languages", name: "languages" }, { el: "#languages", name: "languages" },
@ -108,7 +101,7 @@ async function main() {
} }
await fs.writeJson( await fs.writeJson(
outputDataPath, argv.outputDataPath,
{ {
readmeSnapshotTasks, readmeSnapshotTasks,
ligationSamples: ligationData.samples, ligationSamples: ligationData.samples,
@ -116,4 +109,4 @@ async function main() {
}, },
{ spaces: " " } { spaces: " " }
); );
} };

View file

@ -1,12 +0,0 @@
"use strict";
module.exports = function (main) {
setTimeout(
() =>
main().catch(e => {
console.error(e);
process.exit(1);
}),
0
);
};

View file

@ -3,12 +3,18 @@
const path = require("path"); const path = require("path");
const fs = require("fs-extra"); const fs = require("fs-extra");
const semver = require("semver"); const semver = require("semver");
const execMain = require("../shared/execMain");
const ChangeFileDir = path.join(__dirname, "../../changes"); const ChangeFileDir = path.join(__dirname, "../../changes");
const PackageJsonPath = path.join(__dirname, "../../package.json"); const PackageJsonPath = path.join(__dirname, "../../package.json");
execMain(main); setTimeout(
() =>
main().catch(e => {
console.error(e);
process.exit(1);
}),
0
);
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////

View file

@ -11,7 +11,7 @@ const semver = require("semver");
const { task, file, oracle, computed, phony } = build.ruleTypes; const { task, file, oracle, computed, phony } = build.ruleTypes;
const { de, fu, sfu, ofu } = build.rules; const { de, fu, sfu, ofu } = build.rules;
const { run, cd, cp, rm, fail, echo, silently } = build.actions; const { run, node, cd, cp, rm, fail, echo, silently } = build.actions;
const { FileList } = build.predefinedFuncs; const { FileList } = build.predefinedFuncs;
module.exports = build; module.exports = build;
@ -599,15 +599,13 @@ const PagesDataExport = task(`pages:data-export`, async t => {
BuildCM("iosevka", "iosevka-italic"), BuildCM("iosevka", "iosevka-italic"),
BuildCM("iosevka", "iosevka-oblique") BuildCM("iosevka", "iosevka-oblique")
); );
await run( await node(`utility/export-data/index`, {
`node`, charMapPath: cm.full,
`utility/export-data/index`, charMapItalicPath: cmi.full,
cm.full, charMapObliquePath: cmo.full,
cmi.full, exportPathMeta: Path.resolve(pagesDir, "shared/data-import/raw/metadata.json"),
cmo.full, exportPathCov: Path.resolve(pagesDir, "shared/data-import/raw/coverage.json")
Path.resolve(pagesDir, "shared/data-import/raw/metadata.json"), });
Path.resolve(pagesDir, "shared/data-import/raw/coverage.json")
);
}); });
const PagesFontExport = task.group(`pages:font-export`, async (target, gr) => { const PagesFontExport = task.group(`pages:font-export`, async (target, gr) => {
@ -692,14 +690,16 @@ const SnapShotHtml = file(`${SNAPSHOT_TMP}/index.html`, async (target, out) => {
BuildCM("iosevka", "iosevka-italic"), BuildCM("iosevka", "iosevka-italic"),
BuildCM("iosevka", "iosevka-oblique") BuildCM("iosevka", "iosevka-oblique")
); );
await run( await node(`utility/generate-snapshot-page/index`, {
`node`, inputPath: "snapshot-src/templates",
`utility/generate-snapshot-page/index.js`, outputPath: out.full,
"snapshot-src/templates", outputDataPath: `${out.dir}/${out.name}.data.json`
out.full, });
`${out.dir}/${out.name}.data.json` await node(`utility/amend-readme/index`, {
); charMapPath: cm.full,
await run(`node`, `utility/amend-readme/index`, cm.full, cmi.full, cmo.full); charMapItalicPath: cmi.full,
charMapObliquePath: cmo.full
});
}); });
const SnapShotStatic = file.make( const SnapShotStatic = file.make(
x => `${SNAPSHOT_TMP}/${x}`, x => `${SNAPSHOT_TMP}/${x}`,
@ -738,7 +738,11 @@ const ReleaseNotesFile = file.make(
await t.need(UtilScripts, de(ARCHIVE_DIR)); await t.need(UtilScripts, de(ARCHIVE_DIR));
const [changeFiles, rpFiles] = await t.need(ChangeFileList(), ReleaseNotePackagesFile); const [changeFiles, rpFiles] = await t.need(ChangeFileList(), ReleaseNotePackagesFile);
await t.need(changeFiles.map(fu)); await t.need(changeFiles.map(fu));
await run("node", "utility/generate-release-note/index", version, rpFiles.full, out.full); await node("utility/generate-release-note/index", {
version,
releasePackagesJsonPath: rpFiles.full,
outputPath: out.full
});
} }
); );
const ReleaseNotePackagesFile = file(`${BUILD}/release-packages.json`, async (t, out) => { const ReleaseNotePackagesFile = file(`${BUILD}/release-packages.json`, async (t, out) => {
@ -773,7 +777,7 @@ const ChangeLogFile = file(`CHANGELOG.md`, async (t, out) => {
await t.need(UtilScripts, de(ARCHIVE_DIR)); await t.need(UtilScripts, de(ARCHIVE_DIR));
const [changeFiles] = await t.need(ChangeFileList()); const [changeFiles] = await t.need(ChangeFileList());
await t.need(changeFiles.map(fu)); await t.need(changeFiles.map(fu));
await run("node", "utility/generate-change-log/index", version, out.full); await node("utility/generate-change-log/index", { version, outputPath: out.full });
}); });
const ChangeFileList = oracle.make( const ChangeFileList = oracle.make(
() => `release:change-file-list`, () => `release:change-file-list`,