Skip to content

feat: AiScript Object Notation#897

Merged
FineArchs merged 8 commits intoaiscript-dev:masterfrom
kakkokari-gtyih:feat-aison
Aug 5, 2025
Merged

feat: AiScript Object Notation#897
FineArchs merged 8 commits intoaiscript-dev:masterfrom
kakkokari-gtyih:feat-aison

Conversation

@kakkokari-gtyih
Copy link
Contributor

What

AiScriptのオブジェクト表記法を利用したデータ交換用フォーマット「AiScript Object Notation」専用のパース関数を追加

  • トップレベルのオブジェクトはひとつしか許可されません。
  • 動的な式(関数・オブジェクトのvalueにたいする動的なバインディングなど)は許可されません。
  • 名前空間・メタデータはサポートされていません。
import { AiSON } from '@syuilo/aiscript';

const data = AiSON.parse('{key: "value"}');

Why

#888 (comment)

Additional info (optional)

雰囲気で書いているので修正は必須(要らなさそうならcloseしたり、変更が必要そうなら勝手にpushしたりして構いません。とりあえずtestを書いて一通り通ることは確認しました)

@codecov-commenter
Copy link

codecov-commenter commented Jan 5, 2025

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

Attention: Patch coverage is 96.55172% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/parser/syntaxes/aison.ts 93.93% 2 Missing ⚠️

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Files with missing lines Coverage Δ
src/index.ts 100.00% <ø> (ø)
src/interpreter/index.ts 94.44% <ø> (+8.64%) ⬆️
src/parser/aison.ts 100.00% <100.00%> (ø)
src/utils/node-to-js.ts 100.00% <100.00%> (ø)
src/parser/syntaxes/aison.ts 93.93% <93.93%> (ø)

... and 28 files with indirect coverage changes

@kakkokari-gtyih kakkokari-gtyih changed the title Feat aison feat: AiScript Object Notation Jan 5, 2025
@takejohn
Copy link
Member

takejohn commented Jan 5, 2025

JSON5の拡張になったらJSON5って名前でエクスポートしてもよさそう

@kakkokari-gtyih
Copy link
Contributor Author

kakkokari-gtyih commented Jan 5, 2025

stringifyが必要だけどそこまではできなかった

@kakkokari-gtyih
Copy link
Contributor Author

kakkokari-gtyih commented Jan 5, 2025

JSON5の拡張になったらJSON5って名前でエクスポートしてもよさそう

する必要があるかどうかは謎(今JSONではなくJSON5にしている理由(例: keyをクォーテーションする必要がないなど?)を満足できる状態にするだけで良い可能性はある - #888 (comment)

@takejohn
Copy link
Member

takejohn commented Jan 5, 2025

JSON5の拡張になったらJSON5って名前でエクスポートしてもよさそう

する必要があるかどうかは謎(今JSONではなくJSON5にしている理由(例: keyをクォーテーションする必要がないなど?)を満足できる状態にするだけで良い可能性はある - #888 (comment)

もしMisskeyでAiSONをJSON5代わりにしようとすると既存のJSON5(テーマなど)が使えなくなる可能性があるかも?

@kakkokari-gtyih
Copy link
Contributor Author

kakkokari-gtyih commented Jan 5, 2025

{
    id: '17587283-dd92-4a2c-a22c-be0637c9e22a',

    name: 'Danboard',
    author: 'syuilo',

    base: 'light',

    props: {
        accent: 'rgb(218, 141, 49)',
        bg: 'rgb(218, 212, 190)',
        fg: 'rgb(115, 108, 92)',
        panel: 'rgb(236, 232, 220)',
        renote: 'rgb(100, 152, 106)',
        link: 'rgb(100, 152, 106)',
        mention: '@accent',
        hashtag: 'rgb(100, 152, 106)',
        header: 'rgba(239, 227, 213, 0.75)',
        navBg: 'rgb(216, 206, 182)',
        inputBorder: 'rgba(0, 0, 0, 0.1)',
    },
}

こんな感じなので普通に使っている分には問題は発生しない気はする(ので無理にJSON5準拠にしなくてもいいんじゃないかしらとおもっていた)

@syuilo
Copy link
Collaborator

syuilo commented Jan 7, 2025

1 + 1とかは正当?

@kakkokari-gtyih
Copy link
Contributor Author

1 + 1とかは正当?

許容されないはず

@syuilo
Copy link
Collaborator

syuilo commented Jan 7, 2025

ほむん

@FineArchs
Copy link
Member

@kakkokari-gtyih マージ条件を満たしているのでそちらでマージしてもらって問題ありません。
できるだけSquash Mergeでお願いします。
問題があればこちらでマージしますので声を掛けて下さい。

@FineArchs FineArchs mentioned this pull request Aug 4, 2025
4 tasks
@FineArchs FineArchs merged commit 2c88acd into aiscript-dev:master Aug 5, 2025
4 checks passed
@FineArchs
Copy link
Member

🙇🙇🙇

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants