UNPKG

webpack-serve-certificate-creator

Version:
34 lines (33 loc) 1.26 kB
import assert from 'node:assert'; import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'; import { generate } from 'selfsigned'; export function createCertificate(options) { const selfSignedOptions = { ...options.options, days: options.options?.days || 30, keySize: options.options?.keySize || 2048, }; return generate([ { name: 'commonName', value: options.commonName, }, ], selfSignedOptions); } export function getCertificate(options, context) { try { const data = readFileSync(context.dataPath, 'utf-8'); assert(data, `${context.dataPath} does not exist or is empty`); context.logger.debug(`Certificate data loaded from ${context.dataPath}`); return JSON.parse(data); } catch (error) { context.logger.debug(error); mkdirSync(context.cacheDirectory, { recursive: true }); context.logger.debug(`Certificate cache directory created: ${context.cacheDirectory}`); const certificate = createCertificate(options); writeFileSync(context.dataPath, JSON.stringify(certificate)); context.logger.debug(`Certificate data written to ${context.dataPath}`); return certificate; } }