Skip to content

Instantly share code, notes, and snippets.

View PlugFox's full-sized avatar
🦊
🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊

Plague Fox PlugFox

🦊
🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊
View GitHub Profile
@PlugFox
PlugFox / main.dart
Last active April 1, 2024 14:45
Simplified navigator that allows to change the pages declaratively.
/*
* Simplified navigator that allows to change the pages declaratively.
* https://gist.github.com/PlugFox/053d267fe59bc65da0d6fb9e9dd7e374
* https://dartpad.dev?id=053d267fe59bc65da0d6fb9e9dd7e374
* Mike Matiunin <plugfox@gmail.com>, 01 April 2024
*/
import 'dart:async';
import 'dart:collection';
@PlugFox
PlugFox / main.dart
Last active March 23, 2024 10:48
Dart StackOverflow
/*
* Dart StackOverflow
* https://gist.github.com/PlugFox/e74d16fbf4508fb1366ef2b4d2eab6e6
* https://dartpad.dev?id=e74d16fbf4508fb1366ef2b4d2eab6e6
* Mike Matiunin <plugfox@gmail.com>, 23 March 2024
*/
import 'dart:convert';
const depth = 10000;
@PlugFox
PlugFox / JSON сериализация.bsl
Last active March 19, 2024 09:22
JSON сериализация
#Область JSON
Функция СериализоватьJSON(Данные, ФункцияПреобразования = "ФункцияПреобразованияJSON") Экспорт
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
НастройкиСериализации = Новый НастройкиСериализацииJSON();
НастройкиСериализации.СериализовыватьМассивыКакОбъекты = Ложь;
НастройкиСериализации.ФорматСериализацииДаты = ФорматДатыJSON.ISO;
НастройкиСериализации.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.ЛокальнаяДатаСоСмещением;
ЗаписатьJSON(ЗаписьJSON, Данные, НастройкиСериализации, ФункцияПреобразования, веб_сериализация);
Возврат ЗаписьJSON.Закрыть();
@PlugFox
PlugFox / database.dart
Last active March 18, 2024 11:32
Key Value extension for SQLite (Drift)
import 'package:database/src/platform/io.dart'
// ignore: uri_does_not_exist
if (dart.library.html) 'package:database/src/platform/js.dart';
import 'package:database/src/queries.dart';
import 'package:drift/drift.dart';
import 'package:meta/meta.dart';
part 'database.g.dart';
/// Key-value storage interface for SQLite database
@PlugFox
PlugFox / main.dart
Created March 7, 2024 20:07
Async expand example
/*
* Stream async expand
* https://gist.github.com/PlugFox/0366eb6d7bd2f3e03fd629c5a96ea8ff
* https://dartpad.dev?id=0366eb6d7bd2f3e03fd629c5a96ea8ff
* Mike Matiunin <plugfox@gmail.com>, 07 March 2024
*/
import 'dart:async';
import 'package:flutter/material.dart';
@PlugFox
PlugFox / dependencies.dart
Last active March 2, 2024 09:23
Log collector and application initialization with dependencies
/// Dependencies
abstract interface class Dependencies {
/// The state from the closest instance of this class.
factory Dependencies.of(BuildContext context) => InheritedDependencies.of(context);
/// Database
abstract final Database database;
}
final class $MutableDependencies implements Dependencies {
@PlugFox
PlugFox / main.dart
Last active February 20, 2024 11:35
Phone regexp
/*
* Phone formatter
* https://gist.github.com/PlugFox/198e8b02565541cfaec4e7e4e1d1359c
* https://dartpad.dev/198e8b02565541cfaec4e7e4e1d1359c
*
* ^(?<country>8|\+7|\+375)?[\-\s\.]*[(]?s?(?<region>[0-9]{1,5})s?[)]?[\-\s\.]*(?<abonent1>[\d]{2,5})[\-\s\.]*(?<abonent2>[\d]{2})[\-\s\.]*(?<abonent3>[\d]{2})[\s]+((доб|#|ext|вн)[а-яa-z\.]{0,7}[\s]?(?<ext>[\d]{1,5})?)?$
*/
/// Source phones
const List<String> phones = <String>[
@PlugFox
PlugFox / conditional_import.dart
Last active February 15, 2024 13:11
Firebase Remote Config - web implementation
/// Base interface
import 'remote_config_base.dart';
/// Conditional import
import 'remote_config_mobile.dart'
// ignore: uri_does_not_exist
if (dart.library.html) 'remote_config_web.dart';
...
final config = await getRemoteConfig();
@PlugFox
PlugFox / main.dart
Last active February 15, 2024 13:04
Date time parse and format as ISO-8601 with local timezone
/*
* Date time parse and format as ISO-8601 with local timezone
* https://gist.github.com/PlugFox/339bcd8dbec29a56fd53f8e0656e4a54
* https://dartpad.dev/339bcd8dbec29a56fd53f8e0656e4a54?id=&null_safety=true
*/
import 'dart:async';
import 'package:intl/intl.dart' as intl;
const String source = '2021-01-02T03:08:04+02:30';
@PlugFox
PlugFox / main.dart
Last active February 15, 2024 13:04
Generate from CSV, TSV
/*
* Generate from CSV, TSV
* https://gist.github.com/PlugFox/d488cef8f605e5b7ea3433d49fd21f00
* https://dartpad.dev/d488cef8f605e5b7ea3433d49fd21f00?id=&null_safety=true
*/
import 'dart:math' as math;
void main() {
final list = data.split('\n').toList();
final space = ' '.codeUnits.first;