UNPKG

angular-t9n

Version:

A translation tool for Angular i18n

35 lines (29 loc) 1.24 kB
import { Injectable } from '@nestjs/common'; import { TranslationDeserializationResult, TranslationDeserializer } from './deserialization'; import { TranslationSourceUnit, TranslationTarget, TranslationTargetUnit } from './models'; import { TranslationSerializer } from './serialization'; import { WorkspaceHost } from './workspace-host'; @Injectable() export class SerializationStrategy { constructor( private readonly _host: WorkspaceHost, private readonly _serializer: TranslationSerializer, private readonly _deserializer: TranslationDeserializer, ) {} async deserializeSource( path: string, ): Promise<TranslationDeserializationResult<TranslationSourceUnit>> { const content = await this._host.readFile(path); return this._deserializer.deserializeSource(content); } async deserializeTarget( path: string, ): Promise<TranslationDeserializationResult<TranslationTargetUnit>> { const content = await this._host.readFile(path); return this._deserializer.deserializeTarget(content); } async serializeTarget(target: TranslationTarget, path: string): Promise<void> { const content = this._serializer.serializeTarget(target); await this._host.writeFile(path, content); } }