UNPKG

angular-t9n

Version:

A translation tool for Angular i18n

43 lines (37 loc) 1.16 kB
import { Injectable } from '@nestjs/common'; import { PersistenceStrategy, SerializationStrategy, TargetPathBuilder, timestamp, TranslationTarget, } from '../server'; @Injectable() export class PatternPersistenceStrategy extends PersistenceStrategy { constructor( private readonly _targetPathBuilder: TargetPathBuilder, private readonly _serializationStrategy: SerializationStrategy, ) { super(); } async create(target: TranslationTarget): Promise<void> { await this._write(target); console.log( `${timestamp()}: Created translation file for ${ target.language } at ${this._targetPathBuilder.createPath(target)}`, ); } async update(target: TranslationTarget): Promise<void> { await this._write(target); console.log( `${timestamp()}: Updated translation file for ${ target.language } at ${this._targetPathBuilder.createPath(target)}`, ); } private async _write(target: TranslationTarget): Promise<void> { const filePath = this._targetPathBuilder.createPath(target); await this._serializationStrategy.serializeTarget(target, filePath); } }