UNPKG

@gouvfr/dsfr-nexus

Version:

Le module `dsfr-nexus` est l'interface de ligne de commande (CLI) centrale du Système de Design de l’État - DSFR. Il offre des outils pour gérer et compiler les ressources du DSFR

40 lines (33 loc) 910 B
import fs from 'fs'; import { log } from '@gouvfr/dsfr-forge'; import { VersionState } from '../../../../common/state/version/version-state.js'; class VersionParser extends VersionState { constructor () { super(); this._isValid = false; } get isValid() { return this._isValid; } async load(root = '.') { const pckSrc = `${root}/package.json`; if (!fs.existsSync(pckSrc)) { log.warn(`Missing "package.json" @ '${root}'`); return; } const pckFile = fs.readFileSync(pckSrc, 'utf8'); const pck = JSON.parse(pckFile); if (pck.name !== '@gouvfr/dsfr') { throw new Error(`Invalid package name '${pck.name}' @ '${pckSrc}'`); } this._isValid = true; this.parse(pck.version); } setAsCurrent () { const clone = this._clone(); clone._isCurrent = true; Object.freeze(clone); return clone; } } export { VersionParser };