UNPKG

nadesiko3

Version:
98 lines (95 loc) 3.08 kB
import { CSVOptions, options, parse, stringify } from './nako_csv.mjs' const PluginCSV = { 'meta': { type: 'const', value: { pluginName: 'plugin_csv', // プラグインの名前 description: 'CSV関連の命令を提供するプラグイン', // プラグインの説明 pluginVersion: '3.6.0', // プラグインのバージョン nakoRuntime: ['wnako', 'cnako', 'phpnako'], // 対象ランタイム nakoVersion: '3.6.0' // 要求なでしこバージョン } }, '初期化': { type: 'func', josi: [], pure: true, fn: function(): void { // 基本的に初期化不要 } }, // @CSV操作 'CSV取得': { // @CSV形式のデータstrを強制的に二次元配列に変換して返す // @CSVしゅとく type: 'func', josi: [['を', 'の', 'で']], pure: true, fn: function(str: string): (string | number)[][] { options.delimiter = ',' return parse(str) } }, 'TSV取得': { // @TSV形式のデータstrを強制的に二次元配列に変換して返す // @TSVしゅとく type: 'func', josi: [['を', 'の', 'で']], pure: true, fn: function(str: string): (string|number)[][] { options.delimiter = '\t' return parse(str) } }, '表CSV変換': { // @二次元配列AをCSV形式に変換して返す // @ひょうCSVへんかん type: 'func', josi: [['を']], pure: true, fn: function(a: string[][]): string { options.delimiter = ',' return stringify(a) } }, 'CSV変換': { // @二次元配列AをCSV形式に変換して返す // @CSVへんかん type: 'func', josi: [['を']], pure: true, fn: function(a: string[][]): string { options.delimiter = ',' return stringify(a) } }, '表TSV変換': { // @二次元配列AをTSV形式に変換して返す // @ひょうTSVへんかん type: 'func', josi: [['を']], pure: true, fn: function(a: string[][]): string { options.delimiter = '\t' return stringify(a) } }, 'TSV変換': { // @二次元配列AをTSV形式に変換して返す // @TSVへんかん type: 'func', josi: [['を']], pure: true, fn: function(a: string[][]): string { options.delimiter = '\t' return stringify(a) } }, 'CSVオプション設定': { // @「CSV取得」「表CSV変換」命令のオプションOBJ{delimiter,eol,auto_convert_number}をオブジェクトで指定 // @CSVおぷしょんせってい type: 'func', josi: [['を', 'で']], pure: true, fn: function(obj: { [key: string]: unknown }): void { for (const key in obj) { const value: unknown = obj[key] if (key === 'delimiter' || key === '区切文字') { options.delimiter = value as string } else if (key === 'eol') { options.eol = value as string } else if (key === 'auto_convert_number') { options.auto_convert_number = value as boolean } } }, return_none: true } } export default PluginCSV