{"_id":"@carlosrpj/expo-raw-sql-migrations","name":"@carlosrpj/expo-raw-sql-migrations","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.3":{"scripts":{"build":"tsc","prepublishOnly":"tsc"},"name":"@carlosrpj/expo-raw-sql-migrations","version":"1.0.3","description":"Migration tool to use raw sql for SQLite / react-nativ expo.","main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/snamiki1212/react-native-expo-raw-sql-migrations.git"},"author":{"name":"snamiki1212","email":"snamiki1212@gmail.com"},"license":"MIT","keywords":["sqlite","expo","react","native","sql","rn"],"bugs":{"url":"https://github.com/snamiki1212/react-native-expo-raw-sql-migrationsissues"},"homepage":"https://github.com/snamiki1212/react-native-expo-raw-sql-migrations#readme","dependencies":{"tslib":"^1.11.1"},"peerDependencies":{"expo-sqlite":"~11.1.1","react":"^18.2.0","typescript":"^4.6.3"},"devDependencies":{"expo-sqlite":"~11.1.1","react":"^18.2.0","typescript":"^4.6.3"},"gitHead":"e1368510d80494e4bca75a349eccacad7a493ecb","_id":"@carlosrpj/expo-raw-sql-migrations@1.0.3","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-RdOYvXTzF13wSBS0TQh0n0IxDOXcea8cbL++chSwwRXBiqzVOqbY/bEhUiusyF38ubcg16WOF9oNnpsZfST1+Q==","shasum":"111efb768a68e6137973a485b4a727582b0122ae","tarball":"https://registry.npmjs.org/@carlosrpj/expo-raw-sql-migrations/-/expo-raw-sql-migrations-1.0.3.tgz","fileCount":8,"unpackedSize":19395,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID6zbWxZ0/tpclGFosWOESMFhW7vd+clTTUr7T9CYnJfAiAdcDV8o0v4/ZRKR2EsZ50+gC3iXJZf/LAFR57xm4Q2UQ=="}]},"_npmUser":{"name":"carlosrpj","email":"carlosrpj555@gmail.com"},"directories":{},"maintainers":[{"name":"carlosrpj","email":"carlosrpj555@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/expo-raw-sql-migrations_1.0.3_1691565018232_0.4168405216707938"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-09T07:10:18.103Z","1.0.3":"2023-08-09T07:10:18.418Z","modified":"2023-08-09T07:10:18.752Z"},"maintainers":[{"name":"carlosrpj","email":"carlosrpj555@gmail.com"}],"description":"Migration tool to use raw sql for SQLite / react-nativ expo.","homepage":"https://github.com/snamiki1212/react-native-expo-raw-sql-migrations#readme","keywords":["sqlite","expo","react","native","sql","rn"],"repository":{"type":"git","url":"git+ssh://git@github.com/snamiki1212/react-native-expo-raw-sql-migrations.git"},"author":{"name":"snamiki1212","email":"snamiki1212@gmail.com"},"bugs":{"url":"https://github.com/snamiki1212/react-native-expo-raw-sql-migrationsissues"},"license":"MIT","readme":"# react-native-expo-raw-sql-migrations\n\nSQLite migrater with raw SQL for expo-managed React Native app using React Hooks and TypeScript.\n\n## Installation\n\n```zsh\nyarn add react-native-expo-raw-sql-migrations\n# or\nnpm install --save react-native-expo-raw-sql-migrations\n```\n\n## Usage\n\n### Standard\n\nAutomatically migrate.\n\n1. Ready to DB object and migration JSON schema.\n2. Wrap with Provider Component.\n3. Handle to fetch DB with `useMigrate` custom hook.\n\n```tsx\n// app.tsx\nimport React from 'react'\nimport { MigrationProvider, Migration } from \"react-native-expo-raw-sql-migrations\";\nimport * as SQLite from \"expo-sqlite\";\n\n// 1) Ready to db and migration.\nexport const db = SQLite.openDatabase(\"myApp.db\", \"1\"); // args are dbname, db-version.\nexport const migrations: Migration[] = [\n  {\n    name: \"202004021800\",\n    query:\n      \"CREATE TABLE cycles (id TEXT PRIMARY KEY, startedAt TEXT, endedAt TEXT, createdAt TEXT, updatedAt TEXT)\",\n  },\n  {\n    name: \"202004022100\",\n    query:\n      \"CREATE TABLE kpts (id TEXT PRIMARY KEY, cycleID TEXT, type TEXT, text TEXT, createdAt TEXT, updatedAt TEXT, FOREIGN KEY(cycleID) REFERENCES cycles(id))\",\n  },\n];\n\n// 2) Wrap provider\n//    Execute to migrate automatically.\nconst App = () => {\n  return(\n    <MigrationProvider db={db} migrations={migrations}>\n      { /* children components ... */ }\n    </MigrationProvider>\n  )\n}\n\nexport default App;\n```\n\n```tsx\n// SomethingComponent.tsx\nimport React from 'react'\nimport { useMigrate } from \"react-native-expo-raw-sql-migrations\";\n\nconst fetchUser = () => { /* fetch data from db */ }\n\nexport const SomethingComponent = () => {\n  // isFinished as flag will be true after migration.\n  const { isFinished } = useMigrate()\n\n  React.useEffect(() => {\n    // 3) Handle operation for db.\n    //    These operation for db should execute after migration.\n    if(isFinished){\n      fetchUser()\n    }\n  }, [isFinished, fetchUser])\n}\n\n```\n\n\n### Advanced\n\nIf you would like to handle migration logic yourself, pass startsBootstrap option to Provider Component. e.g`<MigrationProvider options={{ startsBootstrap: false }}>{...}</MigrationProvider>`\n\n## Used by\n\nThis package is used by [Keputo - KPT method - Keep/Problem/Try](https://keputo.snamiki1212.com/) as expo mobile app.\n\n## Acknowledges\n\n- Inspierd by [GitHub - langleyfoxall/react-native-expo-sql-migrations](https://github.com/langleyfoxall/react-native-expo-sql-migrations).\n","readmeFilename":"README.md"}